首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Spacy,在用空格清洗文本时如何不删除“to”

Spacy,在用空格清洗文本时如何不删除“to”
EN

Stack Overflow用户
提问于 2022-08-02 09:57:20
回答 1查看 94关注 0票数 2

后来,我使用这个spacy代码将它应用到我的文本中,但是我需要在文本中保留否定词,比如"not“。

代码语言:javascript
复制
nlp = spacy.load("en_core_web_sm") 

def my_tokenizer(sentence): 
    return [token.lemma_ for token in tqdm(nlp(sentence.lower()), leave = False) if token.is_stop == False and token.is_alpha == True and  token.lemma_ ] 

当我申请的时候,我得到了这个结果:

代码语言:javascript
复制
[hello, earphone, work]

然而,原来的句子是

代码语言:javascript
复制
hello,my earphones are still not working.

所以,我想看看下面这句话:[earphone, still, not, work]谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-08-02 13:10:12

"not“实际上是一个停止词,在您的代码中,如果一个令牌被删除,如果它是一个停止词。您可以通过查看Spacy停止词的列表来看到这一点。

代码语言:javascript
复制
"not" in spacy.lang.en.stop_words.STOP_WORDS

或者循环遍历doc对象的令牌。

代码语言:javascript
复制
for tok in nlp(text.lower()):
  print(tok.text, tok.is_stop, tok.lemma_)

#hello False hello
#, False ,
#my True my
#earphones False earphone
#are True be
#still True still
#not True not
#working False work
#. False .

解决方案

要解决这个问题,您应该从stop_words列表中删除诸如"not“这样的目标单词。你可以这样做:

代码语言:javascript
复制
# spacy.lang.en.stop_words.STOP_WORDS.remove("not")
# or for multiple words use this
to_del_elements = {"not", "no"}
nlp.Defaults.stop_words = nlp.Defaults.stop_words - to_del_elements

然后,您可以重新运行您的代码,您将得到您的预期结果:

代码语言:javascript
复制
import spacy
#spacy.lang.en.stop_words.STOP_WORDS.remove("not")
to_del_elements = {"not", "no"}
nlp.Defaults.stop_words = nlp.Defaults.stop_words - to_del_elements
nlp = spacy.load("en_core_web_sm") 
def my_tokenizer(sentence): 
    return [token.lemma_ for token in tqdm(nlp(sentence.lower()), leave = False) if token.is_stop == False and token.is_alpha == True and  token.lemma_ ] 

sentence = "hello,my earphones are still not working. no way they will work"
results = my_tokenizer(sentence)
print(results)

#['hello', 'earphone', 'not', 'work', 'no', 'way', 'work']
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73205546

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档