# -*- coding: UTF-8 -*-
from gensim import corpora, similarities, models
import jiebaquestion='马致远是元代领袖群英的散曲作家'
# 训练样本
raw_documents = ['0内容提要  马致远是元代领袖群英的散曲作家。他的散曲飘逸、奔放、老辣、清隽,被后世推为散曲第一家。他拓展了散曲的题材范围,提','高了散曲的意境,在散曲史上享有很高的地位。他的散曲思想内容丰富,元散曲咏史、叹世、归隐、写景、闺情、叙事诸题材他都涉及,并各具','成就。他制曲艺术精湛,风格典雅清丽,本色自然。他的散曲意境高妙,充满画意,语言清丽本色,人物栩栩如生,他长于心理刻划,善于运用','各种修辞手法,达到很高的艺术境界,将元散曲推向高潮。']
corpora_documents = []
# 分词处理
for item_text in raw_documents:item_seg = list(jieba.cut(item_text))corpora_documents.append(item_seg)# 生成字典和向量语料
dictionary = corpora.Dictionary(corpora_documents)
# print(dictionary)
# dictionary.save('dict.txt') #保存生成的词典
# dictionary=Dictionary.load('dict.txt')#加载# 通过下面一句得到语料中每一篇文档对应的稀疏向量(这里是bow向量)
corpus = [dictionary.doc2bow(text) for text in corpora_documents]
# 向量的每一个元素代表了一个word在这篇文档中出现的次数
# print(corpus)
# corpora.MmCorpus.serialize('corpuse.mm',corpus)#保存生成的语料
# corpus=corpora.MmCorpus('corpuse.mm')#加载# corpus是一个返回bow向量的迭代器。下面代码将完成对corpus中出现的每一个特征的IDF值的统计工作
tfidf_model = models.TfidfModel(corpus)
corpus_tfidf = tfidf_model[corpus]'''''
#查看model中的内容
for item in corpus_tfidf: print(item)
# tfidf.save("data.tfidf")
# tfidf = models.TfidfModel.load("data.tfidf")
# print(tfidf_model.dfs)
'''
print("-------------------下面是tfidf模型(第1个提问)----------------------------------------------------")similarity = similarities.Similarity('Similarity-tfidf-index', corpus_tfidf, num_features=600)
test_data_1 = question
test_cut_raw_1 = list(jieba.cut(test_data_1))  # ['北京', '雾', '霾', '红色', '预警']
test_corpus_1 = dictionary.doc2bow(test_cut_raw_1)  # [(51, 1), (59, 1)],即在字典的56和60的地方出现重复的字段,这个值可能会变化
similarity.num_best = 5
test_corpus_tfidf_1 = tfidf_model[test_corpus_1]  # 根据之前训练生成的model,生成query的IFIDF值,然后进行相似度计算
# [(51, 0.7071067811865475), (59, 0.7071067811865475)]
print(similarity[test_corpus_tfidf_1])  # 返回最相似的样本材料,(index_of_document, similarity) tuplesprint("-------------------下面是tfidf模型(第2个提问)----------------------------------------------------")
test_data_2 = question
test_cut_raw_2 = list(jieba.cut(test_data_2))
test_corpus_2 = dictionary.doc2bow(test_cut_raw_2)
test_corpus_tfidf_2 = tfidf_model[test_corpus_2]
similarity.num_best = 3
print(similarity[test_corpus_tfidf_2])  # 返回最相似的样本材料,(index_of_document, similarity) tuples
print("-------------------下面是LSI模型-----------------------------------")
# 使用LSI模型进行相似度计算
lsi = models.LsiModel(corpus_tfidf)
corpus_lsi = lsi[corpus_tfidf]
similarity_lsi = similarities.Similarity('Similarity-LSI-index', corpus_lsi, num_features=400, num_best=2)
# save
# LsiModel.load(fname, mmap='r')#加载
test_data_3 = question
test_cut_raw_3 = list(jieba.cut(test_data_3))  # 1.分词
test_corpus_3 = dictionary.doc2bow(test_cut_raw_3)  # 2.转换成bow向量
test_corpus_tfidf_3 = tfidf_model[test_corpus_3]  # 3.计算tfidf值
test_corpus_lsi_3 = lsi[test_corpus_tfidf_3]  # 4.计算lsi值
# lsi.add_documents(test_corpus_lsi_3) #更新LSI的值
print(similarity_lsi[test_corpus_lsi_3])

