代码拉取完成,页面将自动刷新
同步操作将从 张亚飞/LDA和pagerank和doc2vec等相关模型 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
# -*- coding: utf-8 -*-
"""
@Datetime: 2019/3/28
@Author: Zhang Yafei
"""
# ################################# nltk计算tfidf ####################################333
# import nltk
# from nltk.text import TextCollection
# sents = ['this is sentence one', 'this is sentence two', 'this is sentence three']
# sents = [nltk.word_tokenize(sent) for sent in sents]
# corpus = TextCollection(sents)
#
# # 直接就能算出tfidf
# # (term: ⼀句话中的某个term, text: 这句话)
# print(corpus.idf('three'))
# print(corpus.tf('four',nltk.word_tokenize('this is a sentence four')))
# print(corpus.tf_idf('four',nltk.word_tokenize('this is a sentence four')))
# ################################# sklearn计算tfidf ####################################333
from sklearn.feature_extraction.text import TfidfTransformer
from sklearn.feature_extraction.text import CountVectorizer
corpus = ["我 来到 北京 清华大学", # 第一类文本切词后的结果,词之间以空格隔开
"他 来到 了 网易 杭研 大厦", # 第二类文本的切词结果
"小明 硕士 毕业 与 中国 科学院", # 第三类文本的切词结果
"我 爱 北京 天安门"] # 第四类文本的切词结果
# vectorizer = CountVectorizer() # 该类会将文本中的词语转换为词频矩阵,矩阵元素a[i][j] 表示j词在i类文本下的词频
# transformer = TfidfTransformer() # 该类会统计每个词语的tf-idf权值
# tfidf = transformer.fit_transform(vectorizer.fit_transform(corpus)) # 第一个fit_transform是计算tf-idf,第二个fit_transform是将文本转为词频矩阵
# word = vectorizer.get_feature_names() # 获取词袋模型中的所有词语
# weight = tfidf.toarray() # 将tf-idf矩阵抽取出来,元素a[i][j]表示j词在i类文本中的tf-idf权重
# for i in range(len(weight)): # 打印每类文本的tf-idf词语权重,第一个for遍历所有文本,第二个for便利某一类文本下的词语权重
# print("-------这里输出第", i, "类文本的词语tf-idf权重------")
# for j in range(len(word)):
# print(word[j], weight[i][j])
# print(weight)
# ################################# gensim计算tfidf ####################################333
import warnings
warnings.filterwarnings(action='ignore', category=UserWarning, module='gensim')
from gensim import corpora, models, similarities
texts = [[word for word in text.split()] for text in corpus]
dictionary = corpora.Dictionary(texts)
print(dictionary)
# 9、对语料库进一步处理,得到新语料库
corpus = [dictionary.doc2bow(text) for text in texts]
# 10、将新语料库通过tf-idf model 进行处理,得到tfidf
tfidf = models.TfidfModel(corpus)
# 8、将要对比的文档通过doc2bow转化为稀疏向量
data3 = "基本思路 我 爱 北京 天安门"
new_xs = dictionary.doc2bow(data3.split())
print(new_xs)
featurenum = len(dictionary.token2id.keys())
#12、稀疏矩阵相似度,从而建立索引
index = similarities.SparseMatrixSimilarity(tfidf[corpus], num_features=featurenum)
#13、得到最终相似结果
sim = index[tfidf[new_xs]]
print(sim)
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。