词图

词图指的是句子中所有词可能构成的图。如果一个词A的下一个词可能是B的话,那么A和B之间具有一条路径E(A,B)。一个词可能有多个后续,同时也可能有多个前驱,它们构成的图我称作词图。

需要稀疏2维矩阵模型,以一个词的起始位置作为行,终止位置作为列,可以得到一个二维矩阵。例如:“他说的确实在理”这句话

图词的存储方法:一种是的DynamicArray法,一种是快速offset法。Hanlp代码中采用的是第二种方法。

1、DynamicArray(二维数组)法

在词图中,行和列的关系:col为n 的列中所有词可以与row为n 的所有行中的词进行组合。例如“的确”这个词,它的col =5,需要和它计算平滑值的有两个,分别是row =5的两个词:“实”和“实在”。但是在遍历和插入的时候,需要一个个比较col和row的关系,复杂度是O(N)。

2ã快速offset

一个一维数组,每个元素是一个单链表“的确”的行号是4,长度是2,4+2=6,于是第六行的两个词“实/实在”就是“的确”的后续。

同时这种方法速度非常快,插入和查询的时间都是O(1)。

Hanlp核心词典:

最短路径算法—viterbi(动态规划路径)

Frequency:核心词典中的词频

nTwoWordsFreq:共现词频

intMAX_FREQUENCY= 25146057

double dTemp =(double) 1 / MAX_FREQUENCY +0.00001

dSmoothingPara =0.1

Viterbi最短路径有向图

图5

1、计算过程从上至下,根据计算出的权重值变更前驱结点,保证前驱结点唯一(动态规划路径)

2、计算结束后,从最后一个结点开始取出term,依次取出该结点的前驱结点即可分词结果:理,在,确实,的,说,他

作者:亚当-adam

原文:https://blog.csdn.net/zhaojianting/article/details/78194317

中文分词算法工具hanlp源码解析相关推荐

  1. 中文分词算法python_Python FMM算法的中文分词器实现方法源码

    这是一篇基于Python代码使用FMM算法达到中文分词效果实现方法的文章.中文语句分词因为编码的关系在Python语言中并不是很好处理,关于中文乱码与编码的问题解决方法,可以参考玩蛇网的Python中 ...

  2. 基于双向BiLstm神经网络的中文分词详解及源码

    基于双向BiLstm神经网络的中文分词详解及源码 基于双向BiLstm神经网络的中文分词详解及源码 1 标注序列 2 训练网络 3 Viterbi算法求解最优路径 4 keras代码讲解 最后 源代码 ...

  3. TSDF算法原理及源码解析

    1. 先看效果 参考源码: https://github.com/andyzeng/tsdf-fusion-python 从图中可以看出,tsdf算法的重建效果还是不错的.该算法是很多牛掰3D重建算法 ...

  4. 免Root 实现App加载Xposed插件的工具Xpatch源码解析(一)

    前言 Xpatch是一款免Root实现App加载Xposed插件的工具,可以非常方便地实现App的逆向破解(再也不用改smali代码了),源码也已经上传到Github上,欢迎各位Fork and St ...

  5. Sentinel滑动时间窗限流算法原理及源码解析(上)

    文章目录 时间窗限流算法 滑动时间窗口 滑动时间窗口算法改进 滑动时间窗口源码解析 时间窗限流算法 10t到16t 10个请求 16t-20t 50个请求 20t-26t 60个请求 26t到30t ...

  6. C#:实现分词算法(附完整源码)

    C#:实现分词算法 using System; using System.Collections.Generic; using System.Linq; using System.Text; usin ...

  7. hanlp源码解析之中文分词算法

    词图 词图指的是句子中所有词可能构成的图.如果一个词A的下一个词可能是B的话,那么A和B之间具有一条路径E(A,B).一个词可能有多个后续,同时也可能有多个前驱,它们构成的图我称作词图. 需要稀疏2维 ...

  8. 什么是排他思想算法?(源码解析)

    排他思想算法 <!DOCTYPE html> <html lang="en"><head><meta charset="UTF- ...

  9. Sentinel滑动时间窗限流算法原理及源码解析(中)

    文章目录 MetricBucket MetricEvent数据统计的维度 WindowWrap样本窗口实例 范型T为MetricBucket windowLengthInMs 样本窗口长度 windo ...

最新文章

  1. 我放弃了年薪200万的岗位,因为“复制粘贴”的技术活让人厌恶
  2. python爬虫requests-Python爬虫---requests库快速上手
  3. Opengl-模型(告别箱子加载模型)
  4. html css 水平时间轴,纯css+js水平时间轴
  5. tensorflow:Multiple GPUs
  6. 2015毕业找工作纪实|一年的蜕变毕业生
  7. Mysql之七种连接查询
  8. Compile opencv 2.4.9/2.4.10.1 as static library
  9. Pandas处理缺失数据
  10. 《明朝那些事儿》读书笔记
  11. Linux下rpm打包
  12. 第三只眼网络监控软件简单分析,试用及清除
  13. 联想小新一键恢复小孔_【联想自带一键重装系统】联想自带一键重装小孔_联想自带一键恢复...
  14. 数据科学家也良莠不齐 蹩脚数据科学家的10个迹象
  15. python3入门教程 pdf_Python基础教程第3版(Beginning Python From Novice to Professional 3th) pdf...
  16. 修改STM32CuBeMX生成文件
  17. ubuntu设置开机启动图形应用程序,替换默认图形桌面
  18. QT comboBox设置下拉菜单()
  19. 应对嵌入式校招面试手撕之——链表
  20. Skyline WEB端开发3——添加一个弹框

热门文章

  1. linux编译cpp文件命令,Jsoncpp Linux 下编译为 .a 文件
  2. some any oracle,Oracle之 any、some、all 解析
  3. .NET/C# 反射的的性能数据,以及高性能开发建议(反射获取 Attribute 和反射调用方法)...
  4. Anaconda中出现No module named cv2
  5. HDU 3555: Bomb
  6. EventEmitter
  7. Python学习 Week2 part1
  8. UIKit应用 - Swift 版本: 3.让UITableViewCell的背景色渐变
  9. LUN/PV/VG/LV
  10. 推荐一款强大的SQL Internal 查看工具InternalsViewer