论坛
门户
内部优惠
喜欢
话题
VIP会员
搜索
新浪微博
登录
注册
100%
100%
首页
>
网络技术
>
网络技术
>
中文分词算法工具hanlp源码解析
回复
« 返回列表
hadoop小学生
精灵王
注册日期
2018-09-13
发帖数
160
QQ
3234520070
火币
360枚
粉丝
0
关注
0
加关注
写私信
打招呼
阅读:
2860
回复:
0
中文分词算法工具hanlp源码解析
楼主
#
更多
只看楼主
倒序阅读
发布于:2019-03-13 13:21
保存
100%
100%
[]
1
词图
词图指的是句子中所有词可能构成的图。如果一个词
A的下一个词可能是B的话,那么A和B之间具有一条路径E(A,B)。一个词可能有多个后续,同时也可能有多个前驱,它们构成的图我称作词图。
需要稀疏
2维矩阵模型,以一个词的起始位置作为行,终止位置作为列,可以得到一个二维矩阵。例如:“他说的确实在理”这句话
图片:图1.JPG
图词的存储方法:一种是的
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)。
图片:图2.JPG
Hanlp核心词典:
图片:图3.JPG
最短路径算法
—viterbi(动态规划路径)
图片:图4.JPG
Frequency:核心词典中的词频
nTwoWordsFreq:共现词频
intMAX_FREQUENCY= 25146057
double dTemp =(double) 1 / MAX_FREQUENCY +0.00001
dSmoothingPara =0.1
Viterbi最短路径有向图
图片:图5.JPG
1、计算过程从上至下,根据计算出的权重值变更前驱结点,保证前驱结点唯一(动态规划路径)
2、计算结束后,从最后一个结点开始取出term,依次取出该结点的前驱结点即可
分词
结果:理,在,确实,的,说,他
作者:亚当
-adam
喜欢
0
评分
0
最新喜欢:
DKHadoop用着还不错!
回复
100%
发帖
回复
« 返回列表
普通帖
您需要登录后才可以回帖,
登录
或者
注册
100%
返回顶部
关闭
最新喜欢