-
Notifications
You must be signed in to change notification settings - Fork 7
中文词性标注类型定义
冬日新雨 edited this page Feb 25, 2022
·
3 revisions
- 词性标注的类型定义复杂度非常高!由于此前仅仅使用开源词性标注工具,而未自己手动搞过该任务模型,发现它的复杂度和定义情况要远远超过分词、实体识别、链接等。
- 汉语从语言学上属于分析语,它和英语等屈折语、日语等黏着语均不同。以英语为例,单词
norm
,可以延伸出normal
、normalize
、normalization
、normalized
、normalizing
等等。也就是说,由词根延伸出来的变形都具有非常清晰明确的词性,以及在句法中的成分和结构。因此,可以说,英语相对汉语是一种更加结构化规范化的语言。 - 而汉语具有非常强的灵活性,语言的理解不强依赖语法,而强依赖语义。
- 汉语的语序是不固定的,不能简单理解是一种“主谓宾”结构。
- 例如,
你吃了吗?
,又可以叙述成吃了吗你?
、饭吃了吗?
、你吃饭了吗?
、饭你吃了吗?
、吃饭了吗?
、吃饭了吗你?
。它完全不关心句子中各成分的结构顺序,也不关心各成分是否存在。而在英语中,则仅有少量的表达,例如,Have you eaten?
、Have you taken breakfast?
。如果乱换语序,或缺少成分,则造成无法理解,例如,你不可以说You taken breakfast have?
。正是汉语的这种灵活性,对词性标注带来了巨大的困难。
- 汉语词汇没有屈折变化,词汇具有很强的词性模糊性。例如:
适当性地提供一些帮助(副词)
,给他一些适当性的帮助(形容词)
,实验适当性原则(形容词性名词)
,这里,适当性
充当了三种词性,而且全都由句子语义决定而非语法成分决定。
- 这种语序的灵活性、模糊性会造成,我们常用的开源词性标注工具,全部都是不太准的。
- 一方面,因为词性的定义,也即标注数据,本身就是存疑的,有问题的。例如,
名形词
、名动词
、区别词
、状态词
等等是在汉语 wiki 百科中,语法书中常出现的词性定义,但是这种定义实际上仍然有非常大的陋误,在实际文本中有大量的反例可以推翻这些词性定义。原因就是因为汉语的灵活性。 - 另一方面,词性标注是一种高度依赖标注的NLP任务。这种标注依赖强度要远远高于实体识别,汉英翻译,对话理解等等。因此,超高的标注成本也导致目前可用好用的词性标注几乎没有。
- 同理,汉语句法分析也几乎是一个事实上死亡的 NLP 任务,因为汉语的灵活性太太太太太强了。
- 词性标注的类型,几乎每一个开源的模型都有自己的定义,也就是由于开发者理解的不同,各自对类型定义不同。
- jiojio 参考汉语词类wiki,总结了多个开源的词性标注说明文档,也结合了词性标注任务的多个开源语料,总结形成如下的 jiojio 词性标注文档。
- 词性标注任务我们定位于服务于解析和信息抽取任务。而对于一些已经应用模型直接处理的任务,如多轮对话等,则不存在使用词性标注这项功能的意义。
- 词性标注,重点在于标注词性。反例如某些词性标注模型中,单独将成语和俗语定义为一个词性标注类型。
-
成语一般是四字固定短语,俗语一般长度更长的固定短句。
-
这其中有一个问题,成语仅仅是对固定搭配的来源和出处做了定义,而未对词性进行定义,也就是,即便标识了
成语<l>
这个类别,依然不清楚其词性。例如:夸大其词
是一个动词性成语,跌宕起伏
是一个形容词性成语,金枝玉叶
是一个名形词
(名词性形容词)。jiojio 的词性标注类型重点在于标识出成语和俗语的词性。 -
jiojio 中,不同词性的成语和俗语被标为不同的类型,例如,
al
表示形容词性成语、俗语。 -
一些固定的搭配,虽然没有历史出处,仅仅是一种常用的说法,例如,
五位一体
,这种也按照成语来进行标识,因为我们的目的是标识出词性,而非找出哪些是成语。
- 这几种经常出现在文本中,并且从某种角度,无法用某种词性来标注,属于
广义的名词
。 - 一般地,CRF算法不适合处理这种类型的序列标注,原因在于三者字符数一般较长,而 CRF 算法计算超长依赖关系会导致排列组合爆炸,而且影响其它类型的数据标注。
- 因此,我们采用正则方式来直接在模型处理的最后解决这三类数据的处理。在模型中,直接标记为
x
类型。
- 例如,
10.27.32.119
的最终类型为ip
,但在模型中,没有ip
类型,而是x
类型,然后再使用正则对x
类型进行正则替换。
- 数-量词是一类非常庞大的词性标注数据,用于抽取出数量数据。
- 这种类型的难点在于,如何区分哪些属于数量词,哪些属于名词。例如,
五只鸡
,五
属于数词,只
属于量词;但是,五年级
,五
属于数词,年级
属于量词,那么,五年级
应该当作数量词进行标注吗?这里标注数量词不恰当,因为五年级
侧重表达的是名词含义,而非一种数量。
-
43.98%
应当标为单独数词,还是分开标为数量词,把%
当作一个量词?jiojio 中直接将两者合标为一个数字,即百分数数字。
- 动词的涵盖面非常广,在词性中起到的作用非常大。
- 在中文中,
有
和是
是两个特殊动词,此类动词依然合并在大的动词类中。
- 对于非中文等字符,即外文字符,如英文、法文、日文、俄文等字符,例如
fabulous
、bonjour garçon
、привет, мальчик
、ハローボーイ
等等。像俄文、日文等文字,可以直接使用正则表达式来进行处理。则在模型处理时,直接使用x
符号进行标识。其它如韩文、泰文、越南文等同理。 - 另一些公用字母的语言,如英文、法文、西班牙文等。无法采用正则直接将语言文字识别,此时会用一个常用的单词表对此种类型的字符进行匹配,然后判定。在模型中,则采用
x
类型代为标识。 - 而乱码符号则直接使用 x 符号进行表示,如
ffrearuipjferih323fd4
等,可能是计算机计算的 hash 值等。用x
符号表示 - 公式符号,例如:
vertical = (horizontal_1 + horizontal_2) * (zeros_array)LARGE
等。此类内容很难采用正则表达式来完成,因为其中涉及到了英文单词和复杂的计算逻辑,同时也无法用模型来完成,因为公式的长度往往较长。因此,我们直接使用x
对此类字符串进行表示。
- 例如,
Google
则应该直接识别为专有名词名,KTV
也不能应该识别为名词,而非x
类型,即,如果一个英文表达,已经融入了中文的表达中,形成了一体,则应该按照普通的词性标注,反之则应该按照外文进行标识。
- 介词包括一些特殊类型,例如:
把
、被
、将
等。均不做特殊处理,统一成一种类型p
。