带有虚假的名词短语

发布于 2021-01-29 17:55:01

如何使用spacy从文本中提取名词短语?
我指的不是语音标签的一部分。在文档中,我找不到有关名词短语或常规分析树的任何内容。

关注者
0
被浏览
50
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    如果要使用基本NP,即没有协调,介词短语或相对从句的NP,则可以在Doc和Span对象上使用noun_chunks迭代器:

    >>> from spacy.en import English
    >>> nlp = English()
    >>> doc = nlp(u'The cat and the dog sleep in the basket near the door.')
    >>> for np in doc.noun_chunks:
    >>>     np.text
    u'The cat'
    u'the dog'
    u'the basket'
    u'the door'
    

    如果您需要其他内容,最好的方法是遍历句子中的单词并考虑句法上下文,以确定该单词是否支配您想要的短语类型。如果是这样,则产生其子树:

    from spacy.symbols import *
    
    np_labels = set([nsubj, nsubjpass, dobj, iobj, pobj]) # Probably others too
    def iter_nps(doc):
        for word in doc:
            if word.dep in np_labels:
                yield word.subtree
    


知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看