Questo è un follow-up of my question. Sto usando nltk per analizzare le persone, le organizzazioni e le loro relazioni. Usando this example, sono stato in grado di creare blocchi di persone e organizzazioni; tuttavia, sto ottenendo un errore nel comando nltk.sem.extract_rel:estrae le relazioni utilizzando NLTK
AttributeError: 'Tree' object has no attribute 'text'
Ecco il codice completo:
import nltk
import re
#billgatesbio from http://www.reuters.com/finance/stocks/officerProfile?symbol=MSFT.O&officerId=28066
with open('billgatesbio.txt', 'r') as f:
sample = f.read()
sentences = nltk.sent_tokenize(sample)
tokenized_sentences = [nltk.word_tokenize(sentence) for sentence in sentences]
tagged_sentences = [nltk.pos_tag(sentence) for sentence in tokenized_sentences]
chunked_sentences = nltk.batch_ne_chunk(tagged_sentences)
# tried plain ne_chunk instead of batch_ne_chunk as given in the book
#chunked_sentences = [nltk.ne_chunk(sentence) for sentence in tagged_sentences]
# pattern to find <person> served as <title> in <org>
IN = re.compile(r'.+\s+as\s+')
for doc in chunked_sentences:
for rel in nltk.sem.extract_rels('ORG', 'PERSON', doc,corpus='ieer', pattern=IN):
print nltk.sem.show_raw_rtuple(rel)
Questo esempio è molto simile a quella given in the book, ma gli usi di esempio preparato 'documenti analizzati', che appare da nessuna parte e non so dove trovare il suo tipo di oggetto. Ho perlustrato anche le librerie git. Qualsiasi aiuto è apprezzato.
Il mio obiettivo finale è estrarre persone, organizzazioni, titoli (date) per alcune aziende; quindi creare mappe di rete di persone e organizzazioni.
hai mai capire questo? posso vedere cosa ti è venuto in mente perché sto ottenendo esattamente lo stesso problema. – user3314418