用gensim doc2vec计算文本相似度
来源:互联网 发布:比特彗星tcp端口阻塞 编辑:程序博客网 时间:2024/06/02 00:26
最近开始接触gensim库,之前训练word2vec用Mikolov的c版本程序,看了很久才把程序看明白,在gensim库中,word2vec和doc2vec只需要几个接口就可以实现,实在是方便。python,我越来越爱你了。
这个程序很简单,直接上程序了。
# coding:utf-8import sysimport gensimimport sklearnimport numpy as npfrom gensim.models.doc2vec import Doc2Vec, LabeledSentenceTaggededDocument = gensim.models.doc2vec.TaggedDocumentdef get_datasest(): with open("out/wangyi_title_cut.txt", 'r') as cf: docs = cf.readlines() print len(docs) x_train = [] #y = np.concatenate(np.ones(len(docs))) for i, text in enumerate(docs): word_list = text.split(' ') l = len(word_list) word_list[l-1] = word_list[l-1].strip() document = TaggededDocument(word_list, tags=[i]) x_train.append(document) return x_traindef getVecs(model, corpus, size): vecs = [np.array(model.docvecs[z.tags[0]].reshape(1, size)) for z in corpus] return np.concatenate(vecs)def train(x_train, size=200, epoch_num=1): model_dm = Doc2Vec(x_train,min_count=1, window = 3, size = size, sample=1e-3, negative=5, workers=4) model_dm.train(x_train, total_examples=model_dm.corpus_count, epochs=70) model_dm.save('model/model_dm_wangyi') return model_dmdef test(): model_dm = Doc2Vec.load("model/model_dm_wangyi") test_text = ['《', '舞林', '争霸' '》', '十强' '出炉', '复活', '舞者', '澳门', '踢馆'] inferred_vector_dm = model_dm.infer_vector(test_text) print inferred_vector_dm sims = model_dm.docvecs.most_similar([inferred_vector_dm], topn=10) return simsif __name__ == '__main__': x_train = get_datasest() model_dm = train(x_train) sims = test() for count, sim in sims: sentence = x_train[count] words = '' for word in sentence[0]: words = words + word + ' ' print words, sim, len(sentence[0])
我用了网页的热门娱乐新闻标题作为训练语料,输出结果如下,不知道是迭代次数不够还是怎么的,相似度都很低,不过语料只有4w条,且都是各式各样的八卦,很相似的句子确实少。
MJ 环球 春晚 复活 全场 尖叫 林俊杰 再现 经典 0.320982992649 11 《 舞林 》 神 剪辑 遭热议 导师 面临 最 痛苦 抉择 0.278693914413 13 辛晓琪 《 舞林 》 初试 舞步 令 评委 方俊 不淡定 0.251948922873 12 众星 助阵 舞林 盛典 陈志朋 曝 小虎队 或 计划 巡演 0.249549359083 12 《 舞林 》 首现 同 性别 组合 金星 杨丽萍 冲突 再起 0.247241020203 13 焦恩俊 三 小时 备战 《 舞林 》 深情 绅士 获 金星 高分 0.241078704596 14 《 舞 出 》 撒 贝宁 跳 苦情 舞 复活 陈冲 再现 经典 0.239552676678 15 吸血 女王 惊现 《 舞林 》 何琳 直呼 手脚冰凉 0.238774299622 11 虎年 春晚 看点 揭秘 黄宏 复活 《 整容 》 一次 过关 0.223410069942 13 郭书瑶 《 舞林 》 拼 性感 场上 与 歌迷 遥相呼应 0.218700557947 12
阅读全文
2 0
- 用gensim doc2vec计算文本相似度
- 用gensim.doc2vec 建模、利用相似度做文本分类
- gensim 中文文本相似度计算
- doc2vec计算文档相似度
- Python 文本挖掘:使用gensim进行文本相似度计算
- Python 文本挖掘:使用gensim进行文本相似度计算
- Python 文本挖掘:使用gensim进行文本相似度计算
- Python 文本挖掘:使用gensim进行文本相似度计算
- Python 文本挖掘:使用gensim进行文本相似度计算
- Python 文本挖掘:使用gensim进行文本相似度计算
- python使用gensim进行文本相似度计算
- python使用gensim进行文本相似度计算
- gensim 英文文本相似度
- NLP计算文档相似度之doc2vec
- 使用gensim计算文档的相似度
- gensim similarity计算文档相似度
- 使用Gensim建立bow TFIDF LSI模型对文本相似度计算
- Python 文本挖掘:使用gensim进行文本相似度计算 http://rzcoding.blog.163.com/blog/static/2222810172013101895642665/
- SX1301吞吐量是SX1278的多少倍?
- 开源数据库的现状
- spring boot应用p6spy监控sql
- iTextPdf学习使用记录
- 02-MVP模式
- 用gensim doc2vec计算文本相似度
- 数据结构实验之图论八:欧拉回路
- Android 高仿微信图片选择器
- Mysql InnoDB引擎
- 用MMD做mmd动态模型
- nova对instance做resize操作失败
- Informatica自动备份folder和repository脚本
- 【Unity学习笔记】总结:unity中的中括号:[SerializeField][HideInInspector]等等(更新中)
- hdu 3986