标签:

利用sklearn计算文本相似性,并将文本之间的相似度矩阵保存到文件当中。这里提取文本TF-IDF特征值进行文本的相似性计算。

#!/usr/bin/python

# -*- coding: utf-8 -*-

import numpy

import os

import sys

from sklearn import feature_extraction

from sklearn.feature_extraction.text import TfidfTransformer

from sklearn.feature_extraction.text import TfidfVectorizer, CountVectorizer

reload(sys)

#sys.setdefaultencoding(‘utf8‘)了 网易 杭研 大厦","小明 硕士 毕业 与 中国 科学院","我 爱 北京 天安门"]

trainfile = open("C:\\Users\\hd\\Desktop\\docs.txt","r") #不同的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("C:\\Users\\hd\\Desktop\\tif.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("C:\\Users\\hd\\Desktop\\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("C:\\Users\\hd\\Desktop\\SimMatrix.csv", SimMatrix, delimiter=",") #保存相似度矩阵

标签:

sklearn 相似度矩阵_利用sklearn计算文本相似性相关推荐

  1. sklearn 相似度矩阵_精简易懂,30 分钟学会 SVD 矩阵分解,很强!

    SVD(Singular Value Decomposition)奇异值分解分解是机器学习中最重要的矩阵分解方法. 它能够将一个任意形状的矩阵分解成一个正交矩阵和一个对角矩阵以及另一个正交矩阵的乘积. ...

  2. 深度学习实战-词嵌入计算文本相似性

    使用词嵌入计算文本相似性 文章目录 使用词嵌入计算文本相似性 简介 词嵌入 预训练词嵌入查看文本相似性 Word2vec的数学特性 可视化词嵌入 词嵌入中发现实体类 类内部语义距离 可视化国家数据 补 ...

  3. python ks值计算_利用Python计算KS的实例详解

    在金融领域中,我们的y值和预测得到的违约概率刚好是两个分布未知的两个分布.好的信用风控模型一般从准确性.稳定性和可解释性来评估模型.sOf免费资源网 一般来说.好人样本的分布同坏人样本的分布应该是有很 ...

  4. python 文本相似度计算函数_四种计算文本相似度的方法对比

    作者:Yves Peirsman 编译:Bing 编者按:本文作者为Yves Peirsman,是NLP领域的专家.在这篇博文中,作者比较了各种计算句子相似度的方法,并了解它们是如何操作的.词嵌入(w ...

  5. 微带线特性阻抗计算公式_利用HFSS计算微带线的特性阻抗

    系别 电子工程系 课程名称 <微波技术与天线>实验 班级 实验名称 利用 HFSS 计算微带线的特性阻抗 姓名 实验时间 学号 指导教师 报 告 内 容 一.实验目的和任务 1 .了解微带 ...

  6. 两个list取交集_利用jieba计算两个句子的相似度

    1.余弦相似度,又称为余弦相似性,是通过计算两个向量的夹角余弦值来评估他们的相似度.余弦相似度将向量根据坐标值,绘制到向量空间中,如最常见的二维空间. # -*- coding: utf-8 -*- ...

  7. sklearn实现lda模型_运用sklearn进行线性判别分析(LDA)代码实现

    基于sklearn的线性判别分析(LDA)代码实现 一.前言及回顾 本文记录使用sklearn库实现有监督的数据降维技术--线性判别分析(LDA).在上一篇LDA线性判别分析原理及python应用(葡 ...

  8. 在python中股票的收盘价如何表示_利用python计算股票涨跌幅

    作为一个python新手,在学习中遇到很多问题,要善于运用各种方法.今天,在学习中,碰到了如何通过收盘价计算股票的涨跌幅. 第一种: 读取数据并建立函数: import numpy as np imp ...

  9. python 句子相似度 库_利用python语句的word2vec查找两个句子之间的相似度

    我想用word2vectors计算两个句子之间的相似度,我试图得到一个句子向量的向量,这样我就可以计算出一个句子向量的平均值来找到余弦相似度.我试过这个代码,但它不起作用.它给出的输出是带有一的句子向 ...

  10. python计算身体质量指数_利用Python计算身体质量指数BMI来判断体型

    身体质量指数BMI:对身体质量的刻画(Body Mass Index) 国际上常用的衡量人体肥胖和健康程度的重要标准,主要用于统计分析. 定义: 有上图考虑BMI的值的结果因国内和国外的标准不同而不同 ...

最新文章

  1. Pytorch学习记录-torchtext和Pytorch的实例( 使用神经网络训练Seq2Seq代码)
  2. 算法---------数组-----------移动零
  3. 五大IT巨头 成立专利联盟
  4. sql能查到数据 dataset对象里面没有值_DataSet
  5. Flink SQL的N way join
  6. MFC的消息映射有什么作用
  7. JBoss模块示例–模块化Web应用程序
  8. (诡异事件)iframe标签后面的alert不执行
  9. JS高级——模块化学习笔记
  10. Traefik-kubernetes 初试
  11. 异数OS 织梦师-水桶(三)-- RAM共享存储方案
  12. c语言用户登录系统管理员,C语言系统用户管理系统
  13. pe下找不到ssd硬盘_WinPE无法识别NVMe SSD硬盘,如何重装系统?
  14. 支付宝小程序会员卡开通
  15. 学霸,顾名思义,就是成绩非常好
  16. mysql where[猿教程]
  17. 加拿大学校申请条件获关注,雅思专家有话说
  18. 以太坊钱包开发-下载、编译 go-ethereum,搭建 eth 私有链
  19. 网吧服务器掉硬盘,一些网吧的无主机系统,是这样实现的!
  20. 985毕业的“搬砖人”,从“挂科废材”到程序员,这样的意外崛起,他到底经历了什么?

热门文章

  1. 精通JavaScript--06设计模式:结构型
  2. Android连接数据库的问题
  3. 16. 页框回收 2010-02-28 22:56 591人阅读 评论(0) 收藏...
  4. undo log、rollback segment
  5. 群星服务器id不显示,群星代码([群星]求助,领袖特性代号怎么查看啊 NGA玩家社区)...
  6. @Valid 和 @Validated的使用
  7. 【转】cron表达式详解
  8. SpringBoot整合Sharding-JDBC实现水平分表
  9. Nginx配置文档详解
  10. 飞行器比赛制作过程中的资料搜集(2018.5~6月)