Добыча сущностных отношений Stanford CoreNLP - PullRequest
0 голосов
/ 28 сентября 2018

Пожалуйста, я пытаюсь сделать извлечение отношений из разбора текста в виде PDF-файла.Я использовал stanford coreNLP с pycorenlp для python, чтобы проанализировать предложение. Теперь я хочу извлечь субъектный глагол и объект из этого дерева разбора

Вот пример моих данных: «Марк Роберт - основатель 3trucks,3trucks был основан в 2010 году.

Вот что я хочу получить: («Марк Роберт», основатель «3trucks») («3truck», основатель «2010»)

Вотпример текста и кода

import nltk
import re
from pycorenlp import *

nlp = StanfordCoreNLP("http://localhost:9000/")

text = 'Mark Robert is the founder of 3trucks. 3trucks was founded in 2010'

output = nlp.annotate(text, properties={
'annotators': 'tokenize,ssplit,pos,depparse,parse',
"timeout": "50000",
'outputFormat': 'json'

 })

print(output['sentences'][0]['parse'])
print('------------------------------')
print(output['sentences'][1]['parse'])`

мой код вывода:

(ROOT
(S
(NP (NNP Mark) (NNP Robert))
(VP (VBZ is)
  (NP
    (NP (DT the) (NN founder))
    (PP (IN of)
      (NP (NNS 3trucks)))))
(. .)))
------------------------------
(ROOT
(S
(NP (NNS 3trucks))
(VP (VBD was)
  (VP (VBN founded)
    (PP (IN in)
      (NP (CD 2010)))))))

1 Ответ

0 голосов
/ 12 февраля 2019

Вы можете включить 'openie' в список аннотаторов.Openie также сформирует группы триплетов, которые необходимы в виде списка.Также не забудьте ограничить вывод до 3.

output = nlp.annotate(s, properties={"annotators":"tokenize,ssplit,pos,depparse,natlog,openie",
                            "outputFormat": "json",
                             "openie.triple.strict":"true",
                             "openie.max_entailments_per_clause":"1"})

Пост, который вы можете добавить вывод в соответствии с вашими потребностями.

result = [output["sentences"][0]["openie"] for item in output]
for i in result:
    for rel in i:
        relationSent=rel['subject'],rel['relation'],rel['object']
        print(relationset)

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...