我每天都会收集数百万条与体育相关的推文。我想在这些推文中处理文本。我想识别实体,找到句子的情绪,并在那些推文中找到事件。
实体识别:
例如: "鲁尼将在下一场比赛中为英格兰队效力#34;。
从这条推文中,我想要识别人物实体"鲁尼"并放置实体"英格兰"
情绪分析:
我想找到一句话的情绪。例如
第一个应标记为"否定"句子和后者应标记为"肯定"。
事件识别:
我想找到"进球得分事件"来自推特。像#"梅西这样的句子在上半场打进了球门"和#34;这是杰拉尔德的一个梦幻般的目标"应标记为"目标得分事件"。
我知道实体识别和情感分析工具是可用的,我需要编写事件识别规则。我见过很多工具,例如Stanford NER
,alchemy api
,open calais
,meaning cloud api
,ling pipe
,illinois
等。
我真的很困惑我应该选择哪种工具?有没有免费工具,没有每日费率限制?我想每天处理数百万条推文,java
是我的首选语言。
感谢。
答案 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
。
好吧,对于person
,organization
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参数。
答案 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/
谢谢