相似度

自然语言处理(NLP) : 大概意思就是 让计算机明白一句话要表达的意思,NLP就相当于计算机在思考你说的话,让计算机知道"你是谁","你叫啥","你叫什么名字"是一个意思.

语义相似度:

pip install jieba

pip install gensim

jieba分词

# 将中文字符串进行分词

import jieba

key_word = "你叫什么名字" # 定义一句话,基于这句话进行分词

cut_word = jieba.cut(key_word) # 使用结巴分词中的cut方法对"你叫什么名字" 进行分词

print(cut_word) # 生成器

cut_word_list = list(cut_word) # 把生成器对象做成列表

print(cut_word_list) # ['你', '叫', '什么', '名字']

gensim 稀疏矩阵相似度

import jieba

import gensim

from gensim import corpora

from gensim import models

from gensim import similarities

l1 = ["你的名字是什么", "你今年几岁了", "你有多高你胸多大", "你胸多大"]

a = "你今年多大了"

all_doc_list = []

for doc in l1:

doc_list = [word for word in jieba.cut(doc)]

all_doc_list.append(doc_list)

print(all_doc_list)

doc_test_list = [word for word in jieba.cut(a)]

# 制作语料库

dictionary = corpora.Dictionary(all_doc_list) # 制作词袋

# 词袋的理解

# 词袋就是将很多很多的词,进行排列形成一个 词(key) 与一个 标志位(value) 的字典

# 例如: {'什么': 0, '你': 1, '名字': 2, '是': 3, '的': 4, '了': 5, '今年': 6, '几岁': 7, '多': 8, '有': 9, '胸多大': 10, '高': 11}

# 至于它是做什么用的,带着问题往下看

print("token2id", dictionary.token2id)

print("dictionary", dictionary, type(dictionary))

corpus = [dictionary.doc2bow(doc) for doc in all_doc_list]

# 语料库:

# 这里是将all_doc_list 中的每一个列表中的词语 与 dictionary 中的Key进行匹配

# 得到一个匹配后的结果,例如['你', '今年', '几岁', '了']

# 就可以得到 [(1, 1), (5, 1), (6, 1), (7, 1)]

# 1代表的的是 你 1代表出现一次, 5代表的是 了 1代表出现了一次, 以此类推 6 = 今年 , 7 = 几岁

print("corpus", corpus, type(corpus))

# 将需要寻找相似度的分词列表 做成 语料库 doc_test_vec

doc_test_vec = dictionary.doc2bow(doc_test_list)

print("doc_test_vec", doc_test_vec, type(doc_test_vec))

# 将corpus语料库(初识语料库) 使用Lsi模型进行训练

lsi = models.LsiModel(corpus)

# 这里的只是需要学习Lsi模型来了解的,这里不做阐述

print("lsi", lsi, type(lsi))

# 语料库corpus的训练结果

print("lsi[corpus]", lsi[corpus])

# 获得语料库doc_test_vec 在 语料库corpus的训练结果 中的 向量表示

print("lsi[doc_test_vec]", lsi[doc_test_vec])

# 文本相似度

# 稀疏矩阵相似度 将 主 语料库corpus的训练结果 作为初始值

index = similarities.SparseMatrixSimilarity(lsi[corpus], num_features=len(dictionary.keys()))

print("index", index, type(index))

# 将 语料库doc_test_vec 在 语料库corpus的训练结果 中的 向量表示 与 语料库corpus的 向量表示 做矩阵相似度计算

sim = index[lsi[doc_test_vec]]

print("sim", sim, type(sim))

# 对下标和相似度结果进行一个排序,拿出相似度最高的结果

# cc = sorted(enumerate(sim), key=lambda item: item[1],reverse=True)

cc = sorted(enumerate(sim), key=lambda item: -item[1])

print(cc)

text = l1[cc[0][0]]

print(a,text)

