python中如何判断词性_Python3自然语言处理——词性标注

本文介绍了Python3中使用NLTK进行词性标注的方法,包括内置标注器、自定义词性标注器(如DefaultTagger、RegexpTagger和LookupTagger)的使用,并展示了如何训练和加载自定义词性标注器。通过实例代码展示词性标注的过程,以及词性标注的常用标签及其含义。
摘要由CSDN通过智能技术生成

词性标注是对给定句子中的单词进行词性(Parts of Speech,POS)分类的过程。实现标注目的的软件称为词性标注器(tagger)。NLTK支持多种标注器。

1.内置的词性标注器

创建一个新文件,命名为Exploring.py,输入以下代码:

import nltksimpleSentence="Beijing is the capital of China."wordsInSentence=nltk.word_tokenize(simpleSentence)print(wordsInSentence)partsOfSpeechTags=nltk.pos_tag(wordsInSentence)print(partsOfSpeechTags)

第1行代码指示Python解释器将NLTK模块从磁盘加载到内存,并使NLTK库在程序中可用。第2行创建了一个名为simpleSentence的变量,并定义为一个字符串。第3行代码调用了NLTK内置的word_tokenize()函数,它将给定的句子分解成单词并返回一个Python列表数据类型。一旦得到由函数计算的结果,我们就将其分配给wordsInSentence变量。第4行代码调用了Python内置的print()函数,它显示了如屏幕所示的数据结构。在本例中,我们显示了所有标注的单词列表。仔细观察这些输出,屏幕上显示了一个Python列表的数据结构,它由以逗号分隔的所有字符串组成,所有的列表元素都括在方括号内。第5行代码调用了内置的标注器pos_tag(),通过wordsInsentence变量生成一个单词列表,同时也标注了词性。一旦标注完成,就会生成完整的元组列表,每个元组都有标记的单词和相应的词性标注,最后通过第6行代码在屏幕上打印出给定的参数,结果如下:

["Beijing", "is", "the", "capital", "of", "China", "."][("Beijing", "NNP"), ("is", "VBZ"), ("the", "DT"), ("capital", "NN"), ("of", "IN"), ("China", "NNP"), (".", ".")]

在这个实例中,我们可以看到元组列表中的每个元组都由原始单词和POS标注组成。

2.编写自己的词性标注器

创建一个新文件,命名为OwnTagger.py输入以下源代码:

import nltkdef learnDefaultTagger(simpleSentence):wordsInSentence=nltk.word_tokenize(simpleSentence)tagger=nltk.DefaultTagger("NN")posEnabledTags=tagger.tag(wordsInSentence)print(posEnabledTags)def learnRETagger(simpleSentence):customPatterns=[(r".*ing$","ADJECTIVE"),(r".*ly$","ADVERB"),(r".*ion$","NOUN"),(r"(.*ate|.*en|is)$","VERB"),(r"^an$","INDEFINITE-ARTICLE"),(r"^(with|on|at)$","PREPOSITION"),(r"^\-?[0-9]+(\.[0-9]+)$","NUMBER"),(r">*$","None")]tagger=nltk.RegexpTagger(customPatterns)wordsInSentence=nltk.word_tokenize(simpleSentence)posEnabledTags=tagger.tag(wordsI

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值