hanlp源码中文分词算法如何解析
分析hanlp源码的中文分词算法。词图是指句子中所有词的可能图。如果单词A的下一个单词可能是B,则A和B之间存在路径E(A,B)。一个单词可能有多个后继,也可能有多个前趋。它们形成的图称为词图。
需要稀疏二维矩阵模型。以单词的起始位置为行,结束位置为列,就可以得到一个二维矩阵。例如:“他说的确实有道理”
图片文字的存储方式:一是DynamicArray方式,二是快速偏移方式。第二方法在 Hanlp 代码中使用。
1.DynamicArray(二维数组)方法
在单词图中,行与列的关系:col为n的列中的所有单词都可以与所有单词相关rows 其中 row 为 n 来组合 中的单词。例如,对于单词“indeed”,其col=5,有两个单词需要与其计算平滑值,即row=5的两个单词:“real”和“real”。但在遍历插入时,需要一一比较col和row的关系,复杂度为O(N)。
【2.快速偏移
【一维数组,每个元素是一个单向链表
【确实】行号为4,长度为2、4+2=6,所以第六行的“real/reality”两个字就是“indeed”的延续。
同时,这种方法速度非常快,插入和查询时间都是O(1)。
Hanlp核心词典:
最短路径算法——维特比(动态规划path)
Frequency:核心词典中的词频
nTwoWordsFreq:同现词频
intMAX_FREQUENCY= 25146057
double dTemp =(double) 1 / MAX_FREQUENCY +0.00001
dSmoothingPara =0.1
维特比最短路径有向图
1.计算过程从上到下,不断变化根据计算出的权值计算前驱节点,保证前驱节点唯一(动态规划路径)
2、计算完成后,取出从最后一个节点开始的项,然后取取出该节点的前驱节点,从而进行分词。 果:原因,确实,说他
看完以上内容对您有帮助吗?如果您想了解更多相关知识或阅读更多相关文章,请关注行业资讯频道。感谢您的支持。
2. 本站积分货币获取途径以及用途的解读,想在本站混的好,请务必认真阅读!
3. 本站强烈打击盗版/破解等有损他人权益和违法作为,请各位会员支持正版!
4. 编程技术 > hanlp源码中文分词算法如何解析