NLP计算文档相似度之TF-IDF
2017-05-17 10:01
459 查看
#!/usr/bin/python # -*- coding: utf-8 -*- import numpy import os from sklearn import feature_extraction from sklearn.feature_extraction.text import TfidfTransformer from sklearn.feature_extraction.text import TfidfVectorizer, CountVectorizer #sys.setdefaultencoding('utf8')了 网易 杭研 大厦","小明 硕士 毕业 与 中国 科学院","我 爱 北京 天安门"] trainfile = open(u'D:\python_noweightpathway\TIA\TIAxmmc.txt','r',encoding= 'utf8') #不同的documents用换行符隔开 traincorpus = trainfile.readlines() #corpus=["我 来到 北京 清华大学","我 他 来到 trainfile.close() corpus = traincorpus; vectorizer=CountVectorizer()#该类会将文本中的词语转换为词频矩阵,矩阵元素a[i][j] 表示j词在i类文本下的词频 tfidf_vectorizer = TfidfVectorizer(max_df=0.95, min_df=2, #max_features=n_features, stop_words='english') transformer=TfidfTransformer()#该类会统计每个词语的tf-idf权值 tfidf=transformer.fit_transform(tfidf_vectorizer.fit_transform(corpus))#第一个fit_transform是计算tf-idf,第二个fit_transform是将文本转为词频矩阵 word=tfidf_vectorizer.get_feature_names()#获取词袋模型中的所有词语 weight=tfidf.toarray()#将tf-idf矩阵抽取出来,元素a[i][j]表示j词在i类文本中的tf-idf权重 f = open("D:\python_noweightpathway\TIA\TIAsmilarity.txt","w+") for i in range(len(weight)):#打印每类文本的tf-idf词语权重,第一个for遍历所有文本,第二个for便利某一类文本下的词语权重 # print u"-------这里输出第",i,u"类文本的词语tf-idf权重------" f.write(str(i+1)+"\t") for j in range(len(word)): if(weight[i][j]>0): f.write(str(j+1) + ":" + str(weight[i][j]) + " ") f.write("\n") print (i) f.close() # f = open("D:\python_noweightpathway\TIA\dictionary.txt","w+") # for i in range(len(word)): # f.write(str(i) + "\t" + word[i].encode("utf-8") + "\n") # f.close() SimMatrix = (tfidf * tfidf.T).A print (SimMatrix[1,3]) #"第一篇与第4篇的相似度" numpy.savetxt("D:\python_noweightpathway\TIA\SimMatrix.csv", SimMatrix, delimiter=",") #保存相似度矩阵
相关文章推荐
- spark mllib 中的tf-idf算法计算文档相似度
- TF-IDF提取关键词并用余弦算法计算相似度
- 文档的词频-反向文档频率(TF-IDF)计算
- 文件文档文档的词频-反向文档频率(TF-IDF)计算
- 利用JAVA计算TFIDF和Cosine相似度-学习版本
- 分享自用小工具:TF-IDF计算文档相似性的python实现
- [NLP]使用LDA模型计算文档相似度
- 文档的词频-反向文档频率(TF-IDF)计算
- [转]搜索引擎的文档相关性计算和检索模型(BM25/TF-IDF)
- TF-IDF在关键词自动提取、计算文本相似度和摘要自动生成上的应用
- 词语相似度计算:4、提取文本tf、tfidf特征
- 文档的词频-反向文档频率(TF-IDF)计算
- 文档的词频-反向文档频率(TF-IDF)计算
- 转:Lucene之计算相似度模型VSM(Vector Space Model) : tf-idf与交叉熵关系,cos余弦相似度
- 计算两篇文档的余弦相似度(tfidf)
- NLP计算文档相似度之doc2vec
- 文档的词频-反向文档频率(TF-IDF)计算
- python 分词计算文档TF-IDF值并排序
- [python] LDA处理文档主题分布及分词、词频、tfidf计算
- [python] LDA处理文档主题分布及分词、词频、tfidf计算