我有一个句子列表,需要使用 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/