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))) 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)

详情见github,CSDN

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)

详情见nltk.org,github,简书

Spacy

  • 代码 def spacy_nlp(data): nlp = spacy.load(“en_core_web_sm”) doc = nlp(data) ans = [token.text for token in doc] print(ans)

详情见csdn,spacy.io

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)
xiaoxingxing的头像xiaoxingxing管理团队
上一篇 2022年3月18日 下午6:58
下一篇 2022年3月18日 下午7:24

相关推荐