我想从句子中提取“所有”名词短语。我想知道我该怎么做。我有以下代码:
doc2 = nlp("what is the capital of Bangladesh?")
for chunk in doc2.noun_chunks:
print(chunk)
1. what
2. the capital
3. bangladesh
孟加拉国首都
我尝试了spacy doc和StackOverflow的答案。没事。看来只有cTakes
和Stanford core NLP
才能给出如此复杂的NP。
感谢您的帮助。
答案 0 :(得分:1)
Spacy明确地将名词块定义为:
基本名词短语或“ NP块”是不允许将其他NP嵌套在其中的名词短语-因此,没有NP级别的协调,介词短语和相关从句。”({{ 3}})
如果您以不同的方式处理依赖项解析,允许介词修饰语和嵌套短语/块,那么您最终将得到所需的结果。
我敢打赌,您可以轻松地修改现有的spacy代码以执行您想要的操作:
答案 1 :(得分:0)
对于仍在寻找此答案的人
noun_pharses=set()
for nc in doc.noun_chunks:
for np in [nc, doc[nc.root.left_edge.i:nc.root.right_edge.i+1]]:
noun_pharses.add(np)
这就是我得到所有复杂名词短语的方式