词性标注概述
▶词类
同一个词类的词具有相同的语法功能、在同样的位置中出现
划分词类的目的在于描写语句的结构规则,以基于模式自动处理成批的语料(便于自然语言处理)
词类 =实词(content) +虚词(function)
实词——动词、形容词、代词、量词、数词虚词——连词、助词、语气词
▶词性
词性是对具体的词,根据其语法,兼顾其意义,将其归类的结果
▶词性标注
词性标注( POS tagging)就是在给定的句子中,判定每个词的语法范畴,确定词性并加以标注的过程
单类词(只具有单一词性的词):可以直接查词典兼类词(具有多种词性的词):要根据上下文进行推断,即消歧
# 兼类词import thulacthu = thulac.thulac()list1 = thu.cut("他是人民代表") # 代表:nlist2 = thu.cut("他代表了人民") # 代表:v
词性标注的难点在于:兼类词和未登录词的词性标注
汉语词性标注的特殊问题
❶形态标准
在英文中,-ing表示动名词,-ed表示过去式,-s表示名词复数…
而中文,是缺乏这种形态变化的——汉语的绝大多数词汇不具有前缀、后缀、重叠、黏附的形态变化
因此,根据形态划分中文词性,是行不通的。
某种意义上,虽然中文的形态变化匮乏,但也不是没有:
美化、绿化、现代化采用“化”为后缀;小猫、小狗、小兔子采用“小”作为前缀;商量商量、琢磨琢磨、漂漂亮亮、畏畏缩缩又是采用了“重复”的形态变化
只是这些,并不具备参考意义罢了———这样的词又有几个呢?
❷意义标准
英文中:good永远是形容词,fight永远是动词,plane永远是名词…
而中文,复杂太多太多——“我很好”,“这个loli好可爱”,“好”是形容词还是副词?“这人顶好”,“我到达了山顶”,“你不要顶嘴”,“顶”的词性呢?
因此,脱离了语法去谈词性,是很难具有语言学价值的。
❸分布标准
英文中:标准的主谓宾、定语从句、主语从句…
而中文,很难像英文这样保证某个词分布在固定的位置。一个词可能以一种奇怪的姿态与另一个词组合在一起,并出现在奇怪的位置
因此,基于分布标准进行中文词性标注也不是最好的选择。
❹兼类词
兼类词是中文词性标注的最大敌人———汉语中的兼类词占比达47%(悲
词性标注的思路
▊基于规则
基本思想:基于上下文指定标注规则
缺点:人工成本昂贵(语言学家编写规则);移植性查(一种语言一种规则);新规则与旧规则的冲突
▊基于机器学习
基本思想1:有监督的机器学习(太依赖训练语料)基本思想2:无监督的机器学习(即对相似的兼类词进行聚类)基本思想3:半监督的机器学习(少量的已标注样本 + 大量的未标注样本)
▊基于规则和机器学习
基本思想:上面两种思路的折中具体过程:初始词性标注(全部可能) -> 通过规则消歧 -> 通过机器学习消歧 -> 未登录词推测 -> 人工校对 -> 最终词性标注
▊感知机
基本思想:感知机好比神经网络的一个神经元——它只能做而分类,即输出兴奋(1)和抑制(0);用多个感知机组成一层神经网络,进行词性的标注补充:感知机其实和二元线性分类问题的常客——SVM支持向量机十分相似,算是低阶版的SVM,也比SVM要年长很多
词性标注工具
▶thulac
import thulac# 默认模式(如果想只分词不标注,设置参数seg_only=True)thu = thulac.thulac()list1 = thu.cut('中华人民共和国万岁,世界人民大团结万岁')print(list1)
▶jieba
import jiebafrom jieba import posseglist2 = list(jieba.posseg.cut('中华人民共和国万岁,世界人民大团结万岁'))print(list2)
设计词性标注器
默认标注器正则标注器查询标注器Unigram标注器Bigram标注器组合标注器本篇文中着重于理论,并未过多设计其代码实现
这部分内容可以戳这里>_<:《【词性标注】词性标注器设计》
如果觉得《【词性标注】一篇文章弄懂词性标注》对你有帮助,请点赞、收藏,并留下你的观点哦!