Stanford NLP for python的信息提取和关系提取

时间:2018-09-19 11:54:11

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

如何使用Standford核心NLP for Python从一堆文件中提取一些公司的名称?

以下是我的数据示例:

  

“ 3Trucks Inc”(“ 3Trucks”或“ Company”)是具有技术支持的远程服务   B2B数字平台将货主与长途货运相匹配   需求和可以通过它们为他们提供服务的卡车所有者   内部开发的数字平台。3Trucks成立于2016年,   总部位于加利福尼亚,并在波士顿和   佛罗里达。他们的一些主要客户是Google,IBM和诺基亚

     

3Trucks成立于2010年,马克·罗伯特(Mark Robert)担任首席执行官,约翰   Mclean是合作伙伴兼CTO。'

我要输出以提取信息:

3Truck

我要输出用于关系提取:

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

2 个答案:

答案 0 :(得分:0)

通常,命名实体识别将用于此类应用程序,但是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

答案 1 :(得分:0)

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