1.读取文档
2.对要计算的多篇文档进行访问
3.将文档整理成指定格式,方便后续进行计算
4.计算出词语的频率
5.对频率低的词语进行过滤
6.通过语料库建立词典
7.加载要对比的文档
8.将要对比的文档通过doc2bow转化为稀疏向量
9.对稀疏向量进行进一步处理,得到新语料库
10.将新语料库通过tfidfmodel进行处理,得到tfidf
11.通过token2id得到特征数
12.稀疏矩阵相似度,建立索引
13.得到最终相似度结果


from gensim import corpora, models, similarities
import jieba
from collections import defaultdict
dog = "C:/Users/xt/PycharmProjects/similar/dog.txt"  # 1.读取文档
cat = "C:/Users/xt/PycharmProjects/similar/cat.txt"
d1 = open(dog).read()  # 2.对要计算的多篇文档进行访问
c1 = open(cat).read()
data1 = jieba.cut(d1)  # 3.将文档整理成指定格式,方便后续进行计算
data2 = jieba.cut(c1)
data11 = ''
for item in data1:data11 += item + ' '
data21 = ''
for item in data2:data21 += item + ' '
doc = [data11, data21]
print('doc:')
print(doc)
texts = [[word for word in do.split()] for do in doc]
print('texts:')
print(texts)
freq = defaultdict(int)  # 4.计算出词语的频率
for text in texts:for token in text:freq[token] += 1
print('freq:')
print(freq)
texts = [[token for token in text if freq[token] > 1] for text in texts]  # 5.对频率低的词语进行过滤
print('texts:')
print(texts)
diction = corpora.Dictionary(texts)  # 6.通过语料库建立词典
print('diction:')
print(diction)
diction.save('C:/Users/xt/PycharmProjects/similar/dict.dict')
doc3 = "C:/Users/xt/PycharmProjects/similar/animal.txt"  # 7.加载要对比的文档
d3 = open(doc3).read()
data3 = jieba.cut(d3)
data31 = ""
for item in data3:data31 += item+' '
new_doc = data31
print('new_doc:')
print(new_doc)
new_vec = diction.doc2bow(new_doc.split())  # 8.将要对比的文档通过doc2bow转化为稀疏向量
print('new_vec:')
print(new_vec)
corpus = [diction.doc2bow(text) for text in texts]  # 9.对稀疏向量进行进一步处理,得到新语料库
print('corpus:')
print(corpus)
tf_idf = models.TfidfModel(corpus)  # 10.将新语料库通过tfidfmodel进行处理,得到tfidf
featureNum = len(diction.token2id.keys())  # 11.通过token2id得到特征数
index = similarities.SparseMatrixSimilarity(tf_idf[corpus], num_features=featureNum)  # 12.稀疏矩阵相似度,建立索引
print('index:')
print(index)
sim = index[tf_idf[new_vec]]  # 13.得到最终相似度结果
print('sim:')
print(sim)

