Jor*_*n H 15 java nlp stanford-nlp sentiment-analysis
大家好!我正在使用Stanford Core NLP软件包,我的目标是在实时推文上进行情绪分析.
使用情绪分析工具返回对文本"态度"的非常差的分析.许多正面被标记为中性,许多负面评价为正面.我已经在一个文本文件中获得了超过一百万条推文,但我不知道如何实际训练该工具并创建我自己的模型.
"可以使用PTB格式数据集使用以下命令重新训练模型:"
java -mx8g edu.stanford.nlp.sentiment.SentimentTraining -numHid 25 -trainPath train.txt -devPath dev.txt -train -model model.ser.gz
Run Code Online (Sandbox Code Playgroud)
来自dev.txt的样本(前4位表示5 ... 4/5正极性)
(4 (4 (2 A) (4 (3 (3 warm) (2 ,)) (3 funny))) (3 (2 ,) (3 (4 (4 engaging) (2 film)) (2 .))))
Run Code Online (Sandbox Code Playgroud)
来自test.txt的示例
(3 (3 (2 If) (3 (2 you) (3 (2 sometimes) (2 (2 like) (3 (2 to) (3 (3 (2 go) (2 (2 to) (2 (2 the) (2 movies)))) (3 (2 to) (3 (2 have) (4 fun))))))))) (2 (2 ,) (2 (2 Wasabi) (3 (3 (2 is) (2 (2 a) (2 (3 good) (2 (2 place) (2 (2 to) (2 start)))))) (2 .)))))
Run Code Online (Sandbox Code Playgroud)
来自train.txt的样本
(3 (2 (2 The) (2 Rock)) (4 (3 (2 is) (4 (2 destined) (2 (2 (2 (2 (2 to) (2 (2 be) (2 (2 the) (2 (2 21st) (2 (2 (2 Century) (2 's)) (2 (3 new) (2 (2 ``) (2 Conan)))))))) (2 '')) (2 and)) (3 (2 that) (3 (2 he) (3 (2 's) (3 (2 going) (3 (2 to) (4 (3 (2 make) (3 (3 (2 a) (3 splash)) (2 (2 even) (3 greater)))) (2 (2 than) (2 (2 (2 (2 (1 (2 Arnold) (2 Schwarzenegger)) (2 ,)) (2 (2 Jean-Claud) (2 (2 Van) (2 Damme)))) (2 or)) (2 (2 Steven) (2 Segal))))))))))))) (2 .)))
Run Code Online (Sandbox Code Playgroud)
我有两个问题要做.
每个文件之间的意义和区别是什么?Train.txt/Dev.txt/Test.txt?
我如何使用充满推文的原始未解析文本文件训练我自己的模型?
我对NLP很新,所以如果我缺少任何必要的信息或任何事情请批评!谢谢!
mba*_*rov 10
每个文件之间的意义和区别是什么?Train.txt/Dev.txt/Test.txt?
这是标准的机器学习术语.火车组用于(惊喜)训练模型.开发集用于调整模型可能具有的任何参数.您通常要做的是选择参数值,在训练集上训练模型,然后检查训练模型在开发集上的表现.然后选择另一个参数值并重复.此过程可帮助您为模型找到合理的参数值.
完成此操作后,您将继续测试模型在测试集上的表现.这是看不见的 - 您的模型之前从未遇到过任何数据.重要的是测试集与训练和开发集分开,否则您正在有效地评估之前看到的数据模型.这是错误的,因为它不会让你知道模型真正做得多好.
我如何使用充满推文的原始未解析文本文件训练我自己的模型?
您不能,也不应该使用未解析的文档进行训练.递归深度模型的整个点(以及它执行得如此好的原因)是它可以从解析树的每个级别的情感注释中学习.您上面给出的句子可以这样格式化:
(4
(4
(2 A)
(4
(3 (3 warm) (2 ,)) (3 funny)
)
)
(3
(2 ,)
(3
(4 (4 engaging) (2 film)) (2 .)
)
)
)
通常,情绪分析器使用文档级注释进行训练.您只有一个分数,此分数作为一个整体适用于整个文档,忽略了文档中的短语可能表达不同情绪的事实.斯坦福大学的团队花了很多精力来注释文档中的每个短语以表达情感.例如,这个词film本身就是中性的:(2 film).但是,这句话engaging film非常积极:(4 (4 engaging) (2 film)) (2 .)
如果您标记了推文,则可以使用任何其他文档级情绪分类器.stackoverflow上的情感分析标签已经有了一些非常好的答案,我不打算在这里重复它们.
PS你有标签你的推文吗?所有100万人?如果你这样做了,我想付给你很多钱给那个文件:)