业界动态
Jieba分词介绍
2024-10-31 20:07

    结巴分词是一款非常流行中文开源分词包,具有高性能、准确率、可扩展性等特点,目前主要支持python,其它语言也有相关版本,好像维护不是很实时。

Jieba分词介绍

    这里只介绍他的主要功能:分词,他还提供了关键词抽取的功能。

  • 精确模式
  •     默认模式。句子精确地切开,每个字符只会出席在一个词中,适合文本分析;

  • 全模式
  •     把句子中所有词都扫描出来, 速度非常快,有可能一个字同时分在多个词

  • 搜索引擎模式
  •     在精确模式的基础上,对长度大于2的词再次切分,召回当中长度为2或者3的词,从而提高召回率,常用于搜索引擎。

  • 词性分词
  •     只支持精确模式分词,同时给出词的词性

  • 新词发现
  •     Jieba默认会对连续的单个字符使用HMM进行新词识别

        个人认为,自定义词表是结巴最大的优势,提高准确率,方便后续扩展,常见模型分词做不到这点。

        当然你也可以直接添加一个词典文件
       用法: jieba.load_userdict(file_name)
       词典格式和 dict.txt 一样,一个词占一行;每一行分三部分:词语、词频(可省略)、词性(可省略),用空格隔开。
       词频省略时使用自动计算的能保证分出该词的词频。
      例如:

     删除词:del_word(word)

        结巴分词其实就是通过词典分词,然后对不在词典的词使用HMM算法识别新词。

  • 基于词典分词
  •    属于分词中的词表分词。结巴主要基于有向无环图的查找算法,通过动态规划,从后至前使得词的切割组合联合概率最大。下面以“春雨医生你好全身红疹子”为例

       假设我们的词典如下

     从而有向无环图如下:

       

         每个词都会有一个连接的有向边,字本身都会有一个自我连接的边。用索引位置代表字符,邻接链表存取表示如下。0:[0, 1, 3]代表春可以组成词[春, 春雨, 春雨医生]

         {0: [0, 1, 3], 1: [1], 2: [2, 3], 3: [3], 4: [4, 5], 5: [5]}
        如果我们给每条路径加上权重,从而我们的分词转换成了求最大路径,将最大路径转换成分词的目标函数就是最大联合概率(路径相乘)。我们先看春雨医生四个字,这四个字没有与其他字的路径,也就是说这四个字的分词是独立,他们的最大路径必定也是整个句子的最大路径的子路径。春雨医生四个字总共存在四条路径:[春,雨,医,生]、[春雨,医,生]、[春雨,医生]、[春雨医生]。每条边的权重即这个词的概率为:p=freq/total,freq代表这个词的频数,也就是我们在词表里面设定的100,total为所有词频数之和,由于freq小于total,那么p是小于1的。简单计算:p[春,雨,医,生]<p[春雨,医,生]<p[春雨,医生]<p[春雨医生],我们会发现jieba倾向于分出更长的词,这是因为词权重小于1,相乘越多越小。权重在在分词中到底是做什么的?消歧,当某个字属于多个互不包含的词时,例如我的红疹与疹子两个词中诊应该和谁集合,这时就是权重起作用的时候。如果freq(红疹)*freq(子)>=freq(红)*freq(疹子)就分为红+疹子。整个句子的计算其实就是一个简单动态规划。从后至前,后面某个阶段的最大分词结果作为前面的结果,例如计算身位置后的路径总权重时,只需要将红疹子的最大权重赋给身就行了。计算参考jieba/__init__.py中的calc方法:

  • 基于HMM的新词识别
  •     有时候我们的词表并不能覆盖所有的词,如果不加处理就会被识别为单个字符,jieba是使用HMM来进行二次分词,即新词的识别。HMM属于分词中的序列标注,使用模型识别词每个位置的状态值。
        HMM的原理我不详细介绍,有兴趣的可以查看其它资料。

        

     

        HMM主要由两部分组成观察序列X与隐藏序列Y,隐藏序列是我们要预测的序列。和传统预测模型不一样,HMM还考虑被预测值的前后关系,以前面的天气预测为例,如果去预测明天,那么我们就可以用今天的观测值湿度等特征以及今天的隐藏值天气情况去预测明天。

        在分词中,观察序列即输入的字符,输出数列用“BEMS”代表。其中,B代表该字是词语中的起始字,M代表是词语中的中间字,E代表是词语中的结束字,S则代表是单字成词。“春雨医生/你好/全身/红疹/子”就可以表示为BMME/BE/BE/BE/S,由此可见HMM分词就是要预测所有字符的BEMS值。
        在分词中我们常用Viterbi算法来计算HMM。它主要训练以下三张表:状态的初始概率表π,输出序列直接转移关系表A,观察序列到输出序列的转移概率表B,详细实例请参考

        目前比较常见的分词都是基于序列标注的方法,即用更加复杂的模型来代替HMM,然后来预测字符的“BEMS”值。比较常见的模型主要为CRF和深度学习。

  • 基于CRF的分词方法
  •       

         HMM是生成模型它是通过查表寻找联合概率最大的组合,而CRF是判别模型,它是通过构造一个预测输出序列类别概率(字符在BEMS类别的概率)的目标函数。其实CRF是HMM随机场的更一般形式,HMM假设随机场中某一个位置的赋值仅仅与和它相邻的位置的赋值有关,和与其不相邻的位置的赋值无关。HMM中使用两个转移矩阵的联合概率表示输出变量Y,而CRF是用一个特征函 表示观测变量与输出变量的关联关系,其中X表示输入变量,i为当前位置,y表示输出状态值。f_k其实是节点特征函数与局部特征函数的统一表示。在分词中构建出联合概率函数就可以求解出每个位置的“BEMS”值了。

  • 基于深度学习的分词方法
  •     目前比较成熟的方法主要使用双向LSTM+CRF实现,其本质也输入序列标注,所以具有通用性,命名实体识别等都可以使用该模型(把词的类别BEMS换成相应的实体类别)。

          

                                       图:LSTM+CRF框架 

        

                                    图:实体识别

        以上就是本篇文章【Jieba分词介绍】的全部内容了,欢迎阅览 ! 文章地址:http://dfvalve.xrbh.cn/news/1085.html 
         资讯      企业新闻      行情      企业黄页      同类资讯      首页      网站地图      返回首页 迅博思语资讯移动站 http://keant.xrbh.cn/ , 查看更多   
    最新新闻
    “撒旦”人血鞋?碰瓷新疆棉花的耐克,又开始喊冤了?
    继主动碰瓷新疆棉花把自己搞得股价大跌之后耐克秉承着“no zuo no die”的精神又开始暗搓搓搞“阴间操作”限量发售含人血的“撒
    tiktok怎么搭建外网 详细教程及步骤
    TikTok怎么搭建外网(详细教程及步骤)TikTok是一款非常流行的短视频社交应用程序,它在全球范围内拥有数亿用户。在使用TikTok的
    《以案释法》步数越多,收益越高?别被“走路也能赚钱”的理财广告忽悠了
      走路也能赚到钱的理财  “丑的人还在睡觉,美的人已经跑出一杯星巴克了。”2016年的一天,一个女孩晒出的朋友圈截图引起了
    如何用生意参谋算出同行店铺真实销售额
    怎么经过生意顾问算出同行店肆实在销售额?大多数在淘宝天猫工作过的人都知道,他们的背景显现了同行商铺的买卖数据,这被称为买
    一款最近比较火的网站统计分析系统,易分析具有什么样的功能呢?
    一、产品简介北京普艾斯科技有限公司成立于2009年,服务客户1000+,包括电商、金融、保险、政务服务等行业。私有化部署,全渠道
    向佐快乐大本营2024年精彩回顾:四年时光共欢笑
    张大大谢娜力捧下的综艺新星张大大一位在娱乐圈中颇具人气的主持人他的成名之路离不开谢娜的提携回顾张大大的成名之路可以说谢娜
    PingTools app
    《PingTools app》是一款非常好用的实用工具软件,软件内拥有丰富的功能,包含了包括浏览器扫描等。使用非常简单,直接下载安装
    抖音能看到谁搜索过自己吗?
    尊敬的用户,您好。针对抖音平台是否能够查看谁搜索过自己的问题,我们需要做一些详细说明。首先,根据我们了解到的情况,在抖音
    什么是人工智能“语料库”?为什么每个人都在谈论它?
    编者按:比尔盖茨(Bill Gates)、Reddit 首席执行官和其他科技领袖越来越多地谈论“语料库”,现在是时候了解它是“何方神圣”
    LED行业词语中英对应
    1、led 灯具构成英文led 球泡灯:led bulbLed 贴片灯珠:SMD LEDLed驱动电源:led driver隔离电源:isolated driver非隔离电源:
    本企业新闻

    点击拨打: