学科分类
目录
数据分析

词性标注

词性是对词语分类的一种方式。现代汉语词汇大致可以分为名词、动词、形容词、数词、量词、代词、介词、副词、连词、感叹词、助词和拟声词等12种,英文词汇可以分为名词、形容词、动词、代词、数词、副词、介词、连词、冠词和感叹词等10种。

词性标注,又称词类标注,是指为分词结果中的每个单词标注一个正确的词性,也就是说确定每个单词是名词、动词、形容词或其它词性的过程。比如在“I love itcast”中,“I”为人称代词,“love”为动词,“itcast”为名词。

NLTK库中使用不同的约定来标记单词,为了帮助大家快速地了解,接下来,通过一张表格来列举通用的词性标注集,具体如表1所示。

表1 通用词性标注集

标签 描述 示例
JJ 形容词 special,high,good
RB 副词 quickly,simply,hardly
CC 条件连词 and,or
DT 限定词 the,a
MD 情态动词 could,should
NN 单数名词 home,time,year
NNS 复数名词 birds,dogs,flowers
NNP 专有名词单数 Africa,April,Washington
CD 基本数量词 twenty-one,second,1997
PRP 人称代词 I,you,he,she
PRP$ 所有格代词 my,your,his,her
IN 介词 on,of,at,by,under
TO 不定词 how to,what to do
UH 感叹词 ah,ha,wow,oh
VB 动词原型 see,listen,speak,run
VBD 动词过去时 did,told,made
VBG 动名词 going,working,making
VBN 动词过去分词 given,taken,begun
WDT WH限定词 which,whatever

在NLTK中,如果希望给单词标注词性,则需要先确保已经下载了averaged_perceptron_tagger模块,当下载了这个模块后,就可以调用pos_tag()函数进行标注,示例代码如下。

In [8]: words = nltk.word_tokenize('Python is a structured and powerful
                                   object-oriented programming language.')
        # 为列表中的每个单词标注词性
        nltk.pos_tag(words)
Out[8]: [('Python', 'NNP'), ('is', 'VBZ'), ('a', 'DT'), ('structured', 'JJ'), 
         ('and', 'CC'), ('powerful', 'JJ'),('object-oriented', 'JJ'), 
         ('programming', 'NN'),('language', 'NN'), ('.', '.')]

上述示例输出了一个列表,该列表里面包含了多个元组,其中元组的第一个元素为划分的单词,第二个元素为标注的词性。例如,第一个元组('Python', 'NNP')中,“Python”是一个专有名词,所以词性被标注为“NNP”。

点击此处
隐藏目录