结巴分词关键词相似度_jieba+gensim 实现相似度相关推荐

  1. 结巴分词关键词相似度_辨别标题党--提取关键词与比较相似度

    最近好几天都没有更新博客,因为网络设置崩了,然后各种扎心,最后还重装电脑,而且还有一些软件需要重新安装或者配置,所以烦了好久,搞好电脑之后,老师又布置了一个任务,个人觉得很有趣--判别学校新闻是否是标 ...

  2. jieba结巴分词--关键词抽取_jieba分词的原理(文末有维特比算法讲解)

    前言 实习期间在做一个专利分析的项目,用到了文本处理的方法,大部分文本分析类的项目应该都离不开分词这个最基础的操作吧,我在做项目之前,在网上找了一些例子,搞清楚分词的代码处理流程,就直接在我的项目里用 ...

  3. jieba结巴分词--关键词抽取_结巴中文分词原理分析2

    作者:白宁超,工学硕士,现工作于四川省计算机研究院,著有<自然语言处理理论与实战>一书,作者公众号:机器学习和自然语言处理(公众号ID:datathinks) 结巴分词详解1中文分词介绍 ...

  4. 结巴分词关键词相似度_中文文本相似度计算工具集

    [磐创AI导读]:前两篇文章中我们介绍了一些机器学习不错的项目合集和深度学习入门资源合集,本篇文章将对中文文本相似度计算工具做一次汇总.喜欢我们文章的小伙伴,欢迎大家点击上方蓝字关注我们的公众号:磐创 ...

  5. 结巴分词关键词相似度_gensim和jieba分词进行主题分析,文本相似度

    #coding=utf-8 importcodecsimportgensimimportjiebafrom gensim importcorpora,models,similaritiesfrom g ...

  6. 结巴分词关键词相似度_结巴分词5--关键词抽取

    作者:zhbzz2007 出处:http://www.cnblogs.com/zhbzz2007 欢迎转载,也请保留这段声明.谢谢! 1 简介 关键词抽取就是从文本里面把跟这篇文档意义最相关的一些词抽 ...

  7. jieba结巴分词--关键词抽取_初学者 | 知否?知否?一文学会Jieba使用方法

    欢迎关注同名微信公众号:AI小白入门.跟着博主的脚步,每天进步一点点哟 我始终觉得,入门学习一件事情最好的方式就是实践,加之现在python如此好用,有越来越多的不错nlp的python库,所以接下来 ...

  8. python关键词提取源码_Python 结巴分词 关键词抽取分析

    关键词抽取就是从文本里面把跟这篇文档意义最相关的一些词抽取出来.这个可以追溯到文献检索初期,当时还不支持全文搜索的时候,关键词就可以作为搜索这篇论文的词语.因此,目前依然可以在论文中看到关键词这一项. ...

  9. jieba结巴分词--关键词抽取(核心词抽取)

    转自:http://www.cnblogs.com/zhbzz2007 欢迎转载,也请保留这段声明.谢谢! 1 简介 关键词抽取就是从文本里面把跟这篇文档意义最相关的一些词抽取出来.这个可以追溯到文献 ...

最新文章

  1. 机器学习中的聚类算法(1):k-means算法
  2. 刚刚,我国智能科学技术最高奖揭晓!
  3. 单例模式-3.透明的单例模式
  4. Node 中的path模块
  5. scp带密码后台传输
  6. coreos 搭建PHP,Linux_用Mac在CoreOS上搭建WordPress的教程,作者以自己的Mac笔记本为例, - phpStudy...
  7. web标准设计工具:代码本地校验软件A Real Validator(附注册码)
  8. ocx控件注册和解除注册
  9. 【智能制造】海阔凭鱼跃:记一场工业场景下的AI技术实践
  10. 【 MATLAB 】mod 函数介绍
  11. 软件工程基于场景建模 习题
  12. 我的学习工作经历,一个园林专业中专毕业生的IT之路 学习编程 创业
  13. 功能强大,颜值在线的个人笔记应用 - Notion
  14. 仙侣情缘之麒麟劫java_《仙侣情缘之麒麟劫》最终支线攻略
  15. Resource file and Source file
  16. 用matlab实现熵权法,熵权法原理及matlab代码实现
  17. WampServer修改MySQL密码
  18. 奇志思达-微网站前端规则建议
  19. 光谷计算机专业好的学校,华一寄、华一初、华一光谷哪所学校更好(综合对比)...
  20. 2021全新工程隧道监控量测系统,持续更新中!

热门文章

  1. 数据挖掘_wget整站下载
  2. BZOJ 1015 题解
  3. 2016年社招面试小结
  4. 2013年上半年项目总结
  5. Tyvj P1029 牛棚回声
  6. java1.8输出语句_[【小白学Java——干货】1.初学Java,认识语法、变量与输出语句...
  7. 怎么抽象mysql数据库_一个用于mysql的数据库抽象层函数库
  8. easyui datagrid 获得共多少条记录_聊城市优化简化获得电力流程做法在全省供电系统推广...
  9. web 前端 如何分享到instagram_面对前端的后端化趋势,2020该如何学习web前端?
  10. Java使用lambda进行分页,SpringBoot(八):整合mybatis,通用mapper,分页插件,lambda,Logger,junit用法...