推文的文字处理工具

时间:2015-04-20 12:01:13

标签: nlp entity text-processing sentiment-analysis named-entity-recognition

我每天都会收集数百万条与体育相关的推文。我想在这些推文中处理文本。我想识别实体,找到句子的情绪,并在那些推文中找到事件。

实体识别:

例如: "鲁尼将在下一场比赛中为英格兰队效力#34;。

从这条推文中,我想要识别人物实体"鲁尼"并放置实体"英格兰"

情绪分析:

我想找到一句话的情绪。例如

  1. 切尔西有史以来最糟糕的比赛
  2. 罗纳尔多打进了一个漂亮的进球
  3. 第一个应标记为"否定"句子和后者应标记为"肯定"。

    事件识别:

    我想找到"进球得分事件"来自推特。像#"梅西这样的句子在上半场打进了球门"和#34;这是杰拉尔德的一个梦幻般的目标"应标记为"目标得分事件"。

    我知道实体识别和情感分析工具是可用的,我需要编写事件识别规则。我见过很多工具,例如Stanford NERalchemy apiopen calaismeaning cloud apiling pipeillinois等。 我真的很困惑我应该选择哪种工具?有没有免费工具,没有每日费率限制?我想每天处理数百万条推文,java是我的首选语言。

    感谢。

4 个答案:

答案 0 :(得分:1)

考虑到您的首选语言是Java,我强烈建议从Stanford NLP项目开始。大多数基本需求,如清洁,分块,NER都可以在此基础上完成。 For NER click here.

继续进行情绪分析,您可以使用简单的分类器,如朴素贝叶斯,然后添加复杂性。更多here

对于事件提取,您可以使用语言方法来识别与您本体关联的动词。

请记住,这只是为了让你开始,而不是一个广泛的答案。

答案 1 :(得分:1)

对于NER,您还可以使用TwitIE这是一个GATE管道,因此您可以使用Java中的GATE API来使用它。

答案 2 :(得分:1)

没有可用无限通话的API。如果你想坚持使用java,请根据需要使用stanford包和自定义。

如果您对python感到满意,请查看nltk

好吧,对于personorganization stanford将适用于您的输入查询:

Rooney will play for England in their next match
[Text=Rooney CharacterOffsetBegin=0 CharacterOffsetEnd=6 PartOfSpeech=NNP Lemma=Rooney NamedEntityTag=PERSON] [Text=will CharacterOffsetBegin=7 CharacterOffsetEnd=11 PartOfSpeech=MD Lemma=will NamedEntityTag=O] [Text=play CharacterOffsetBegin=12 CharacterOffsetEnd=16 PartOfSpeech=VB Lemma=play NamedEntityTag=O] [Text=for CharacterOffsetBegin=17 CharacterOffsetEnd=20 PartOfSpeech=IN Lemma=for NamedEntityTag=O] [Text=England CharacterOffsetBegin=21 CharacterOffsetEnd=28 PartOfSpeech=NNP Lemma=England NamedEntityTag=LOCATION] [Text=in CharacterOffsetBegin=29 CharacterOffsetEnd=31 PartOfSpeech=IN Lemma=in NamedEntityTag=O] [Text=their CharacterOffsetBegin=32 CharacterOffsetEnd=37 PartOfSpeech=PRP$ Lemma=they NamedEntityTag=O] [Text=next CharacterOffsetBegin=38 CharacterOffsetEnd=42 PartOfSpeech=JJ Lemma=next NamedEntityTag=O] [Text=match CharacterOffsetBegin=43 CharacterOffsetEnd=48 PartOfSpeech=NN Lemma=match NamedEntityTag=O]

如果您还要添加event识别,则需要使用基于event的数据集的extrac类重新训练stanford包。这可以帮助您对基于事件的输入进行分类。

  

NER是否使用词性标签?

     

我们当前的模型都没有默认使用pos标签。这在很大程度上   因为Stanford POS标签使用的功能非常相似   对于在NER系统中使用的那些,所以几乎没有什么好处   使用POS标签。

     

然而,确实可以训练使用POS的新模型   标签。训练数据需要有一个额外的列   标记信息,然后您将tag = X添加到map参数。

检查 - http://nlp.stanford.edu/software/crf-faq.shtml

答案 3 :(得分:1)

斯坦福NER和OPENNLP都是开源的,并且具有在正式文章/文本上表现良好的模型。
但是他们的准确率在Twitter上显着下降(从正式文本的90%回忆到推文的40%回忆) 推文的非正式性质(不良资本化,拼写,标点符号),不正确的词语使用,亵渎性和表情符号使其更加复杂 NER,通过推文进行情绪分析和事件提取是一个很好的研究领域,显然是因为它的应用。

看看这个:https://github.com/aritter/twitter_nlp,看看这个关于twitter NLP和事件提取的演示:http://ec2-54-170-89-29.eu-west-1.compute.amazonaws.com:8000/
谢谢