在绘制词云图时,我们有时需要找到特定词性的单词,便云图显示更加精准,本文通过jieba(结巴)库中的posseg和nltk中pos_tag分别对汉英两种字符进行分词、标准,再利用列表表达式进行特定词性单词的提取,演示如下:
Python批量获取英汉语篇中特定词性的单词
一、对于英语中的特定词性单词进行提取首先引入nltk中的word_tokenize和pos_tag,对于需要操作字符先分词,再标注,然后再提取。代码如下:
from nltk import pos_tag,word_tokenizes="Where do you from? Do you like English?"text = word_tokenize(s) #分词print([(word,tag) for word,tag in pos_tag(text) if word.isalpha()]) # 查询标注结果print([(word,tag) for word,tag in pos_tag(text) if tag in ["NNP","PRP"]]) #提取名词和代词
结果展示:
二、对于汉语中特定词性词进行提取[('Where', 'WRB'), ('do', 'VBP'), ('you', 'PRP'), ('from', 'IN'), ('Do', 'VBP'), ('you', 'PRP'), ('like', 'IN'), ('English', 'NNP')][('you', 'PRP'), ('you', 'PRP'), ('English', 'NNP')]
首先引入jieba库,先进行分词,再利用其中的posseg对字符串进行标注。代码如下:
import jieba.posseg as psegs="""你想去学校填写学生寒暑假住校申请表吗?"""words=pseg.cut(s) #分词print([(word.word,word.flag) for word in words if word.flag in ['v']]) #提取动词
结果展示如下:
[('想', 'v'), ('去', 'v'), ('填写', 'v')]