Ich verwende NLTK, um die Beziehung zwischen einem PERSON und einer ORGANISATION zu extrahieren.Extrahiere Beziehungen aus einem Satz in NLTK
Auch ich möchte die Beziehung zwischen ORGANISATION und Standort extrahieren. Die NLTK-Version ist 3.2.1.
Ich habe Gebrauch von Wort-zu-Wort-Kennzeichnung und genannter Entity Recognition (NER) gemacht. Auch der Parse Tree wird für die NER-Ergebnisse gezeichnet.
Aber ich bin nicht in der Lage, die erwähnten Beziehungen aus diesem Satz zu extrahieren. Hier
ist der Code:
import nltk, re
from nltk import word_tokenize
sentence = "Mark works at JPMC in London every day"
pos_tags = nltk.pos_tag(word_tokenize(sentence)) # POS tagging of the sentence
ne = nltk.ne_chunk(pos_tags) # Named Entity Recognition
ne.draw() # Draw the Parse Tree
IN = re.compile(r'.*\bin\b(?!\b.+ing)')
for rel1 in nltk.sem.extract_rels('PER', 'ORG', pos_tags, pattern = IN):
print(nltk.sem.rtuple(rel1))
for rel2 in nltk.sem.extract_rels('ORG', 'LOC', pos_tags, pattern = IN):
print(nltk.sem.rtuple(rel2))
Wie 'Person - Organisation' extrahieren Beziehung und 'Organization - Location' Beziehung?