-
Notifications
You must be signed in to change notification settings - Fork 7
词性标注任务简述与CRF实现难点分析
冬日新雨 edited this page Jul 8, 2022
·
1 revision
- jiojio除了分词以外,还实现了CRF方法的词性标注功能。
- 然而与分词相比,CRF在实现词性标注上,已经凸显出一些不足和问题,具体阐述如下。
- 词性标注任务的标注标准存在多个层级。例如,
新冠肺炎
这个词,一般我们标其为名词,但有时也可以将其标为新冠
和肺炎
两个词,此时,新冠
具有了形容词名词性,我们一般将这种词标为形名词
。 - 同样地,还有相当数量的其它词汇均具有此种特征,如
副形词
、副动词
、动名词
等等。这些在英文中都不是问题,因为英语是一种语法相对严格的屈折语。而这些在汉语中就成了问题,会导致词性标注的不确定性。
- 如上所属,不同的标注标准会导致大量的词性种类,
名词n
可以被分为普通名词n
、人名词nr
、地名词ns
、专用名词nz
等等,甚至包括动名词
、形名词
等等。这样导致了词性类别的多种多样,在类型较细的情况下,甚至可以多达80多种。 - 类别数量的增加,将会导致 CRF算法的计算量线性增加。在Viterbi算法阶段则是
o(n^2)
的复杂度增加。因此,在我们基于 CPU 的词性标注实现上,追求的是词性标注的种类越少越好,这对追求高精度的词性标注,显然是不利的。
- 分词任务需要建立上下文依赖,这个依赖范围,一般在
正负 3
的字符范围即可获得不错效果。 - 词性标注则上下文依赖范围要长,甚至可以达到
正负10
个字符,也就是正负3
个词汇,才能确定一个词的最终词性。这对于 CRF 来说是极为困难的,特征数量将非常爆炸。考虑到最终实现上需要考虑内存和CPU等因素,参数量一定是受限的,这又导致了模型的效果受到影响。
- CRF 算法在实现分词上,可以达到预期的效果,而词性标注则要下降一个档次,一般来说,模型的F1值介于 88%~92%之间,再高则需要更精准的数据、更加复杂的模型、更好的硬件配置GPU 等等。