开发者社区 问答 正文

NLP的Python框架?

我正在一个项目中,我必须从一组文章中提取以下信息(这些文章可能涉及任何内容):

人们可以找到在场人员的名字,例如“巴拉克·奥巴马”

文章的主题或相关标签,例如“议会”,“世界能源”

公司/组织我应该能够获得提及的任何公司或组织的名称,例如“ Apple”或“ Google”

在Python中是否可以使用此类NLP框架/库来帮助我完成此任务?

展开
收起
祖安文状元 2020-02-21 15:55:31 601 分享 版权
1 条回答
写回答
取消 提交回答
  • @sel和@ 3kt确实是一个很好的答案。OP,您正在寻找Entity Extraction,通常称为具名实体识别。有许多API可以执行此操作。但是您需要问自己的第一个问题是

    我的数据的结构是什么?更确切地说,

    我的句子英语水平好吗?

    从某种意义上讲,您正在使用的数据在语法上是否一贯正确,大写且结构合理。在提取实体时,这些因素至关重要。我处理过的数据是推文。绝对的噩梦!我对各种API在实体提取方面的性能进行了详细的分析,我将与您分享发现的内容。

    这是执行神话般的实体提取的API,

    NLTK有一个方便的参考书籍,其深入的谈到了与多个实例的功能。NLTK在嘈杂的数据(推文)上表现不佳,因为它已经在结构化数据上进行了训练。NLTK是大写单词(例如DUCK,动词,CHAIR)的绝对垃圾。而且,与其他API相比,它的精度稍差一些。它非常适合新闻文章和学术报告中的结构化数据或精选数据。对于初学者来说,这是一个很好的学习工具。

    Alchemy更易于实现,并且在命名实体的分类中表现出色,与我提到的API相比,它具有很高的精度,但是它具有一定的交易成本。一天只能执行1000个查询!它标识推特句柄,并且可以处理笨拙的大写字母。

    恕我直言,sPacy API可能是最好的。它是开源的。它的性能优于Alchemy API,但不够精确。几乎对炼金术也进行实体分类。

    现在,您知道哪个API应该是一个简单的问题,因为您知道每个API可能会根据所拥有的数据表现如何。

    额外 -POLYGLOT是另一个API。

    这是一篇在NLTK中执行实体提取的博客文章。

    艾伦·里特(Alan Ritter)撰写的精美论文可能会笼罩您的头顶。但这是专业级别的实体提取(尤其是在嘈杂数据中)的标准。您可以不时参考它,以了解复杂的概念,例如LDA或SVM以大写形式。

    2020-02-21 17:32:06
    赞同 展开评论