python文本相似度分析tf-idf
首先我们了解几个概念名词
1.词频
2.逆文档频率
3.TF-IDF算法
4.语料库(corpus)
5.余弦相似性
大家参考下面文章查阅这三个名词的意义
http://www.ruanyifeng.com/blog/2013/03/tf-idf.html
https://blog.csdn.net/wangxingfan316/article/details/79427260
下面,步入正题,先看代码
import jieba
from gensim import corpora,models,similarities
doc1 = '/Users/23263/Desktop/doc1.txt'
doc2 = '/Users/23263/Desktop/doc2.txt'
doc3 = '/Users/23263/Desktop/doc3.txt'
list1 = jieba.lcut(open(doc1).read())
list2 = jieba.lcut(open(doc2).read())
list3=jieba.lcut(open(doc3).read())
list1_2 = [list1,list2]
#创建词典
dictionary = corpora.Dictionary(list1_2)
#获取语料库
corpus = [dictionary.doc2bow(i) for i in list1_2]
tfidf = models.TfidfModel(corpus)
#特征数
featureNUM = len(dictionary.token2id.keys())
#通过TfIdf对整个语料库进行转换并将其编入索引,以准备相似性查询
index = similarities.SparseMatrixSimilarity(tfidf[corpus],num_features=featureNUM)
#稀疏向量.dictionary.doc2bow(doc)是把文档doc变成一个稀疏向量,[(0, 1), (1, 1)],表明id为0,1的词汇出现了1次,至于其他词汇,没有出现。
new_vec = dictionary.doc2bow(list3)
#计算向量相似度
sim = index[tfidf[new_vec]]
print(sim)
导入jieba和下面三个库
打开三个文件并分别分词,doc1和doc2写入list1_2,doc3写入list3(没有严格要求,这里的示例是三个文档的)
以list1_2创建词典dictionary
获取语料库corpus
创建一个tidif算法框架为tfdif,即初始化一个转换
计算特征数featureNUM(特征数为语料库所有id的个数)
通过TfIdf对整个语料库进行转换并将其编入索引,以准备相似性查询
待比较的稀疏向量new_vec为list3在list1_2中的体现,即在语料库中的体现,可以理解为是一种自然连接或者映射
计算相似度,得到两个值为,list3与list1和list2的相似度
最后大家可以看一下官网文档https://radimrehurek.com/gensim/tutorial.html
python文本相似度分析tf-idf相关推荐
- python文本相似度分析_文本相似度分析(基于jieba和gensim)
##基础概念 本文在进行文本相似度分析过程分为以下几个部分进行, 文本分词 语料库制作 算法训练 结果预测 分析过程主要用两个包来实现jieba,gensim jieba:主要实现分词过程 gensi ...
- python jieba 文本相似度_文本相似度分析(基于jieba和gensim)
##基础概念 本文在进行文本相似度分析过程分为以下几个部分进行, 文本分词 语料库制作 算法训练 结果预测 分析过程主要用两个包来实现jieba,gensim jieba:主要实现分词过程 gensi ...
- [转载] 用Python进行简单的文本相似度分析
参考链接: Python 3中的文本分析 学习目标: 利用gensim包分析文档相似度使用jieba进行中文分词了解TF-IDF模型 环境: Python 3.6.0 |Anaconda 4.3.1 ...
- python进行简单的文本相似度分析
python进行简单的文本相似度分析 本文利用gensim包.jieba包和TF-IDF模型进行简单的文本相似度分析.从而能够让我们确定,哪句话和哪句话相似程度是多少.文本相似度分析是自然语言处理中常 ...
- python 拼音相似度_Python实现简单的文本相似度分析操作详解
本文实例讲述了Python实现简单的文本相似度分析操作.分享给大家供大家参考,具体如下: 学习目标: 1.利用gensim包分析文档相似度 2.使用jieba进行中文分词 3.了解TF-IDF模型 环 ...
- python 文本相似度现状_python文本相似度分析
如何用python计算文本的相似度 同学欢迎来到CSS布局HTML~文本的相似度计算是NLP(自然语言处理)方向的范畴,感兴趣可以找相关的书籍详细学习研究.同学问的这个问题,可以搜索:python文本 ...
- gensim基本使用+文本相似度分析
gensim基本使用 gensim 是一个通过衡量词组(或更高级结构,如整句或文档)模式来挖掘文档语义结构的工具 三大核心概念:文集(语料)–>向量–>模型 文集: 将原始的文档处理后生成 ...
- 【跨语言剽窃检测】文本相似度分析之一
对比文件1: 2010年的跨语言剽窃检测新方法 作者RaFael Corezola Pereira instituion : UFRGS 摘要: 作者提出一个跨语言剽窃检测新方法,分为5个主要阶段: ...
- python 文本相似度_python实现余弦相似度文本比较
向量空间模型VSM: VSM的介绍: 一个文档可以由文档中的一系列关键词组成,而VSM则是用这些关键词的向量组成一篇文档,其中的每个分量代表词项在文档中的相对重要性. VSM的例子: 比如说,一个文档 ...
最新文章
- 什么是embedding?
- java迭代器应用 源码探究
- 面试让你手撕红黑树?30张图带你彻底理解红黑树~
- 浅谈MaxCompute资源规划管理及评估
- 给大家介绍一个好用的数据分析框架
- oracle关联视图查询满_对于复杂的SQL, Oracle是怎么做的?
- SD2.0-课程等待时候的摘抄
- Vue实现点击按钮上下滑动隐藏或展示查询条件
- zb怎么做渲染图_如何在ZBrush中渲染漫画风格的插画
- 运算放大器基本公式_跨阻放大器稳定性
- matplotlib 可视化 —— 定制 matplotlib
- matlab中的小函数
- 计算机实习工作计划与实施步骤,实习工作计划与实施步骤范文
- 火车头采集伪原创插件
- 42表盘直径是从哪测量_手表尺寸怎么测量的?手表尺寸测量方法
- ESP-01S烧录MQTT固件连接阿里云
- JavaScript - 匿名函数具名化
- FFMPEG的像素格式
- Symbian知识汇集
- Java 驼峰命名转下划线命名(能正确处理连续HTTP等大写)