【问题标题】:Text processing tool for tweets推文的文本处理工具
【发布时间】:2015-04-20 12:01:13
【问题描述】:

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

实体识别:

例如: “鲁尼将在下一场比赛中为英格兰效力”。

从这条推文我想识别人实体“鲁尼”并放置实体“英格兰”

情绪分析:

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

  1. 切尔西打出了他们有史以来最糟糕的比赛
  2. C罗打进漂亮的一球

第一个应标记为“否定”句,后一个应标记为“肯定”。

事件识别:

我想从推文中找到“进球得分事件”。 “梅西上半场进球”和“那是杰拉德的精彩进球”等句子应标记为“进球事件”。

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

谢谢。

【问题讨论】:

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


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

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

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

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

      请记住,这只是为了让您入门,绝不是一个广泛的答案。

      【讨论】:

      • 是否可以使用 stanford NER 找到实体的元信息?它在炼金术中可用。示例 Lionel messi-FootballPlayer。 Alchemy 还提供实体的 dbPedia url。
      • 没有。它没有。如果您希望快速构建并交付,Alchemy 更有意义。如果你想构建一些随着时间的推移变得更好并且高度可配置的东西,那么斯坦福会更有意义。取决于你的要求。
      【解决方案3】:

      没有提供无限调用的 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]
      

      如果您也想添加eventrecognization,您需要使用具有基于event 的数据集的extract 类重新训练stanford 包。这可以帮助您对基于事件的输入进行分类。

      NER 是否使用词性标签?

      默认情况下,我们当前的模型都没有使用 pos 标签。这主要是 因为斯坦福词性标注器使用的特征非常相似 对于NER系统中使用的那些,因此几乎没有什么好处 使用 POS 标签。

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

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

      【讨论】:

      • 是否可以使用 stanford NER 找到实体的元信息?它在炼金术中可用。示例 Lionel messi-FootballPlayer。 Alchemy 还提供实体的 dbPedia url。
      • @DinoopNair:StanfordNER 没那么聪明,alchemyAPI 是付费的。要获得这种结果,您必须使用相关数据训练数据。或者您可以使用索引和分类创建自己的 NER 标记器
      【解决方案4】:

      Stanford 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/
      谢谢

      【讨论】:

      • 是否可以使用 stanford NER 找到实体的元信息?它在炼金术中可用。示例 Lionel messi-FootballPlayer。 Alchemy 还提供实体的 dbPedia url。
      • 我很确定,Alchemy 只是通过直接 DBpedia 匹配并检索实体的类型来做到这一点。这些 NER 库可能不容易做到这一点,但应该很容易添加。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-05-21
      • 2021-01-14
      • 2017-11-30
      • 2014-06-23
      相关资源
      最近更新 更多