如何使用spacy从文本中提取名词短语?
我指的不是语音标签的一部分。在文档中,我找不到有关名词短语或常规分析树的任何内容。
如果要使用基本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
我一直在用spaCy查找最常用的名词和noun_phrases 在寻找单个名词时,我可以成功地去掉标点符号并停止单词 然而,使用noun_chunks来确定短语会导致属性错误 spacy.tokens.span.Span对象没有属性 我理解的性质的消息但我不能为我的生活得到语法正确的地方存在的停止字在一个emmatiated字符串将排除从被附加到noun_phrases列表 不删除停止字的输出 [
我正在使用Apache的OpenNLP编写一个命令解析器。问题是OpenNLP将一些命令视为名词短语。例如,如果我解析像“open door”这样的东西,OpenNLP会给我。换句话说,它认为这个短语是“打开的门”,而不是“打开的门”。我希望它解析为。如果我解析“开门”,它会生成一个VP,但我不能指望有人使用限定词。 我目前正试图找出如何在错误的解析树上执行手术,但API文档严重缺乏。
我在应用程序中使用Querydsl来大大改进查询数据库的代码。但是,我有一个来自外部服务的JPA谓词(javax.persistence.criteria.Predicate)。我想混合使用Querydsl和外部谓词创建的查询。例如: 另一个解决方案是将Querydsl谓词转换为JPA谓词: 有可能吗?如果是,我如何做到这一点?如果没有,是否有其他混合谓词的解决方案(比如将两者转换为SQL字符串并
我是新的Python和nltk。我已经将代码从https://gist.github.com/alexbowe/879414转换为下面给定的代码,使其运行于许多文档/文本块。但我得到了以下错误 有人能帮我解决这个问题吗。我必须从数以百万计的产品评论中提取名词短语。我使用了使用Java的Standford NLP工具包,但速度非常慢,所以我认为在python中使用nltk会更好。如果有更好的解决方案
<代码>文档。all是DOM中的一个非原始对象,它是falsy。 例如,此代码不做任何事情: 有人能解释一下这是为什么吗?
问题内容: 我正在尝试使用Apache Lucene创建可搜索的电话/本地业务目录。 我有街道名称,公司名称,电话号码等字段。我遇到的问题是,当我尝试按街道名称中包含多个单词(例如“新月”)的街道进行搜索时,没有返回结果。但是,如果我尝试仅用一个词(例如“新月”)进行搜索,那么我会得到所有想要的结果。 我正在使用以下索引数据: 我的搜索是这样的: 我尝试过将通配符查询替换为短语查询,首先将整个字符