jieba.analyse+词性标注+统计出场次数+sklearn计算tfidf值

import jieba.analyse
sentence='故今日之责任,不在他人,全在我少年。少年智,则国智。少年富,则国富。少年强,则国强。少年独立,则国独立。少年自由,则国自由。少年进步,则国进步。少年胜于欧洲,则国胜于欧洲。少年雄于地球,则国雄于地球。红日初升,其道大光。河出汱流,一泻汪洋。潜龙腾潜龙腾渊,鳞爪飞扬。如虎啸谷,百兽震惶。鹰隼试翼,风尘吹张。奇花初胎,矞矞皇皇。干将发硎,有作其芒。天戴其苍,地履其黄。纵有千古,横有八荒。前途似海,来日方长。美在我少年中国,与天不老。壮哉我中国少年,与国无疆!日本人之称我中国也,一则曰老大帝国,再则曰老大帝国。是语也,盖袭译欧西人之言也。呜呼!我中国其果老大矣乎?梁启超曰:恶,是何言!是何言!吾心目中有一少年中国在'

#基于 TF-IDF提取关键字
keywords=jieba.analyse.extract_tags(sentence,topK=20,withWeight=True,allowPOS=('n','nr','ns'))
#print(type(keywords))
for item in keywords:
    print(item[0],item[1])

jieba.analyse+词性标注+统计出场次数+sklearn计算tfidf值_第1张图片

# 基于TextRank算法的关键词抽取
keywords1=jieba.analyse.textrank(sentence, topK=20, withWeight=True, allowPOS=('ns','n','vn','v'))
for item in keywords1:
    print(item[0],item[1])

jieba.analyse+词性标注+统计出场次数+sklearn计算tfidf值_第2张图片

#词性标注
import jieba.posseg as pseg
words=pseg.cut('她是一个鬼精灵')
for word,flag in words:
    print('%s %s'%(word,flag))

在这里插入图片描述

#利用jieba库统计三国演义中任务的出场次数
import jieba
txt=open('D:\\资料\\词云构建\\zihaowordcloud-master\\code\\三国演义.txt','r',encoding='utf-8').read()#使用精确模式对文本进行分词
words=jieba.lcut(txt)#通过键值对的形式存储词语及其出现的次数


counts={}
for word in words:
    if len(word) == 1:#单个词不计算在内
        continue
    else:
        counts[word]=counts.get(word,0)+1#遍历所有词语,每出现一次其对应值加1

items=list(counts.items())#将键值对转化为列表
items.sort(key=lambda x:x[1],reverse=True)#根据词语出现的次数进行从大到小的排序

for i in range(15):
    word,count=items[i]
    print('{0:<5}{1:<5}'.format(word,count))

jieba.analyse+词性标注+统计出场次数+sklearn计算tfidf值_第3张图片

import jieba
import jieba.posseg as pseg
import os
import sys
from sklearn.feature_extraction.text import TfidfTransformer
from sklearn.feature_extraction.text import CountVectorizer

if __name__=='__main__':
    corpus=["我 来到 北京 ",#第一类文本切词后的结果,词之间以空格隔开  
            "他 来到 了 上海",#第二类文本的切词结果  
            "他  毕业 于 北京大学",#第三类文本的切词结果  
            "我 爱 北京 天安门"]#第四类文本的切词结果
    vectorizer=CountVectorizer()#该类会将文本中的词语转化为词频矩阵,矩阵元素a[i][j]表示j词在i类文本下的词频
    transformer=TfidfTransformer()#该类会统计每个词语的tf-idf权值
    tfidf=transformer.fit_transform(vectorizer.fit_transform(corpus))#第一个fit_transform是计算tfidf,第二个是将文本转化为词频矩阵
    word=vectorizer.get_feature_names()#获取词袋模型中的所有词语
    weight=tfidf.toarray()#将tfidf矩阵抽取出来,元素a[i][j]表示j词在i类文本下的tfodf权重
    for i in range(len(weight)):#打印每类文本的tfidf词语权重,第一个for遍历所有文本,第二个遍历某一类文本下词语的权重
        print('-----这里输出第',i,u'类文本的词语tfidf权重--------')
        for j in range(len(word)):
            print(word[i],weight[i][j])

jieba.analyse+词性标注+统计出场次数+sklearn计算tfidf值_第4张图片

你可能感兴趣的:(自然语言处理,python,自然语言处理)