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

图灵汇官网

昨天我对分词的概念及一些现有的Python开源工具进行了总结,计划明天分享一些实战经验。特别提到Jupyter Notebook非常好用。

jieba分词

安装

python pip install jieba 或者使用国内源安装: python pip install jieba -i https://pypi.tuna.tsinghua.edu.cn/simple

导入jieba包

python import jieba

分词示例

  • 全形式分词 python wordseg_all = jieba.cut("我爱自然言语处理技术!", cut_all=True) print("全形式: " + " ".join(wordseg_all)) 结果: 全形式: 我 爱 自然 自然言语 言语 处理 技术

  • 准确形式分词 python wordseg = jieba.cut("我爱自然言语处理技术!", cut_all=False) print("准确形式: " + " ".join(wordseg)) 结果: 准确形式: 我 爱 自然言语 处理 技术 !

  • 搜索引擎形式 python wordseg_search = jieba.cut_for_search("我爱自然言语处理技术!") print("搜索引擎形式:" + " ".join(wordseg_search)) 结果: 搜索引擎形式:我 爱 自然 言语 自然言语 处理 技术 !

SnowNLP分词

安装

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

导入snownlp包

python from snownlp import SnowNLP

示例

python model = SnowNLP(u'我爱自然言语处理技术!') print(model.words) 结果: ['我', '爱', '自然', '言语', '处理', '技术', '!']

THULAC分词

安装

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

导入thulac包

python import thulac

示例

  • 默认模式 python thulac_model = thulac.thulac() wordseg = thulac_model.cut("我爱自然言语处理技术!") print(wordseg) 结果: [['我', 'r'], ['爱', 'v'], ['自然', 'n'], ['言语', 'n'], ['处理', 'v'], ['技术', 'n'], ['!', 'w']]

  • 只分词 python seg_only_model = thulac.thulac(seg_only=True) wordseg_only = seg_only_model.cut("我爱自然言语处理技术!") print(wordseg_only) 结果: [['我', ''], ['爱', ''], ['自然', ''], ['言语', ''], ['处理', ''], ['技术', ''], ['!', '']]

NLPIR分词

安装

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

导入pynlpir包

python import pynlpir

示例

  • 打开分词器 python pynlpir.open()

  • 分词 python s = "我爱自然言语处理技术!" word_seg = pynlpir.segment(s) print(word_seg) 结果: [('我', 'pronoun'), ('爱', 'verb'), ('自然', 'adjective'), ('言语', 'noun'), ('处理', 'verb'), ('技术', 'noun'), ('!', 'punctuation mark')]

Stanford CoreNLP分词

安装

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

导入stanfordcorenlp包

python from stanfordcorenlp import StanfordCoreNLP

示例

  • 下载模型 python nlp_model = StanfordCoreNLP(r'stanford-corenlp-full-2018-02-27', lang='zh')

  • 分词 python s = '我爱自然言语处理技术!' word_seg = nlp_model.word_tokenize(s) print(word_seg) 结果: ['我爱', '自然', '言语', '处理', '技术', '!']

HanLP分词

安装

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

导入pyhanlp包

python from pyhanlp import *

示例

python 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

此外,欢迎关注我的公众号:StudyForAI(小白人工智能入门学习),也可以访问我的知乎专栏:https://www.zhihu.com/people/yuquanle/columns。

本文来源: 图灵汇 文章作者: 程程