温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

如何解析hanlp源码中文分词算法

发布时间:2021-11-29 16:34:57 来源:亿速云 阅读:162 作者:柒染 栏目:数据库

如何解析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,依次取出该结点的前驱结点即可分词结果:理,在,确实,的,说,他

看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注亿速云行业资讯频道,感谢您对亿速云的支持。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI