THULAC是一款相当不错的中文分词工具,准确率高、分词速度蛮快的;并且在工程上做了很多优化,比如:用DAT存储训练特征(压缩训练模型),加入了标点符号的特征(提高分词准确率)等。
【开源中文分词工具探析】系列:
- 开源中文分词工具探析(一):ICTCLAS (NLPIR)
- 开源中文分词工具探析(二):Jieba
- 开源中文分词工具探析(三):Ansj
- 开源中文分词工具探析(四):THULAC
- 开源中文分词工具探析(五):FNLP
- 开源中文分词工具探析(六):Stanford CoreNLP
- 开源中文分词工具探析(七):LTP
1. 前言
THULAC所采用的分词模型为结构化感知器(Structured Perceptron, SP),属于两种CWS模型中的Character-Based Model,将中文分词看作为一个序列标注问题:对于字符序列\(C=c_1^n\),找出最有可能的标注序列\(Y=y_1^n\)。定义score函数\(S(Y,C)\)为在\(C\)的情况下标注序列为\(Y\)的得分。SP以最大熵准则建模score函数,分词结果则等同于最大score函数所对应的标注序列。记在时刻\(t\)的状态为\(y\)的路径\(y_1^{t}\)所对应的score函数最大值为
\[ \delta_t(y) = \max S(y_1^{t-1}, C, y_t=y) \]
那么,则有递推式
\[ \delta_{t+1}(y) = \max_{y'} \ \{ \delta_t(y') + w_{y',y} + F(y_{t+1}=y,C) \} \]
其中,\(w_{y',y}\)为转移特征\((y',y)\)所对应的权值,\(F(y_{t+1}=y, C)\)