Skip to content

中文词性标注类型定义

冬日新雨 edited this page Feb 25, 2022 · 3 revisions

前言

  • 词性标注的类型定义复杂度非常高!由于此前仅仅使用开源词性标注工具,而未自己手动搞过该任务模型,发现它的复杂度和定义情况要远远超过分词、实体识别、链接等。

汉语与词性

  • 汉语从语言学上属于分析语,它和英语等屈折语、日语等黏着语均不同。以英语为例,单词norm,可以延伸出normalnormalizenormalizationnormalizednormalizing等等。也就是说,由词根延伸出来的变形都具有非常清晰明确的词性,以及在句法中的成分和结构。因此,可以说,英语相对汉语是一种更加结构化规范化的语言。
  • 而汉语具有非常强的灵活性,语言的理解不强依赖语法,而强依赖语义

1. 汉语的语序

  • 汉语的语序是不固定的,不能简单理解是一种“主谓宾”结构。
  • 例如,你吃了吗?,又可以叙述成 吃了吗你?饭吃了吗?你吃饭了吗?饭你吃了吗?吃饭了吗?吃饭了吗你?。它完全不关心句子中各成分的结构顺序,也不关心各成分是否存在。而在英语中,则仅有少量的表达,例如,Have you eaten?Have you taken breakfast?。如果乱换语序,或缺少成分,则造成无法理解,例如,你不可以说You taken breakfast have?。正是汉语的这种灵活性,对词性标注带来了巨大的困难。

2. 汉语词性的模糊性

  • 汉语词汇没有屈折变化,词汇具有很强的词性模糊性。例如:适当性地提供一些帮助(副词)给他一些适当性的帮助(形容词)实验适当性原则(形容词性名词),这里,适当性充当了三种词性,而且全都由句子语义决定而非语法成分决定。

3. 汉语词性标注现状

  • 这种语序的灵活性、模糊性会造成,我们常用的开源词性标注工具,全部都是不太准的。
  • 一方面,因为词性的定义,也即标注数据,本身就是存疑的,有问题的。例如,名形词名动词区别词状态词等等是在汉语 wiki 百科中,语法书中常出现的词性定义,但是这种定义实际上仍然有非常大的陋误,在实际文本中有大量的反例可以推翻这些词性定义。原因就是因为汉语的灵活性。
  • 另一方面,词性标注是一种高度依赖标注的NLP任务。这种标注依赖强度要远远高于实体识别,汉英翻译,对话理解等等。因此,超高的标注成本也导致目前可用好用的词性标注几乎没有。
  • 同理,汉语句法分析也几乎是一个事实上死亡的 NLP 任务,因为汉语的灵活性太太太太太强了。

各开源词性标注工具

  • 词性标注的类型,几乎每一个开源的模型都有自己的定义,也就是由于开发者理解的不同,各自对类型定义不同。
  • jiojio 参考汉语词类wiki,总结了多个开源的词性标注说明文档,也结合了词性标注任务的多个开源语料,总结形成如下的 jiojio 词性标注文档。

词性标注的目的和定位

  • 词性标注任务我们定位于服务于解析信息抽取任务。而对于一些已经应用模型直接处理的任务,如多轮对话等,则不存在使用词性标注这项功能的意义。
  • 词性标注,重点在于标注词性。反例如某些词性标注模型中,单独将成语和俗语定义为一个词性标注类型。

词性标注的类型说明

一、成语、俗语的词性

  • 成语一般是四字固定短语,俗语一般长度更长的固定短句

  • 这其中有一个问题,成语仅仅是对固定搭配的来源和出处做了定义,而未对词性进行定义,也就是,即便标识了成语<l>这个类别,依然不清楚其词性。例如:夸大其词是一个动词性成语,跌宕起伏是一个形容词性成语,金枝玉叶是一个名形词(名词性形容词)。jiojio 的词性标注类型重点在于标识出成语和俗语的词性。

  • jiojio 中,不同词性的成语和俗语被标为不同的类型,例如,al表示形容词性成语、俗语。

  • 一些固定的搭配,虽然没有历史出处,仅仅是一种常用的说法,例如,五位一体,这种也按照成语来进行标识,因为我们的目的是标识出词性,而非找出哪些是成语。

二、url、ip地址、身份证号、email

  • 这几种经常出现在文本中,并且从某种角度,无法用某种词性来标注,属于广义的名词
  • 一般地,CRF算法不适合处理这种类型的序列标注,原因在于三者字符数一般较长,而 CRF 算法计算超长依赖关系会导致排列组合爆炸,而且影响其它类型的数据标注。
  • 因此,我们采用正则方式来直接在模型处理的最后解决这三类数据的处理。在模型中,直接标记为 x 类型。

注意:类型 x 是一种中间类型,它表示那些即将采用正则表达式来识别结果,在模型训练中所采用的类型。

  • 例如,10.27.32.119 的最终类型为 ip,但在模型中,没有 ip 类型,而是 x 类型,然后再使用正则对 x类型进行正则替换。

三、数词、量词

  • 数-量词是一类非常庞大的词性标注数据,用于抽取出数量数据。
  • 这种类型的难点在于,如何区分哪些属于数量词,哪些属于名词。例如,五只鸡属于数词,属于量词;但是,五年级属于数词,年级属于量词,那么,五年级应该当作数量词进行标注吗?这里标注数量词不恰当,因为五年级侧重表达的是名词含义,而非一种数量。

1、百分数、千分数

  • 43.98%应当标为单独数词,还是分开标为数量词,把%当作一个量词?jiojio 中直接将两者合标为一个数字,即百分数数字。

四、动词

  • 动词的涵盖面非常广,在词性中起到的作用非常大。
  • 在中文中, 是两个特殊动词,此类动词依然合并在大的动词类中。

五、外文字符、乱码字符、公式符号

  • 对于非中文等字符,即外文字符,如英文、法文、日文、俄文等字符,例如fabulousbonjour garçonпривет, мальчикハローボーイ等等。像俄文、日文等文字,可以直接使用正则表达式来进行处理。则在模型处理时,直接使用 x 符号进行标识。其它如韩文、泰文、越南文等同理。
  • 另一些公用字母的语言,如英文、法文、西班牙文等。无法采用正则直接将语言文字识别,此时会用一个常用的单词表对此种类型的字符进行匹配,然后判定。在模型中,则采用x类型代为标识。
  • 而乱码符号则直接使用 x 符号进行表示,如ffrearuipjferih323fd4 等,可能是计算机计算的 hash 值等。用 x 符号表示
  • 公式符号,例如:vertical = (horizontal_1 + horizontal_2) * (zeros_array)LARGE 等。此类内容很难采用正则表达式来完成,因为其中涉及到了英文单词和复杂的计算逻辑,同时也无法用模型来完成,因为公式的长度往往较长。因此,我们直接使用 x 对此类字符串进行表示。

注意:基于以上定义,似乎大量的内容都要使用 x 来表示,然后再对文本内容进行正则处理,但是,有一些外文表示不能按此处理。

  • 例如,Google 则应该直接识别为专有名词名,KTV也不能应该识别为名词,而非 x类型,即,如果一个英文表达,已经融入了中文的表达中,形成了一体,则应该按照普通的词性标注,反之则应该按照外文进行标识。

六、介词

  • 介词包括一些特殊类型,例如:等。均不做特殊处理,统一成一种类型p