我正在处理情绪分析问题,数据看起来像这样:
label instances
    5    1190
    4     838
    3     239
    1     204
    2     127
Run Code Online (Sandbox Code Playgroud)
所以我的数据是不平衡的,因为1190 instances标有5.对于分类我使用scikit的SVC.问题是我不知道如何以正确的方式平衡我的数据,以便准确计算多类案例的精确度,召回率,准确度和f1分数.所以我尝试了以下方法:
第一:
    wclf = SVC(kernel='linear', C= 1, class_weight={1: 10})
    wclf.fit(X, y)
    weighted_prediction = wclf.predict(X_test)
print 'Accuracy:', accuracy_score(y_test, weighted_prediction)
print 'F1 score:', f1_score(y_test, weighted_prediction,average='weighted')
print 'Recall:', recall_score(y_test, weighted_prediction,
                              average='weighted')
print 'Precision:', precision_score(y_test, weighted_prediction,
                                    average='weighted')
print '\n clasification report:\n', classification_report(y_test, weighted_prediction)
print '\n confussion matrix:\n',confusion_matrix(y_test, weighted_prediction)
Run Code Online (Sandbox Code Playgroud)
第二:
auto_wclf = SVC(kernel='linear', C= 1, class_weight='auto')
auto_wclf.fit(X, y)
auto_weighted_prediction = auto_wclf.predict(X_test)
print 'Accuracy:', accuracy_score(y_test, auto_weighted_prediction)
print …Run Code Online (Sandbox Code Playgroud) python nlp artificial-intelligence machine-learning scikit-learn
我为Stanford Parser创建一个新模型有一些问题.
我还从斯坦福下载了最新版本:http: //nlp.stanford.edu/software/lex-parser.shtml
在这里,Genia Corpus有2种格式,xml和ptb(Penn Treebank).
Standford Parser可以用ptd文件训练; 然后我下载了Genia Corpus,因为我想使用生物医学文本:
http://categorizer.tmit.bme.hu/~illes/genia_ptb/ (链接不再可用)   (genia_ptb.tar.gz)
然后,我有一个简短的Main类来获得一个生物医学句子的依赖表示:
    String treebankPath = "/stanford-parser-2012-05-22/genia_ptb/GENIA_treebank_v1/ptb";
    Treebank tr = op.tlpParams.diskTreebank();
    tr.loadPath(treebankPath);  
    LexicalizedParser lpc=LexicalizedParser.trainFromTreebank(tr,op);
Run Code Online (Sandbox Code Playgroud)
我尝试了不同的方法,但始终得到相同的结果.
我在最后一行有一个错误.这是我的输出:
Currently Fri Jun 01 15:02:57 CEST 2012
Options parameters:
useUnknownWordSignatures 2
smoothInUnknownsThreshold 100
smartMutation false
useUnicodeType false
unknownSuffixSize 1
unknownPrefixSize 1
flexiTag true
useSignatureForKnownSmoothing false
parserParams edu.stanford.nlp.parser.lexparser.EnglishTreebankParserParams
forceCNF false
doPCFG true
doDep false
freeDependencies false
directional true
genStop true
distance true
coarseDistance false
dcTags false
nPrune false
Train parameters: smooth=false …Run Code Online (Sandbox Code Playgroud) 我有一个.NET应用程序,给定一个名词,我希望它正确地用"a"或"an"作为该单词的前缀.我该怎么办?
在您认为答案是简单地检查第一个字母是否是元音之前,请考虑以下短语:
我需要在当前模块中实现一些NLP.我正在寻找一些可以帮助我的好图书馆.我遇到了'LingPipe',但无法完全遵循如何使用它.
基本上,我们需要实现一个功能,其中应用程序可以解释用简体中文输入的客户指令(交付说明).例如:
是否可以在NLTK中使用Stanford Parser?(我不是在谈论斯坦福POS.)
我正在寻找文本情感分析(http://en.wikipedia.org/wiki/Sentiment_analysis)的开源实现,最好是在python中.是否有人熟悉我可以使用的这种开源实现?
我正在编写一个应用程序,在Twitter上搜索一些搜索词,比如"youtube",并计算"快乐"的推文与"悲伤"的推文.我正在使用Google的appengine,所以它在python中.我希望能够从twitter中对返回的搜索结果进行分类,我想在python中进行分类.到目前为止,我还没有找到这样的情绪分析器,特别是在python中.您熟悉我可以使用的这种开源实现吗?最好这已经是python,但如果没有,希望我可以将它翻译成python.
请注意,我正在分析的文本非常简短,它们是推文.理想情况下,此分类器针对此类短文本进行了优化.
顺便说一下,twitter确实支持搜索中的":)"和":("运算符,其目的就是为了做到这一点,但不幸的是,他们提供的分类并不是那么好,所以我想我可能会试一试.
谢谢!
我估计通常我的标题的答案是去阅读文档,但我浏览了NLTK书,但它没有给出答案.我是python的新手.
我有一堆.txt文件,我希望能够使用NLTK为语料库提供的语料库功能nltk_data.
我已经尝试PlaintextCorpusReader但是我无法进一步:
>>>import nltk
>>>from nltk.corpus import PlaintextCorpusReader
>>>corpus_root = './'
>>>newcorpus = PlaintextCorpusReader(corpus_root, '.*')
>>>newcorpus.words()
Run Code Online (Sandbox Code Playgroud)
如何newcorpus使用punkt 对句子进行分段?我尝试使用punkt函数,但punkt函数无法读取PlaintextCorpusReader类?
你能否告诉我如何将分段数据写入文本文件?
编辑: 这个问题有一次赏金,它现在有第二个赏金.请参阅赏金框中的文字.
nlp ×10
python ×6
nltk ×4
java ×2
parsing ×2
stanford-nlp ×2
c# ×1
corpus ×1
directory ×1
linguistics ×1
open-source ×1
path ×1
scikit-learn ×1