【问题标题】:Information Extraction and Relation Extraction with Stanford NLP for python使用 Stanford NLP for python 进行信息提取和关系提取
【发布时间】:2018-09-19 11:54:10
【问题描述】:

如何使用 Python 的斯坦福核心 NLP 从一堆文档中提取一些公司的名称?

这是我的数据示例:

“3Trucks Inc”(“3Trucks”或公司)是一家技术支持的长途运输公司 B2B数字平台匹配货主与长途货运 需要和可以为他们服务的卡车车主,通过其 自主研发的数字平台。3Trucks成立于2016年,是 总部位于加利福尼亚州,并在波士顿和 佛罗里达。他们的一些顶级客户是谷歌、IBM 和诺基亚

3Trucks 成立于 2010 年,由 Mark Robert 先生和 John Mclean 作为合作伙伴和 CTO。'

我要输出信息提取:

3Truck

我想为关系提取输出:

('3truck', founded '2010'),
('John Mclean', 'Partner')
('3truck',client 'Google')

【问题讨论】:

  • 你能给我们看看你的代码吗?
  • 这个问题让我感兴趣的是,为什么 3Truck 是您唯一感兴趣的实体,以及为什么说 Mark Robert 先生与它的任何关系都没有关系。另外,通过信息提取,这里是指实体提取吗?我认为当前的回答者已经假设,在探索其他用 Python 编写的工具时,它们可以执行类似的任务。

标签: python stanford-nlp extraction information-extraction pycorenlp


【解决方案1】:

通常命名实体识别将用于此类应用,但 NER 只能分类到某些类别。

from nltk import word_tokenize, pos_tag, ne_chunk
from nltk.chunk import tree2conlltags

sentence = "Mark and John are working at Google."
print(tree2conlltags(ne_chunk(pos_tag(word_tokenize(sentence))
"""[('Mark', 'NNP', 'B-PERSON'), 
    ('and', 'CC', 'O'), ('John', 'NNP', 'B-PERSON'), 
    ('are', 'VBP', 'O'), ('working', 'VBG', 'O'), 
    ('at', 'IN', 'O'), ('Google', 'NNP', 'B-ORGANIZATION'), 
    ('.', '.', 'O')] """

对于您的应用程序,您必须针对数据训练命名实体识别,您将询问Training NER

【讨论】:

    【解决方案2】:

    其实很简单, 您可以使用 Spacy NER(自然语言实体识别)来完成您的任务。它有一组预训练模型来识别不同的实体。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-09
      • 1970-01-01
      相关资源
      最近更新 更多