自然语言处理基础技术之分词实战

声明:转载请注明出处,谢谢:https://www.jianshu.com/p/8d3993bce06b
另外,更多实时更新的个人学习笔记分享,请关注:


知乎:https://www.zhihu.com/people/yuquanle/columns
公众号:StudyForAI
CSDN地址:http://blog.csdn.net/m0_37306360


jieba分词

安装:pip install jieba

国内源安装更快:pip install jieba -i https://pypi.tuna.tsinghua.edu.cn/simple

导入jieba包


import jieba

全模式分词


wordseg_all = jieba.cut("我爱自然语言处理技术!", cut_all=True)

print("全模式: " + " ".join(wordseg_all))


Building prefix dict from the default dictionary ...

Dumping model to file cache C:\Users\yuquanle\AppData\Local\Temp\jieba.cache

Loading model cost 0.968 seconds.

Prefix dict has been built succesfully.

全模式: 我 爱 自然 自然语言 语言 处理 技术 

精确模式分词


wordseg = jieba.cut("我爱自然语言处理技术!", cut_all=False)

print("精确模式: " + " ".join(wordseg))

精确模式: 我 爱 自然语言 处理 技术 !

搜索引擎模式


wordseg_search = jieba.cut_for_search("我爱自然语言处理技术!") 

print("搜索引擎模式:" + " ".join(wordseg_search))

搜索引擎模式:我 爱 自然 语言 自然语言 处理 技术 !

SnowNLP分词

安装:pip install snownlp

国内源安装:pip install snownlp -i https://pypi.tuna.tsinghua.edu.cn/simple

导入snownlp包


from snownlp import SnowNLP


model = SnowNLP(u'我爱自然语言处理技术!')

print(model.words)

['我', '爱', '自然', '语言', '处理', '技术', '!']

THULAC分词

安装:pip install thulac

国内源安装:pip install thulac -i https://pypi.tuna.tsinghua.edu.cn/simple

导入thulac包


import thulac

默认模式:分词的同时进行词性标注


thulac_model = thulac.thulac()

wordseg = thulac_model.cut("我爱自然语言处理技术!")

print(wordseg)

Model loaded succeed

[['我', 'r'], ['爱', 'v'], ['自然', 'n'], ['语言', 'n'], ['处理', 'v'], ['技术', 'n'], ['!', 'w']]

只进行分词


seg_only_model = thulac.thulac(seg_only=True)

wordseg_only = seg_only_model.cut("我爱自然语言处理技术!")

print(wordseg_only)

Model loaded succeed

[['我', ''], ['爱', ''], ['自然', ''], ['语言', ''], ['处理', ''], ['技术', ''], ['!', '']]

NLPIR分词

安装:pip install pynlpir

国内源安装:pip install pynlpir -i https://pypi.tuna.tsinghua.edu.cn/simple

导入pynlpir包

如果发现加载报错,则需要更换license:https://github.com/NLPIR-team/NLPIR/tree/master/License/

真是开源的不彻底~~~


import pynlpir

打开分词器


pynlpir.open()

分词:这个工具会同时进行词性标注


s = "我爱自然语言处理技术!"

word_seg = pynlpir.segment(s)

print(word_seg)

[('我', 'pronoun'), ('爱', 'verb'), ('自然', 'adjective'), ('语言', 'noun'), ('处理', 'verb'), ('技术', 'noun'), ('!', 'punctuation mark')]

Stanford CoreNLP分词

安装:pip install stanfordcorenlp

国内源安装:pip install stanfordcorenlp -i https://pypi.tuna.tsinghua.edu.cn/simple

导入stanfordcorenlp包


from stanfordcorenlp import StanfordCoreNLP

先下载模型,然后导入

下载地址:


nlp_model = StanfordCoreNLP(r'stanford-corenlp-full-2018-02-27', lang='zh')

分词


s = '我爱自然语言处理技术!'

word_seg = nlp_model.word_tokenize(s)

print(word_seg)

['我爱', '自然', '语言', '处理', '技术', '!']

Hanlp分词

安装:pip install pyhanlp

国内源安装:pip install pyhanlp -i https://pypi.tuna.tsinghua.edu.cn/simple

导入pyhanlp包


from pyhanlp import *


s = '我爱自然语言处理技术!'

word_seg = HanLP.segment(s)

for term in word_seg:

    print(term.word)

我

爱

自然语言处理

技术

!

另外,代码我已经上传github:https://github.com/yuquanle/StudyForNLP/blob/master/NLPbasic/WordSegmentation.ipynb

你可能感兴趣的:(自然语言处理基础技术之分词实战)