机器学习必会工具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)]
- print(doc_test_list)
- # 制作语料库
- 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)
可用于机器学习,进行相似度比对,问题库越丰富,机器学习效果越准确
机器学习必会工具gensim的更多相关文章
- mac必装工具以及mac使用介绍
必装工具 Scroll Reverserhttp://pilotmoon.com/scrollreverser/:一款可以使得鼠标使用方式和windows系统一致的软件 编程工具 ,,,,, 常用快捷 ...
- Facets:一款Google开源机器学习数据集可视化工具
Homepage/演示网站:https://pair-code.github.io/facets/ Pypi:https://pypi.org/project/facets-overview/ Git ...
- Orange——开源机器学习交互式数据分析工具
Orange为新手和专家提供开源机器学习和数据可视化.使用大型工具箱交互式数据分析工作流程. 交互式数据可视化 Orange的全部内容都是关于数据可视化,帮助发现隐藏的数据模式,提供数据分析过程背后的 ...
- iOS之17个提升iOS开发效率的必用工具
时间就是金钱.编码效率的提升意味着更多的收入.可是当我们的开发技巧已经到达一定高度时,如何让开发效率更上一层楼呢?答案就是使用开发工具!在这篇文章中,我会向你介绍一些帮助我提升编码速度和工作效率的工具 ...
- 17个提升iOS开发效率的必用工具
时间就是金钱.编码效率的提升意味着更多的收入.可是当我们的开发技巧已经到达一定高度时,如何让开发效率更上一层楼呢?答案就是使用开发工具!在这篇文章中,我会向你介绍一些帮助我们提升编码速度和工作效率的工 ...
- 10个提升iOS开发效率的必用工具
Xcode插件 几乎所有开发者都知道Alcatraz是一个开源的包管理工具,可以让我们更轻松地管理各种插件.接下来就介绍下我的最推荐的10个插件: 10.HOStringSense 在编辑字符串的时候 ...
- 【工利其器】必会工具之(三)systrace篇(1)官网翻译
前言 Android 开发者官网中对systrace(Android System Trace)有专门的介绍,本篇文章作为systrace系列的开头,笔者先不做任何介绍,仅仅翻译一下官网的介绍.在后续 ...
- 【工利其器】必会工具之(三)systrace篇(2)
systrace工具打开路径 以AndroidStudio(后面简写为AS),在顶部菜单栏中 Tools>Android>Android Device Monitor 打开后看到如下界面, ...
- 【工利其器】必会工具之(二)Android开发者官网篇
前言 当刚开始踏入Android程序员这个行业的时候,想必绝大多数的人都和笔者一样,热血沸腾,激情四射,买了很多讲解Android开发的书籍.当开发某个功能需要学习某方面知识的时候,大家又成了“面向百 ...
随机推荐
- mysql 复制表结构和数据
CREATE TABLE 新表名 SELECT 字段 as 新字段,字段 as 新字段.....from 旧表名:
- centos 7 安装更新php5.6
epel remi 什么的把我弄晕了 不深研这东西了,直接按步骤操作更新了. # yum install epel-release # rpm -ivh http://rpms.famillecol ...
- Excel中的clean函数
纯属note. 之前经常用excel处理数据的时候,对长文本或网站上拉取的值都会用clean函数清除一些我们肉眼看不到的非打印字符. Excel官方介绍:clean 删除文本中的所有非打印字符. 此次 ...
- HTML中使用CSS样式(上)
在每一个标签上都可以设置style属性,这就是CSS样式: <div style="height:48px;border: 1px solid red;text-align:cente ...
- 交换机上的MAC地址表
拓扑图: 1.首先在R1上的配置: R1(config)#int R1(config)#interface g R1(config)#interface gigabitEthernet 0/0 R1( ...
- Jenkins+Jmeter+Ant 生成测试报告
<?xml version="1.0" encoding="UTF-8"?> <project name="wms_test&quo ...
- CodeForces - 262B
Roma works in a company that sells TVs. Now he has to prepare a report for the last year. Roma has g ...
- git的下载与安装
Git的下载地址:https://git-scm.com/download/win 第一步:根据自己电脑的位数下载Git 第二步:下载安装包,放到指定的文件夹 第三步:更换路径安装Git(也可以放在C ...
- zabbix 告警信息与恢复信息
名称: Action-Email 默认接收人: 故障{TRIGGER.STATUS},服务器:{HOSTNAME1}发生: {TRIGGER.NAME}故障! 默认信息: 告警主机:{HOSTNAME ...
- uniapp滚动监听元素
鸽了这么久,一晃2个月过去了.自考+上班没时间记录. 前不久看到移动官网上的时间轴效果,看起来不错,我也来试着做一下. 需要元素滚动到视野内加载动画. 插件地址 https://ext.dcloud. ...