1. 关键词提取: jieba.analyse.extrags()
其中参数sentence 为待提取的文本,topK 为返回几个 TF/IDF 权重最大的关键词,默认值为 20,withWeight 为是否一并返回关键词权重值,默认值为 False。 allowPOS 仅包括指定词性的词,默认值为空,即不筛选。
import jieba import jieba.analyse import nltk paragraph = "生活对我们任何人来说都不容易。 我们必须努力,最重要的是我们必须相信自己。 \ 我们必须相信,我们每个人都能够做得很好,而且,当我们发现这是什么时,我们必须努力工作,直到我们成功。" words_list = jieba.lcut(paragraph) print(jieba.analyse.extract_tags(paragraph,topK=5)) ['我们', '必须', '努力', '相信', '任何人']
可以看出,提取关键词时是不考虑标点符号的;”都“和”对“这种词也不考虑。
import operator sorted(dict(nltk.FreqDist(words_list)).items(),key=operator.itemgetter(1),reverse=True) [('我们', 8), (',', 6), ('必须', 4), ('。', 3), ('都', 2), (' ', 2), ('努力', 2), ('相信', 2), ('生活', 1), ('对', 1), ('任何人', 1), ('来说', 1), ......]
2. 词性标注:jieba.posseg.cut(), 返回一个迭代器
import jieba.posseg as pseg words = pseg.cut(paragraph) words <generator object cut at 0x000001CF7CB1F360>
注:具体的中文词性类型及对应符号可参考博文https://blog.csdn.net/zhuzuwei/article/details/79029904
for word, flag in words: print('%s, %s' % (word, flag)) 生活, vn 对, p 我们, r 任何人, r 来说, u 都, d 不, d 容易, a 。, x 我们, r 必须, d 努力, ad ......