gensim中文处理相关推荐

  1. gensim 中文语料训练 word2vec

    gensim 的word2vec api参见: https://radimrehurek.com/gensim/models/word2vec.html 本文说一下中文语料的使用,很简单. 1 wor ...

  2. 【gensim中文教程】开始使用gensim

    原文链接 介绍了基本概念,以及理解和使用gensim的基本元素,并提供了一个简单的例子. 核心概念和简单例子 从宏观来看,gensim提供了一个发现文档语义结构的工具,通过检查词出现的频率.gensi ...

  3. 维基百科文件解析成中文遇到的变量类型、编码问题

    2019独角兽企业重金招聘Python工程师标准>>> 为了练习Gensim中文词向量建模,要用到wiki文件做语料库.因为这个文件是xml格式的,需要把它转成文本格式,所以有了下面 ...

  4. python文本相似度检测框架_机器学习入门之使用gensim 的 doc2vec 实现文本相似度检测...

    本文主要向大家介绍了机器学习入门之使用gensim 的 doc2vec 实现文本相似度检测,通过具体的内容向大家展现,希望对大家学习机器学习入门有所帮助.环境 Python3, gensim,jieb ...

  5. 风靡全球的人工智能,如何赶上这班车?

    目前,机器学习的使用日渐成为趋势. 作为人工智能的核心,机器学习是一门多领域的交叉学科,专门研究计算机模拟或实现人类学习行为的方法,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能. ...

  6. 人工智能路上,怎么能少了它!

    目前,人工智能的应用日渐广泛. 而作为人工智能核心的机器学习,是一门多领域的交叉学科,专门研究计算机模拟或实现人类学习行为的方法,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能. ...

  7. 如何解开机器学习的面纱?

    目前,人工智能的应用日渐广泛. 而作为人工智能核心的机器学习,是一门多领域的交叉学科,专门研究计算机模拟或实现人类学习行为的方法,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能. ...

  8. 如何撬动机器学习的冰山一角?

    目前,人工智能的应用日渐广泛. 而作为人工智能核心的机器学习,是一门多领域的交叉学科,专门研究计算机模拟或实现人类学习行为的方法,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能. ...

  9. 泰迪杯比赛总结--关于NLP的资源

    1.     NLP一些课程,主要是深度学习方面的 http://nlp.stanford.edu/ 斯坦福大学nlp上面有很多资源 CS224d: Deep Learning for Natural ...

最新文章

  1. Linux UserSpace Back-Door、Rootkit SSH/PAM Backdoor Attack And Defensive Tchnology
  2. JSP笔记-点击量统计
  3. linux磁盘管理相关命令,Linux | 磁盘管理命令
  4. freemarker 学习笔记
  5. 使用xshell远程连接Linux
  6. springboot-Initializer例子及分析
  7. CALayers详解
  8. Go 官方未来会不会支持循环引用?
  9. 1602: [Usaco2008 Oct]牧场行走
  10. 2018.8.29牛客OI测试赛A-斐波那契题解(找规律)
  11. 【3】基于深度神经网络的脑电睡眠分期方法研究(数据集分类)
  12. Java编程入门:使用Eclipse快捷键
  13. ARM ADS中的AXD 调试经验集锦
  14. 工作笔记-Hazelcast安装和基本配置
  15. Windows 设置文件默认打开方式
  16. UE4-如何做一个简单的TPS角色(一)-创建一个基础角色
  17. websocket传输速率_STM32 websocket,TCP和UDP的传输速率
  18. 实用的CAD技巧,你也可以成为大神!
  19. 线程有哪些状态?创建、就绪、运行、阻塞和死亡
  20. lol哪个服务器有无限乱斗,英雄联盟无限乱斗和无限火力有什么区别 2021无限乱斗开放时间表[多图]...

热门文章

  1. Wireshark数据分析IP
  2. mybatis.mapper-locations 配置多个mapper路径
  3. Vue.JS项目输入框中使用v-model导致number类型值自动转换成string问题的解决方案
  4. 人工机器:jetbot小车密码
  5. SLAM:ORB-SLAM 位姿优化描述
  6. DNN结构演进History—CNN( 优化,LeNet, AlexNet )
  7. 可以忽略的:BASH:/:这是一个目录
  8. Netflix:我们为什么要将GraphQL引入前端架构?\n
  9. Lesson 1:单线程 Socket Communications(一)
  10. 开发asp.net2.0手机用网站 点滴[xgluxv]