NLP基础—jieba分词

这篇具有很好参考价值的文章主要介绍了NLP基础—jieba分词。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

jieba分词

支持四种分词模式

  • 精确模式 试图将句子最精确地切开,适合文本分析;
  • 全模式 把句子中所有的可以成词的词语都扫描出来, 速度非常快,但是不能解决歧义;
  • 搜索引擎模式 在精确模式的基础上,对长词再次切分,提高召回率,适合用于搜索引擎分词。
  • paddle模式 利用PaddlePaddle深度学习框架,训练序列标注(双向GRU)网络模型实现分词。同时支持词性标注。 paddle模式使用需安装paddlepaddle-tiny.

jieba分词安装

1. 全自动安装
pip install jieba 
2. 半自动安装

先下载 http://pypi.python.org/pypi/jieba/ 解压后运行 python setup.py install

3. 手动安装

将 jieba 目录放置于当前目录或者 site-packages 目录

通过 import jieba 来引用

如果需要使用paddle模式下的分词和词性标注功能,请先安装paddlepaddle-tiny,pip install paddlepaddle-tiny==1.6.1

主要功能

分词
1、基本步骤

初始化


初始化时,先加载词典文件dict.txt,遍历每一行,生成词语-词数的键值对和总词数,并将生成结果保存到cache中,下次直接从cache中读取即可。

初始化可以简单理解为,读取词典文件,构建词语-词数键值对,方便后面步骤中查词典,也就是字符串匹配。

切分短语


  1. 首先进行将语句转换为UTF-8或者GBK。
  2. 然后根据用户指定的模式,是否全模式,是否采用HMM隐马尔科夫,来设置cut方式。
  3. 然后根据正则,将输入文本分为一个个语句。
  4. 最后遍历语句,对每个语句单独进行分词。

构建DAG


看构建DAG的过程。

先遍历一个个切分好的短语,对这些短语来进行分词。

首先要构建短语的有向无环图DAG。查词典进行字符串匹配的过程中,可能会出现好几种可能的切分方式,将这些组合构成有向无环图,如下图所示:

NLP基础—jieba分词,自然语言处理,自然语言处理,人工智能

得到语句的有向无环图DAG,DAG中记录了某个词的开始位置和它可能的结束位置。开始位置作为key,结束位置是一个list。

上面语句的完整DAG为: { 0: [1, 2], 1: [2], 2: [3, 4, 5], 3: [4], 4: [5] }

比如位置0的DAG表达为 {0: [1, 2]}, 也就是说0位置为词的开始位置时,1, 2位置都有可能是词的结束位置。

动态规划构建Route,计算从语句末尾到语句起始,DAG中每个节点到语句结束位置的最大路径概率,以及概率最大时节点对应词语的结束位置。文章来源地址https://www.toymoban.com/news/detail-854690.html

def calc(self, sentence, DAG, route):
    N = len(sentence)
    route[N] = (0, 0)
    logtotal = log(self.total)
    for idx in xrange(N - 1, -1, -1):
# route[idx] = (该汉字到最后一个汉字的最大路径概率, 
  # 最大路径概率时该汉字对应的词语结束位置).
# 遍历DAG中该汉字节点的结束位置,也就是DAG[idx],
  # 计算idx到x之间构成的词语的概率,然后乘以x到语句结束位置的最大概率,
  # 即可得到idx到语句结束的路径最大概率.
        route[idx] = max(
                       (log(self.FREQ.get(sentence[idx:x + 1]) or 1) 
                        - log(total) 
                       

到了这里,关于NLP基础—jieba分词的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包