python文本相似度算法详解相关推荐

  1. python直线拟合_RANSAC算法详解(附Python拟合直线模型代码)

    之前只是简单了解RANSAC模型,知道它是干什么的.然后今天有个课程设计的报告,上去讲了一下RANSAC,感觉这个东西也没那么复杂,所以今天就总结一些RASAC并用Python实现一下直线拟合. RA ...

  2. python 字符串相似度判断详解

    1. 背景介绍 最近项目中要用到两个字符串相似度的求解算法,来矫正ocr文本识别的结果,进而提高识别的准确率,通过矫正(相当于模糊查询),识别准确率从65%上升到90%.其结果还是令人兴奋的,因此写博 ...

  3. 关于《流浪地球》炸裂的口碑,机器学习竟然是这样评价的————Python文本情感极性分析详解(上)

    NLP(神经语言程序学/自然语言学习)是当前机器学习领域一个重要的分支,就是用机器学习模型来理解处理人类的自然语言,并给出符合自然语言逻辑的反馈. 自然语言学习中具体的工作包括,教会程序用算法来正确地 ...

  4. 关于《流浪地球》炸裂的口碑,机器学习竟然是这样评价的————Python文本情感极性分析详解(下)

    二.基于机器学习的文本情感极性分析 基于词向量Word2Vec建立机器学习模型 1.模型数学抽象 本文构建模型的目的是进行文本(影评)情感色彩识别,属于分类问题. NLP处理涉及分词(中文分词器:ji ...

  5. 自动驾驶算法详解(5): 贝塞尔曲线进行路径规划的python实现

    一.理论知识 1.路径规划定义 路径规划智能物流.无人驾驶等智能领域中重要的组成部分.路径规划的目标是实现从目的地到终点之间寻找一条安全(无碰撞).高效(最短距离或 最短时间)的一条最优或接近最优的路 ...

  6. 自动驾驶算法详解(3): LQR算法进行轨迹跟踪,lqr_speed_steering_control( )的python实现

    前言: LQR算法在自动驾驶应用中,一般用在NOP.TJA.LCC这些算法的横向控制中,一般与曲率的前馈控制一起使用,来实现轨迹跟踪的目标,通过控制方向盘转角来实现横向控制. 本文将使用python来 ...

  7. Simhash算法详解及python实现

    Simhash算法详解及python实现 GoogleMoses Charikar发表的一篇论文"detecting near-duplicates for web crawling&quo ...

  8. python公众号留言功能详情_Python实现的微信公众号群发图片与文本消息功能实例详解...

    本文实例讲述了Python实现的微信公众号群发图片与文本消息功能.分享给大家供大家参考,具体如下: 在微信公众号开发中,使用api都要附加access_token内容.因此,首先需要获取access_ ...

  9. kmeans算法详解和python代码实现

    kmeans算法详解和python代码实现 kmeans算法 无监督学习和监督学习 监督学习: 是通过已知类别的样本分类器的参数,来达到所要求性能的过程 简单来说,就是让计算机去学习我们已经创建好了的 ...

最新文章

  1. 编写矩形类 计算矩形面积
  2. CUDA error: an illegal memory access was encountered
  3. 人工智能必看的 45 篇论文(附下载地址)
  4. x265-创建encdata
  5. ural1147 Shaping Regions
  6. Spring boot的简单用法
  7. php批量新增数据类型,Yii框架批量插入数据扩展类的简单实现方法
  8. 对话框式activity
  9. 翻山越岭上uvaoj
  10. TFTP 简单文件传输协议 简介
  11. HU6285A升压输出12V,电流1A芯片
  12. 流媒体播放器EasyPlayer.js如何实现动态设置解码H.265音频?
  13. 恍恍惚惚,哈哈,35. Search Insert Position
  14. linux桌面lxde 安装_archlinux下lxde安装与配置教程
  15. Elasticsearch报错received plaintext traffic on an encrypted channel, closing connection Netty4TcpChann
  16. 清华大学计算机相关夏令营,夏令营报名
  17. 貂蝉待你玩转Java王者荣耀
  18. 太阳能电池板自动清洗机器人的制作分享
  19. Go:【学习笔记】Go 语言结构
  20. cURL – PUT请求示例

热门文章

  1. vue props对象validator自定义函数
  2. 使用webdriver+urllib爬取网页数据(模拟登陆,过验证码)
  3. 如果我当上技术经理如何展开工作
  4. RGB彩色图像灰度化经验公式
  5. 超级辣鸡的编程学习之旅 之 第一篇~~
  6. OC基础——Protocal(协议)
  7. Mesos已死,容器永生
  8. 2022年4月14日【Jiawei_Z】瑞萨的开发环境的使用01
  9. 20145237《网络对抗》 信息收集和漏洞扫描技术
  10. python基于pingouin包进行统计分析:使用ancova函数执行协方差分析、covar参数设置单个协方差变量、以dataframe的形式输出分析结果(包含SS、自由度、F值、p值、np2等)