首页 > 代码库 > 双数组原理在分词字典中的应用

双数组原理在分词字典中的应用

首先是将分词字典构造成检索树。通常情况下,分词字典是完全的文本文件,其中每一行代表一个词

技术分享

例如表3-1所示的字典可以构造成如图3-8所示字典检索树的形式。

技术分享

由此一来,当利用该字典进行分词时,可以将待匹配字符串作为状态转移的字符输入,在字典检索树中进行遍历,从而判断该字符串是否为字典中存在的词。其算法如下:

1 Begin

2   c = FirstCharacter(s); //s为待匹配字符串

3   while(c不为空)

4          Begin

5                  if(NoBrunchInDictionary(c))     //无转移路径

6                         return false;           

7                  endif

8                c = NextCharacter(s);

9          End

10  if(此时状态为结束状态)

11         return true

12  else

13         return false

14  endif

15End

 

字典检索树在计算机中可以利用双数组进行存储。当分词系统频繁的调用分词字典进行分词时,由于系统对分词字典进行了索引并采取了双数组原理进行性能优化,从而使分词速度得到极大提高。

双数组原理在分词字典中的应用