如何从句子中提取名词形容词对

Aar*_*yar 3 python nltk

我想从中提取名词 - 形容词对sentence.所以,基本上我想要的东西: (Mark,sincere) (John,sincere).

from nltk import word_tokenize, pos_tag, ne_chunk
sentence = "Mark and John are sincere employees at Google."
print ne_chunk(pos_tag(word_tokenize(sentence)))
Run Code Online (Sandbox Code Playgroud)

vum*_*sha 7

Spacy的POS标签会更好NLTK.它越来越快.这是你想要做的一个例子

import spacy
nlp = spacy.load('en')
doc = nlp(u'Mark and John are sincere employees at Google.')
noun_adj_pairs = []
for i,token in enumerate(doc):
    if token.pos_ not in ('NOUN','PROPN'):
        continue
    for j in range(i+1,len(doc)):
        if doc[j].pos_ == 'ADJ':
            noun_adj_pairs.append((token,doc[j]))
            break
noun_adj_pairs
Run Code Online (Sandbox Code Playgroud)

产量

[(Mark, sincere), (John, sincere)]

  • Spacy 比 nltk 好。 (2认同)