当前位置 : 主页 > 编程语言 > python >

tfidf python 中文 实例

来源:互联网 收集:自由互联 发布时间:2022-07-20
from sklearn.feature_extraction.text import TfidfTransformer from sklearn.feature_extraction.text import CountVectorizer if __name__ == "__main__": corpus = ["我 来到 北京 清华大学", # 第一个文本切词后的结果,词之间以


from sklearn.feature_extraction.text import TfidfTransformer
from sklearn.feature_extraction.text import CountVectorizer

if __name__ == "__main__":
corpus = ["我 来到 北京 清华大学", # 第一个文本切词后的结果,词之间以空格隔开
"他 来到 了 网易 杭研 大厦", # 第二个文本的切词结果
"小明 硕士 毕业 与 中国 科学院", # 第三个文本的切词结果
"我 爱 北京 天安门"] # 第四个文本的切词结果
def cut(sentence):
return sentence.split(" ")
vectorizer = CountVectorizer(analyzer="word", tokenizer=cut) # 将文本中的词语转换为词频矩阵,矩阵元素a[i][j] 表示j词在i个文本下的词频
transformer = TfidfTransformer() # 统计每个词语的tf-idf权值
X = vectorizer.fit_transform(corpus)
tfidf = transformer.fit_transform(X) # 第一个fit_transform是计算tf-idf,第二个fit_transform是将文本转为词频矩阵
word = vectorizer.get_feature_names() # 获取词袋模型中的所有词语
print(word)
print(X.toarray())
weight = tfidf.toarray() # 将tf-idf矩阵抽取出来,元素a[i][j]表示j词在i个文本中的tf-idf权重
for i in range(len(weight)): # 打印每个文本的tf-idf词语权重,第一个for遍历所有文本,第二个for便利某一个文本下的词语权重
print("-------这里输出第", i, u"个文本的词语tf-idf权重------")
for j in range(len(word)):
print(word[j], weight[i][j])

[‘与’, ‘中国’, ‘了’, ‘他’, ‘北京’, ‘大厦’, ‘天安门’, ‘小明’, ‘我’, ‘来到’, ‘杭研’, ‘毕业’, ‘清华大学’, ‘爱’, ‘硕士’, ‘科学院’, ‘网易’]
[[0 0 0 0 1 0 0 0 1 1 0 0 1 0 0 0 0]
[0 0 1 1 0 1 0 0 0 1 1 0 0 0 0 0 1]
[1 1 0 0 0 0 0 1 0 0 0 1 0 0 1 1 0]
[0 0 0 0 1 0 1 0 1 0 0 0 0 1 0 0 0]]
-------这里输出第 0 个文本的词语tf-idf权重------
与 0.0
中国 0.0
了 0.0
他 0.0
北京 0.4658085493691629
大厦 0.0
天安门 0.0
小明 0.0
我 0.4658085493691629
来到 0.4658085493691629
杭研 0.0
毕业 0.0
清华大学 0.5908190806023349
爱 0.0
硕士 0.0
科学院 0.0
网易 0.0
-------这里输出第 1 个文本的词语tf-idf权重------
与 0.0
中国 0.0
了 0.4217647821447532
他 0.4217647821447532
北京 0.0
大厦 0.4217647821447532
天安门 0.0
小明 0.0
我 0.0
来到 0.3325241986862672
杭研 0.4217647821447532
毕业 0.0
清华大学 0.0
爱 0.0
硕士 0.0
科学院 0.0
网易 0.4217647821447532
-------这里输出第 2 个文本的词语tf-idf权重------
与 0.408248290463863
中国 0.408248290463863
了 0.0
他 0.0
北京 0.0
大厦 0.0
天安门 0.0
小明 0.408248290463863
我 0.0
来到 0.0
杭研 0.0
毕业 0.408248290463863
清华大学 0.0
爱 0.0
硕士 0.408248290463863
科学院 0.408248290463863
网易 0.0
-------这里输出第 3 个文本的词语tf-idf权重------
与 0.0
中国 0.0
了 0.0
他 0.0
北京 0.43779123108611473
大厦 0.0
天安门 0.5552826649411127
小明 0.0
我 0.43779123108611473
来到 0.0
杭研 0.0
毕业 0.0
清华大学 0.0
爱 0.5552826649411127
硕士 0.0
科学院 0.0
网易 0.0


上一篇:python 不保留float最后的0
下一篇:没有了
网友评论