当前位置:   article > 正文

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

python判断中文词性

词性标注是对给定句子中的单词进行词性(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

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Monodyee/article/detail/355508
推荐阅读
相关标签
  

闽ICP备14008679号