nlp--常用分词方法
前言本文以介绍 nlp 常见分词方法为目的,具体效果请大家自行辨别中文分词jieba代码jieba.enable_paddle()# 启动paddle模式。 0.40版之后开始支持,早期版本不支持seg_list = jieba.cut(data, use_paddle=True)# 使用paddle模式print("Paddle Mode: " + '/'.join(list(seg_list)
·
前言
本文以介绍 nlp
常见分词方法为目的,具体效果请大家自行辨别
中文分词
jieba
-
代码
jieba.enable_paddle() # 启动paddle模式。 0.40版之后开始支持,早期版本不支持 seg_list = jieba.cut(data, use_paddle=True) # 使用paddle模式 print("Paddle Mode: " + '/'.join(list(seg_list))) seg_list = jieba.cut(data, cut_all=True) print("Full Mode: " + "/ ".join(seg_list)) # 全模式 seg_list = jieba.cut(data, cut_all=False) print("Default Mode: " + "/ ".join(seg_list)) # 精确模式 seg_list = jieba.cut_for_search(data) # 搜索引擎模式 print("Search Mode: " + "/ ".join(seg_list))
自定义词典
央视
神丹牌
莲田牌
土鸡蛋
新京报
湖北神丹健康食品有限公司
龙头企业
315晚会
-
新增代码
jieba.load_userdict("../exp2/Userdict.txt")
详情见github
SnowNLP
-
代码
def snow_nlp(data): s = SnowNLP(data) print(s.words) print(s.pinyin)
详情见github
THULAC
-
代码
def thulac_nlp(data): thu1 = thulac.thulac() # 默认模式 text = thu1.cut(data, text=True) # 进行一句话分词 print(text)
详情见github
NLPIR
-
代码
def pynlpir_nlp(data): pynlpir.open() ans = pynlpir.segment(data) print(ans)
StanfordCoreNLP
-
代码
def stanford_nlp(data): # _*_coding:utf-8_*_ with StanfordCoreNLP(r'D:\stanford-corenlp-full-2018-02-27', lang='zh') as nlp: print(nlp.word_tokenize(data))
详情见github
英文分词
NLTK
-
代码
def nltk_nlp(data): ans = nltk.word_tokenize(data) print(ans)
Spacy
-
代码
def spacy_nlp(data): nlp = spacy.load("en_core_web_sm") doc = nlp(data) ans = [token.text for token in doc] print(ans)
StanfordCoreNLP
-
代码
def stanford_nlp(data): # _*_coding:utf-8_*_ with StanfordCoreNLP(r'D:\stanford-corenlp-full-2018-02-27') as nlp: print(nlp.word_tokenize(data))
详情见github
常见问题
问题一
-
问题:在尝试使用
StanfordCoreNLP
进行中文分词时,发生了报错现象。报错信息为编码不正确,使用的为4.4.0
版本。 -
解决:怀疑是
Python
版本与StanfordCoreNLP
版本不匹配引发的错误。github
仓库中提供的版本对应表Python
版本最低到3.7
,而我使用的是3.6
版本。之后尝试StanfordCoreNLP-3.7.0
版本,但分词结果全为空。最后更改到StanfordCoreNLP-3.9.1
版本(尝试了github
仓库中提供样例使用的版本),得到正确的结果Py Version CoreNLP Version v3.7.0.1 v3.7.0.2 CoreNLP 3.7.0 v3.8.0.1 CoreNLP 3.8.0 v3.9.1.1 CoreNLP 3.9.1
问题二
- 问题:在尝试使用
Spacy
进行英文分词时,加载模型使用spacy.load("en")
,被告知,该方法已经被抛弃,建议使用spacy.load("en_core_web_sm")
。之后,使用spacy.load("en_core_web_sm")
,被告知找不到模型en_core_web_sm
- 解决:
python -m spacy download en_core_web_sm
大概率是不会成功的,我也确实没有通过这种方式成功安装。直接从github
上下载,然后使用命令pip install en_core_web_sm-2.3.0.tar.gz
进行安装,即可成功安装 - 详见Spacy问题的解决
更多推荐
所有评论(0)