专栏首页hanlp学习笔记hanlp源码解析之中文分词算法

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

词图

词图指的是句子中所有词可能构成的图。如果一个词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最短路径有向图

1、计算过程从上至下,根据计算出的权重值

变更前驱结点,保证前驱结点唯一(动态规划路径)

2、计算结束后,从最后一个结点开始取出term

,依次取出该结点的前驱结点即可

分词结果:理,在,确实,的,说,他

文章来源于亚当-adam的博客

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

我来说两句

0 条评论
登录 后参与评论

相关文章

  • HanLP分词器的使用方法

    之前我有想过用机器学习的方法来进行词法分析,但是在项目中测试时正确率不够。于是这时候便有了 HanLP-汉语言处理包 来进行提取关键词的想法。

    用户3492023
  • hanlp安装和使用

    在https://github.com/hankcs/HanLP/releases中下载data然后覆盖HanLP-1.3.4.zip解压后的data

    用户3492023
  • Spark应用HanLP对中文语料进行文本挖掘--聚类

    用到的知识:HanLP、Spark TF-IDF、Spark kmeans、Spark mapPartition;

    用户3492023
  • 【玩转腾讯云】一.半小时轻松搭建属于自己的Discuz论坛

    Discuz!是一套通用社区论坛软件系统,用户在不需要任何编程的基础上,通过简单的设置和安装,在互联网上搭建起具备完善功能、很强负载能力和可高度定制的论坛服务。

    一只特立独行的兔先生
  • Python解决小需求--网站在线听歌歌词同步到本地

    喜欢工作时听歌,但又想知道唱的是什么,也就是看见歌词,但又要轻量级,不下载客户端音乐软件,于是在豆瓣FM,网易云音乐等在线音乐网站上听歌。

    MiaoGIS
  • 自定义SAP Spartacus的产品搜索API参数

    C:\Code\SPA\spartacus\projects\core\src\occ\adapters\product\default-occ-product...

    Jerry Wang
  • Glove 细节介绍

    Steve Wang
  • (1)

    试用期工资为5000元,法律有规定,试用期工资是转正后工资的80%。试用期工资是5000元,转正后工资就得6250元

    达达前端
  • XGBoost 源码阅读笔记(2):树构造之 Exact Greedy Algorithm

    本篇将继续向大家介绍 XGBoost 源码是如何构造一颗回归树,不过在分析源码之前,还是有必要先和大家一起推导下 XGBoost 的目标函数。

    程飞翔
  • aapt获取apk版本等信息

    简介: aapt即Android Asset Packaging Tool,我们可以在SDK的platform-tools目录下找到该工具。aapt可以查看、 ...

    苦咖啡

扫码关注云+社区

领取腾讯云代金券