将自定义标签添加到 NLTK 信息提取器

数据挖掘 Python nlp
2021-10-04 05:34:07

我正在开发一个信息提取器,专门用于解析电影、导演和演员等实体之间的关系。NLTK 似乎为构建这样一个系统提供了必要的工具。然而,目前尚不清楚如何添加自定义标签(例如演员、导演、电影名称)。

同样,NLTK Book 的第 7 章讨论了使用命名实体识别器进行信息提取,但它掩盖了标签细节。

所以,我有两个问题:

如何添加自定义标签?如果我有相关命名实体(例如电影、演员等)的裸列表,我如何将它们作为特征包含在内?看来我需要使用 IOB 格式,但是当我只有命名实体列表时,我不确定如何执行此操作。

2个回答

一旦您拥有自己的命名实体列表,并且您只对提取关系感兴趣,我相信会有更简单的解决方案(尽管我从未尝试过在 NLTK 中提取关系,所以我可能错了):

  • ReVerb - 用 Ja​​va 编写的工具。一旦它产生结果,您可以简单地保留标签作为关系对象存在的行。

  • OpenIE - ReVerb 的继承者(也是用 Java 编写的)。作者声称性能更好,并且输出可能会提供更多信息。

  • IEPY - Python 中的关系提取工具。您应该能够使用gazetees提供您自己的标签/命名实体。

  • MITIE - 这个库在 Python 中有绑定,它提供关系提取功能。

许多关键字提取技术取决于以下因素:

文本的语法质量。文本长度您是在寻找单个关键字还是短语关键字等。但总的来说,如果您的文本很长并且想从中自动提取关键字,我建议您阅读以下文章:

  1. 文本排名

  2. Rake [快速自动关键字提取]

  3. 话题

还要提取上述技术未通过的自定义(特殊)关键字,请查看这篇文章