背景

使用熵信息和概率,通过熵信息提高左右邻字丰富程度,通过概率提高内部凝聚程度。

为什么考虑左右邻丰富程度

其中W_neighbor为字符组合左/右邻字的集合。 举个例子,同样是在文本中出现6000+次的“副总裁”和“人工智”,字符组合的左熵都在6左右,但“副总裁”的右邻字包括 { 张,王,说, … } 等147个词,而“人工智”的右邻字只有 { 能,障 } 两种,显然“人工智”不能称作一个词。可以看算法模型中的图。所以说,并不是左右邻字越丰富,就越可以看做是一个词。

为什么考虑内部凝聚程度

比如“演唱者”出现117次,“的演唱”出现275次,从出现频数来看,“的演唱”更像是一个词。但是实际来向演唱者才是一个词。因此考虑每一个字的概率,加入互信息中,得到最终的结果。

为什么需要同时考虑左熵(LE)和右熵(RE)

因此我们在度量一个字符组合的左右邻字丰富程度时,也要注意到LE和RE的差距。比如取二者的最小值,或者将LE与RE差的绝对值(|LE-RE|)纳入考虑范围。

模型

(1)首先得到ngram,例如bi-gram, tri-gram,得到n-gram后,可以依据频率做一个划分,频率较高的词拿出来当作目标词进行考虑, 相当于是bi(两个词), tri(三个词), n-gram(n个词),计算概率是可以在这些词中进行计算。
(2) 计算左熵和右熵(我觉得这里可以先依据停用词做一个划分),左熵和右熵要同时考虑。计算熵时,例如目标词“资源”(2-gram),然后在(3-gram)中,找资源的左邻字和,右邻字。这里在查找过程中,使用字典树(前缀树)的算法。

计算熵:构建好字典树之后,就可以计算左熵和右熵。计算完左熵和右熵之后,通过公式进行融合计算。


求右熵:目标词:人工智,然后求人工智的熵,通过熵,我们计算关于人工智能,人工智障出现的和,反映信息的度量。
2表示的基。第一个表示在“”人工智"前提下不同字的熵和。

上述这一块可以反应出,为什么使用熵可以反应出这个信息。数量越多,熵值是越大的,即拥有丰富的邻字信息。

(3)计算互信息
(4)熵与互信息的融合

左右邻丰富度:
L(W)=log⁡LE⋅eRE+RE⋅eLE∣LE−RE∣L(W)=\log \frac{L E \cdot e^{R E}+R E \cdot e^{L E}}{|L E-R E|} L(W)=log∣LE−RE∣LE⋅eRE+RE⋅eLE​
词的凝聚度:
AMI=1nlog⁡p(W)p(c1)⋯p(cn)A M I=\frac{1}{n} \log \frac{p(W)}{p\left(c_{1}\right) \cdots p\left(c_{n}\right)} AMI=n1​logp(c1​)⋯p(cn​)p(W)​
融合后:
score =AMI+L(W)\text { score }=A M I+L(W)  score =AMI+L(W)

附录

信息熵

互信息

互信息被用来描述词的内聚程度

相关参考资料

开源讲解链接:https://zhuanlan.zhihu.com/p/80385615
https://baike.baidu.com/item/%E4%BA%92%E4%BF%A1%E6%81%AF/7423853?fr=aladdin (百度百科互信息)

