参考文章:
https://juejin.im/post/6844903488149782535?utm_source=gold_browser_extension%5D#heading-13
python中的spacy是一款强大的自然语处理工具,具有分词、词干化、情感分析、实体识别等功能,它的特点是分词准确度高于NLTK,速度也大大提升,可快速生成词干化并且去重的词列表。以下是其处理速度与其它工具的对比,很明显其数据处理速度比NLTK提升数十倍,大数据时代其强大的功能不可小视。
其功能与其它工具的对比如下:最新版本的Spacy已经支持包括中文在内的多种语言
使用之前,首先要在安装了64位python的电脑上安装spacy,笔记python版本为3.8,64位。直接在cmd下面输入:
pip install spacy
成功后继续安装en_core_web_sm模块 大约50M
python -m spacy download en_core_web_sm
这两步中可能会遇到出错的情况,务必在网上搜索一下错误代码,然后尝试解决。
下面可以利用string 去除标点,set 去重
import spacy
nlp = spacy.load('en_core_web_sm') #加载spacy
txt = "A magnetic monopole is a hypothetical elementary particle."
doc = nlp(txt)
list1=[]
for token in doc:
token=token.lemma_ #词干化
if token not in string.punctuation: #去除所有标点
list1.append(token)
print(set(list1))
显示结果如下:
{'a', 'be', 'elementary', 'hypothetical', 'magnetic', 'monopole', 'particle'}