
准备统计和机器学习的文本数据
|
127
修改分词的过程中需要多加小心,因为它们的效果可能会很微妙,针对
某一组情况修改分词的时候可能会破坏其他情况。例如,经过修改之后,
“
Chicago-based
”等词语不会再被拆分。另外,连字符和破折号有好
几个
Unicode
版本,如果不进行规范化,就可能会引发问题。
4.6.4
案例:处理停用词
spaCy
在完成分词后,会立即使用特定于语言的停用词列表,设定每个
词语的
is_stop
属性。这样可以方便过滤停用词(以及类似的标点符号):
text = "Dear Ryan, we need to sit down and talk. Regards, Pete"
doc = nlp(text)
non_stop = [t for t in doc if not t.is_stop and not t.is_punct]
print(non_stop)
输出结果:
[Dear, Ryan, need, sit, talk, Regards, Pete]
你只需导入
spacy.lang.en.STOP_WORDS
,就可以获得包含
300
多个条目的英语停用
词列表。在创建
nlp
对象时,该列表就会加载,并存储到
nlp.Defaults.stop_words
下。我们可以修改
spaCy
的默认行为,具体方法是设置
spaCy
词汇表中各个单词的
is_stop
属性:
注
11
nlp = spacy.load('en_core_web_sm')
nlp.vocab['down'].is_stop ...