前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >词性标注

词性标注

作者头像
伊泽瑞尔
发布2022-05-31 20:46:19
1.2K0
发布2022-05-31 20:46:19
举报

一旦科学插上幻想的翅膀,它就能赢得胜利。—— 迈克尔·法拉第

词性标注简介

词性标注是在给定句子中判定每个词的语法范畴,确定其词性并加以标注的过程,即把每个词标注其为名词、动词、形容词等。如:“黑客帝国是部很好看的电影”,对其词性标注的结果如下:“黑客帝国/其他专名,是/动词,部/量词,很/副词,好看/形容词,的/结构助词,电影/名词”。

词性标注最简单的方法是从语料库中统计每个词所对应的高频词性,将其作为默认词性,这种显然还有很大提升空间。使用机器学习(machine learning)方法实现词性标注,常用的词性标注算法包括隐马尔可夫模型(Hidden Markov Model, HMM)、条件随机场(Conditional random fields, CRF)等。

词性标注规范

词性标注将一个个词标注成名词、动词、形容词、副词等,需要用字母标记,如“n”,“v”,“a”,“d”。

北大标准/中科院标准

词性编码

词性名称

注解

ag

形语素

形容词性语素。形容词代码为 a,语素代码g前面置以a。

a

形容词

取英语形容词 adjective的第1个字母。

ad

副形词

直接作状语的形容词。形容词代码 a和副词代码d并在一起。

an

名形词

具有名词功能的形容词。形容词代码 a和名词代码n并在一起。

b

区别词

取汉字“别”的声母。

c

连词

取英语连词 conjunction的第1个字母。

dg

副语素

副词性语素。副词代码为 d,语素代码g前面置以d。

d

副词

取 adverb的第2个字母,因其第1个字母已用于形容词。

e

叹词

取英语叹词 exclamation的第1个字母。

f

方位词

取汉字“方”

g

语素

绝大多数语素都能作为合成词的“词根”,取汉字“根”的声母。

h

前接成分

取英语 head的第1个字母。

i

成语

取英语成语 idiom的第1个字母。

j

简称略语

取汉字“简”的声母。

k

后接成分

l

习用语

习用语尚未成为成语,有点“临时性”,取“临”的声母。

m

数词

取英语 numeral的第3个字母,n,u已有他用。

ng

名语素

名词性语素。名词代码为 n,语素代码g前面置以n。

n

名词

取英语名词 noun的第1个字母。

nr

人名

名词代码 n和“人(ren)”的声母并在一起。

ns

地名

名词代码 n和处所词代码s并在一起。

nt

机构团体

“团”的声母为 t,名词代码n和t并在一起。

nz

其他专名

“专”的声母的第 1个字母为z,名词代码n和z并在一起。

o

拟声词

取英语拟声词 onomatopoeia的第1个字母。

p

介词

取英语介词 prepositional的第1个字母。

q

量词

取英语 quantity的第1个字母。

r

代词

取英语代词 pronoun的第2个字母,因p已用于介词。

s

处所词

取英语 space的第1个字母。

tg

时语素

时间词性语素。时间词代码为 t,在语素的代码g前面置以T。

t

时间词

取英语 time的第1个字母。

u

助词

取英语助词 auxiliary。

vg

动语素

动词性语素。动词代码为 v。在语素的代码g前面置以v。

v

动词

取英语动词 verb的第一个字母。

vd

副动词

直接作状语的动词。动词和副词的代码并在一起。

vn

名动词

指具有名词功能的动词。动词和名词的代码并在一起。

w

标点符号

x

非语素字

非语素字只是一个符号,字母 x通常用于代表未知数、符号。

y

语气词

取汉字“语”的声母。

z

状态词

取汉字“状”的声母的前一个字母。

un

未知词

不可识别词及用户自定义词组。取英文Unkonwn首两个字母。(非北大标准,CSW分词中定义)

基于jieba的词性标注

前面说过jieba的分词功能,这块主要涉及jieba的词性标注功能。类似其分词流程,jieba的词性标注也是结合规则和统计的方式,其在词性标注过程中,词典匹配和HMM(隐马尔科夫模型)共同作用。词性标注的流程如下:

  1. 首先基于正则表达式进行汉字判断,jieba源代码posseg中正则表达式为:
代码语言:javascript
复制
re_han_internal = re.compile("([\u4E00-\u9FD5a-zA-Z0-9+#&\._]+)")
  1. 若符合上面的正则,则判定为汉字,然后基于前缀词典(如词“北京大学”的前缀分别是“北”、“北京”、“北京大”;词“大学”的前缀是“大”。)对句子进行切分,得到所有的切分可能,根据切分位置,构建一个有向无环图(对每个字都是通过在文本中的位置来标记的,因此可以构建一个以位置为key,相应划分的末尾词位置构成的列表为value的映射),再通过动态规划算法,计算得到最大概率路径,同时在前缀词典中找出它所分出的词性,若在词典中未找到,则赋予词性为“x”(代表未知)。在此过程中,若设置使用HMM,会对未登录词(即没有被收录在分词词表中但必须切分出来的词,包括各类专有名词(人名、地名、企业名等)、缩写词、新增词汇等等),会使用HMM的方式进行词性标注。
  2. 若不符合上面的正则,则继续通过其他正则进行类型匹配,分别赋予“x”(未知)“m”(数词)和“eng”(英文)。

例子:

代码语言:javascript
复制
>>> import jieba.posseg as pseg
>>> words = pseg.cut("去北京大学玩")
>>> print(['{}/{}'.format(word, flag) for word, flag in words])
Building prefix dict from the default dictionary ...
Loading model from cache /var/folders/z8/vyy4cxb5461_1tzkw0qjdk300000gn/T/jieba.cache
Loading model cost 0.643 seconds.
Prefix dict has been built succesfully.
['去/v', '北京大学/nt', '玩/v']

注:jieba支持自定义词典,其中词频和词性可以省略。但在词性标注中,若在自定义词典中省略词性,则最终切分词的词性将变成“x”(代表未知),对语法分析、词性统计等场景中的结果有一定影响,因此,使用jieba分词设置自定义词典时,尽量补齐词性。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-09-15,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 大数据与知识图谱 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 词性标注简介
  • 词性标注规范
  • 基于jieba的词性标注
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档