在Python中利用Spacy对文本快速分词去重生成词列表

参考文章:

https://juejin.im/post/6844903488149782535?utm_source=gold_browser_extension%5D#heading-13

https://spacy.io/

python中的spacy是一款强大的自然语处理工具,具有分词、词干化、情感分析、实体识别等功能,它的特点是分词准确度高于NLTK,速度也大大提升,可快速生成词干化并且去重的词列表。以下是其处理速度与其它工具的对比,很明显其数据处理速度比NLTK提升数十倍,大数据时代其强大的功能不可小视。

在Python中利用Spacy对文本快速分词去重生成词列表_第1张图片

其功能与其它工具的对比如下:最新版本的Spacy已经支持包括中文在内的多种语言

在Python中利用Spacy对文本快速分词去重生成词列表_第2张图片

使用之前,首先要在安装了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'}

你可能感兴趣的:(python,python,大数据,机器学习,nlp,自然语言处理)