python - 如何使用 SpaCy 从句子列表中获取名词短语

标签 python spacy

我有一个句子列表,需要使用 SpaCy 查找每个句子的名词短语。目前,输出仅附加所有句子中的所有名词短语。如何获取每个句子的名词短语并打印为列表列表?

假设列表中有两个句子元素 -

A = ["I am a boy", "I am a girl"]

A_np = []
for x in A:
    doc = nlp(x)
    for np in doc.noun_chunks:
        story_np.append(np.text)
A_np

我期待得到这样的东西:

[['I','boy'],['I','girl']]

最佳答案

您需要进行两项即兴创作:

1/noun_chunks 是跨度,而不是标记。因此,最好迭代名词 block 的各个标记。

2/您需要一个中间列表来存储单个句子的名词 block 。

临时代码,您可以根据您的要求进行调整:

>>> A = ["I am a boy", "I am a girl"]
>>> nlp = spacy.load('en')
>>> A_np = []
>>> for x in A:
...     doc = nlp(x)
...     sent_nps = []
...     for np in doc.noun_chunks:
...             sent_nps.extend([token.text for token in np])
...     A_np.append(sent_nps)
...
>>> A_np
[['I', 'a', 'boy'], ['I', 'a', 'girl']]

关于python - 如何使用 SpaCy 从句子列表中获取名词短语,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54316922/

相关文章:

python -m spacy 下载太慢如何加速

machine-learning - 除了 NER 基本模型之外,添加自定义实体

python - 如何在OpenERP7中获取域字段中的当前ID记录?

python - 无法在 OS X 上使用 python 2.6 让 web.py session 正常工作

python - 如何使用Python和 Elasticsearch 打印属于 "_source"一部分的单个字段?

python-3.x - 如何识别缩写词/首字母缩略词并在 spaCy 中扩展它们?

python - python中spacy的多线程训练

python - 在未标记的文本语料库上训练 Spacy 以提取 "important phrases"

python - cython嵌入后的ImportError

python - 慢 scipy 双正交积分