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

标签 python nltk

我想从这个句子中提取名词-形容词对。所以,基本上我想要这样的东西: (马克,真诚)(约翰,真诚)

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)))

最佳答案

Spacy 的 POS tagging会比 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

输出

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

关于python - 如何从句子中提取名词形容词对,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49166071/

相关文章:

python - 将 24 小时值转换为 HHMMSS - 时间

python - 正则表达式不匹配整数

python - 向数据框中添加词性列

python - 如何在 seaborn lineplot 上绘制虚线?

python - 使用文件夹结构在 Keras 中进行预测时如何获得正确的标签?

python - 通过 URL 访问的 Django 错误端点

python - 如何使用 Python 在 WordNet 中生成形容词的反义词列表

python - NLTK 将命令式中的动词识别为名词

parallel-processing - 特征选择、特征提取、特征权重的区别

python-3.x - NLTK 3 POS_TAG引发UnicodeDecodeError