Python 文本挖掘:使用gensim进行文本相似度计算
转自:http://rzcoding.blog.163.com/blog/static/2222810172013101895642665/
在文本处理中,比如商品评论挖掘,有时需要了解每个评论分别和商品的描述之间的相似度,以此衡量评论的客观性。
# 读取txt 文档中的每条评论并用itertools 的yield 方法存储起来(比起把所有数据存在数组中,使用itertools 的内存效率高,具体原理请google)class MyCorpus(object): def __iter__(self): for line in open(datapath): yield line.split()from gensim import corpora, models, similarities# 以下是把评论通过gensim 转化为tf-idf 形式,程序具体解释参见52nlp的博客或gensim官方文档 Corp = MyCorpus() dictionary = corpora.Dictionary(Corp) corpus = [dictionary.doc2bow(text) for text in Corp] #把所有评论转化为词包(bag of words)tfidf = models.TfidfModel(corpus) #使用tf-idf 模型得出该评论集的tf-idf 模型corpus_tfidf = tfidf[corpus] #此处已经计算得出所有评论的tf-idf 值
第二步
#读取商品描述的txt 文档q_file = open(querypath, 'r') query = q_file.readline() q_file.close() vec_bow = dictionary.doc2bow(query.split()) #把商品描述转为词包 vec_tfidf = tfidf[vec_bow] #直接使用上面得出的tf-idf 模型即可得出商品描述的tf-idf 值
index = similarities.MatrixSimilarity(corpus_tfidf) #把所有评论做成索引 sims = index[vec_tfidf] #利用索引计算每一条评论和商品描述之间的相似度similarity = list(sims) #把相似度存储成数组,以便写入txt 文档sim_file = open(storepath, 'w') for i in similarity: sim_file.write(str(i)+'\n') #写入txt 时不要忘了编码 sim_file.close()
#! /usr/bin/env python2.7 #coding=utf-8 import logging from gensim import corpora, models, similarities def similarity(datapath, querypath, storepath): logging.basicConfig(format='%(asctime)s : %(levelname)s : %(message)s', level=logging.INFO) class MyCorpus(object): def __iter__(self): for line in open(datapath): yield line.split() Corp = MyCorpus() dictionary = corpora.Dictionary(Corp) corpus = [dictionary.doc2bow(text) for text in Corp] tfidf = models.TfidfModel(corpus) corpus_tfidf = tfidf[corpus] q_file = open(querypath, 'r') query = q_file.readline() q_file.close() vec_bow = dictionary.doc2bow(query.split()) vec_tfidf = tfidf[vec_bow] index = similarities.MatrixSimilarity(corpus_tfidf) sims = index[vec_tfidf] similarity = list(sims) sim_file = open(storepath, 'w') for i in similarity: sim_file.write(str(i)+'\n') sim_file.close()
Python 文本挖掘:使用gensim进行文本相似度计算相关推荐
- 文本相似度计算python lda_如何识别“答非所问”?使用gensim进行文本相似度计算...
在文本处理中,比如商品评论挖掘,有时需要了解每个评论分别和商品的描述之间的相似度,以此衡量评论的客观性. 评论和商品描述的相似度越高,说明评论的用语比较官方,不带太多感情色彩,比较注重描述商品的属性和 ...
- 如何识别“答非所问”?使用gensim进行文本相似度计算
在文本处理中,比如商品评论挖掘,有时需要了解每个评论分别和商品的描述之间的相似度,以此衡量评论的客观性. 评论和商品描述的相似度越高,说明评论的用语比较官方,不带太多感情色彩,比较注重描述商品的属性和 ...
- 文本相似度计算——Simhash算法(python实现)
互联网网页存在着大量重复内容,必须有一套高效的去重算法,否则爬虫将做非常多的无用功,工作时效性无法得到保证,更重要的是用户体验也不好.业界关于文本指纹去重的算法众多,如 k-shingle 算法.go ...
- python余弦定理_余弦定理与文本相似度
什么是余弦定理 学过向量代数的人都知道,向量实际上是多维空间中有方向的线段.如果两个向量的方向一致,即夹角接近零,那么这两个向量就相近.而要确定两个向量方向是否一致,这就要用到余弦定理计算向量的夹角了 ...
- 最准的中文文本相似度计算工具
向AI转型的程序员都关注了这个号???????????? 机器学习AI算法工程 公众号:datayx text2vec, chinese text to vetor.(文本向量化表示工具,包括词向 ...
- sklearn tfidf求余弦相似度_【基础算法 】文本相似度计算
在自然语言处理中,文本相似度是一种老生常谈而又应用广泛的基础算法模块,可用于地址标准化中计算与标准地址库中最相似的地址,也可用于问答系统中计算与用户输入问题最相近的问题及其答案,还可用于搜索中计算与输 ...
- 中文文本相似度计算工具集
欢迎大家关注我们的网站和系列教程:http://www.tensorflownews.com/,学习更多的机器学习.深度学习的知识! 一.基本工具集 1.分词工具 a.jieba 结巴中文分词 htt ...
- 使用BERT做中文文本相似度计算与文本分类
转载请注明出处,原文地址: https://terrifyzhao.github.io/2018/11/29/使用BERT做中文文本相似度计算.html 简介 最近Google推出了NLP大杀器BER ...
- 结巴分词关键词相似度_中文文本相似度计算工具集
[磐创AI导读]:前两篇文章中我们介绍了一些机器学习不错的项目合集和深度学习入门资源合集,本篇文章将对中文文本相似度计算工具做一次汇总.喜欢我们文章的小伙伴,欢迎大家点击上方蓝字关注我们的公众号:磐创 ...
- 词向量 文本相似度计算
一.abstract 为把人们所理解的自然语言让计算机也能够认识并且操作,需要将人的语言(即文字)转换成计算机的语言(即数字) 二 .词的两种表示方法 1.1离散表示(one-hot represe ...
最新文章
- laravel blade模板
- c++协程4 (boost::coroutine)
- wifi 小米pro 驱动 黑苹果_搞定小米黑苹果自带WIF,又可省一个USB接口了
- pythoncookie自动模拟登录_用Python模拟技巧带你实现自动抽屉登录自动点赞
- RTX5 | STM32H743+CubeMX+RTX5+两路FDCAN模板
- c++ python opencv_从C++到Python的OpenCV垫
- python 文件函数_python文件操作及函数学习
- WEB开发中常用的正则表达式
- docker学习系列11 多阶段镜像构建
- 阿里云ECS+Nginx+nginx_rtmp_module+FFMPEG服务器搭建过程
- 声控报警器c语言程序,声控报警器(声控电路)
- PyQt5 -- 安装与发布
- 微信小程序静态页面的实现
- PTA 求链式线性表的倒数第K项 给定一系列正整数,请设计一个尽可能高效的算法,查找倒数第K个位置上的数字。
- 聊聊flink的consecutive windowed operations 1
- C++ 16进制日志输出 每行右侧ASII输出
- Greenplum初始化数据库时出现gpadmin-[ERROR]:-gpstart error: Do not have enough valid segments to start the arr
- 2021年区域赛ICPC沈阳站J-Luggage Lock(代码简洁)
- DDR是什么,干什么用
- AR vs VR:哪种技术更有潜力改变未来?
热门文章
- 用DIB位图显示图像
- laravel-echo-server 不接收失败_6所高校公布报名不合格名单!这些问题最容易出错...
- 300多分学计算机去哪个学校,300分能上什么大学 2021年300分左右的学校
- python闭包有什么作用_闭包在实际开发中有什么用?
- python如何输入n个数字_python如何一次性输入多个数
- 如何成为Emacs高手,像神一样使用编辑器
- 谷歌研发开源协议,助听器有望原生支安卓系统
- 【Java 8实战】Extension Methods
- 【Asp.Net】GridView控件中Datakeys和DataKeyNames的说明
- VS2010 TFS 如何把一个项目添加到源代码管理中及其他管理