Spacy中引理后的停止字检测

2024-10-01 09:16:00 发布

您现在位置:Python中文网/ 问答频道 /正文

spaCy中,如何检测词干和词法化后单词是否是停止字?在

假定判决

s = "something good\nsomethings 2 bad"

在本例中,something是一个停止字。显然(对我来说?)Somethingsomethings也是停止字,但它需要在前面加词干。下面的脚本会说第一个是真的,但后一个不是

^{pr2}$

退货:

something True
good False
"\n" False
Something False
2 False
somethings False

有没有一种方法可以通过spaCyAPI来检测它?在


Tags: 脚本falsespacy单词somethingbadgood词干
1条回答
网友
1楼 · 发布于 2024-10-01 09:16:00

spaCy中的Stop单词只是一组字符串,它们在词汇表中与上下文无关的词条上设置了一个标志(see here表示英语停止列表)。该标志只检查text in STOP_WORDS,这就是为什么“something”为is_stop返回{},而“somethings”则不返回

但是,您可以检查令牌的引理或小写形式是否是停止列表的一部分,该列表可通过nlp.Defaults.stop_words获得(即,您所使用语言的默认值):

def extended_is_stop(token):
    stop_words = nlp.Defaults.stop_words
    return token.is_stop or token.lower_ in stop_words or token.lemma_ in stop_words

如果您使用的是spacyv2.0,并且想要更优雅地解决这个问题,您还可以通过一个custom ^{} attribute extension实现自己的is_stop函数。您可以为您的属性选择任何名称,它将通过token._.变得可用,例如token._.is_stop

^{pr2}$

相关问题 更多 >