Извлечение информации и извлечение отношений с Stanford NLP для python

Как мне извлечь названия некоторых компаний из пакета документов, используя ядро ​​Standford NLP для Python?

Вот образец моих данных:

"3Trucks Inc" ("3Trucks" или компания) - это высокотехнологичная цифровая платформа B2B для дальних перевозок, которая позволяет владельцам грузов удовлетворять потребности в перевозках на дальние расстояния и владельцам грузовых автомобилей, которые могут их обслуживать, с помощью своей собственной цифровой платформы, созданной в 2016 году., 3Trucks со штаб-квартирой в Калифорнии и арендовал офисы в Бостоне и Флориде. Некоторые из их главных клиентов, Google,IBM и Nokia

3Trucks была основана в 2010 году, г-н Марк Роберт является ее генеральным директором, а Джон Маклин - партнером и техническим директором ".

Я хочу вывести для извлечения информации:

3Truck

Я хочу вывести для извлечения отношений:

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

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')] """

Для подачи заявления вы должны обучить распознавание именованных объектов в отношении данных, которые вы собираетесь задать.

Это довольно просто, вы можете использовать Spacy NER (распознавание сущностей на естественном языке) для выполнения своей задачи. Он имеет набор предварительно обученных моделей для идентификации различных сущностей.

Другие вопросы по тегам