分词算法 SmoothNLP相关推荐

  1. 正向最大匹配算法 python代码_中文分词算法之最大正向匹配算法(Python版)

    最大匹配算法是自然语言处理中的中文匹配算法中最基础的算法,分为正向和逆向,原理都是一样的. 正向最大匹配算法,故名思意,从左向右扫描寻找词的最大匹配. 首先我们可以规定一个词的最大长度,每次扫描的时候 ...

  2. 基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词

    基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词.比如能分出这样的词:bb霜.3室.乐phone.touch4.mp3.T恤 第一次写中文分词程序,欢迎拍砖. publicclass MM ...

  3. 大数据DDos检测——DDos攻击本质上是时间序列数据,t+1时刻的数据特点和t时刻强相关,因此用HMM或者CRF来做检测是必然! 和一个句子的分词算法CRF没有区别!...

    DDos攻击本质上是时间序列数据,t+1时刻的数据特点和t时刻强相关,因此用HMM或者CRF来做检测是必然!--和一个句子的分词算法CRF没有区别! 注:传统DDos检测直接基于IP数据发送流量来识别 ...

  4. 基于词典的逆向最大匹配中文分词算法,更好实现中英文数字混合分词

    基于词典的逆向最大匹配中文分词算法,能实现中英文数字混合分词.比如能分出这样的词:bb霜.3室.乐phone.touch4.mp3.T恤.实际分词效果比正向分词效果好 publicclass RMM ...

  5. Mmseg中文分词算法解析

    Mmseg中文分词算法解析 @author linjiexing 开发中文搜索和中文词库语义自己主动识别的时候,我採用都是基于mmseg中文分词算法开发的Jcseg开源project.使用场景涉及搜索 ...

  6. 逆向最大匹配分词算法

    逆向最大匹配分词算法 By Jorbe 2014/03/13 计算机科学 No Comments 中文分词是所有中文信息处理的基础.在数据挖掘.搜索引擎.自然语言处理等领域都起着至关重要的作用.中文分 ...

  7. 搜索引擎设计实用教程(3)-以百度为例 之三:对百度分词算法的进一步分析

    中科院软件所 2005年11月 上面说过,经过分析得出百度的分词系统采用双向最大匹配分词,但是后来发现推理过程中存在一个漏洞,而且推导出来的百度分词算法步骤还是过于繁琐,所以进一步进行分析,看看是否前 ...

  8. 【摘抄】百度分词算法详解:查询处理以及分词技术

    随着搜索经济的崛起,人们开始越加关注全球各大搜索引擎的性能.技术和日流量.作为企业,会根据搜索引擎的知名度以及日流量来选择是否要投放广告等:作为 普通网民,会根据搜索引擎的性能和技术来选择自己喜欢的引 ...

  9. 在Hadoop上运行基于RMM中文分词算法的MapReduce程序

    原文:http://xiaoxia.org/2011/12/18/map-reduce-program-of-rmm-word-count-on-hadoop/ 在Hadoop上运行基于RMM中文分词 ...

最新文章

  1. ECLIPSE 添加插件3种方法
  2. android SurfaceView
  3. AI机器人:与智能机器人进行实时智能交互,想问什么就问什么
  4. android tablayout 字体颜色,Tablayout变颜色 以及Fragment进行切换
  5. LeetCode 1553. 吃掉 N 个橘子的最少天数(BFS)
  6. Git 的安装和创建版本库 。
  7. Docker入门与实战
  8. winform窗口关闭提示
  9. python数据结构二叉树的前序,中序,后续遍历与推导
  10. eclipse svn插件安装_PHP 安装
  11. Linux修改时区和时间
  12. git revert 回滚代码至上一版本
  13. Linux升级glibc版本汉字乱码,glibc版本升级
  14. centos php ioncube_如何在CentOS 7云服务器上安装ionCube?
  15. pytorch制作数据集
  16. 热敏打印机的工作原理
  17. 医疗CT断层图像DICOM标准和工业CT断层图像DICONDE标准
  18. 你在读文学作品的时候也许从来没考虑这些问题
  19. 运营地方旅游网站是否还有生存空间?
  20. 推荐系统:电商推荐系统架构

热门文章

  1. html中做用户输入的判断
  2. 制衣厂普工小伙用java代码写的xml解析框架
  3. convert 旋转、裁剪图片
  4. 百度总裁李彦宏向创业青年支招
  5. C#项目.net framework不同版本转换
  6. ACCELSTEPPER库实例分析
  7. 【电子取证篇】声像资料鉴定仪器设备配置标准
  8. burp suite暴力破解
  9. 7-3 可爱的Tommy (5 分)——解析
  10. Windows修改软件默认安装目录