Python使用gensim计算文档相似性


Posted in Python onApril 10, 2016

pre_file.py

#-*-coding:utf-8-*-
import MySQLdb
import MySQLdb as mdb
import os,sys,string
import jieba
import codecs
reload(sys)
sys.setdefaultencoding('utf-8')
#连接数据库
try:
  conn=mdb.connect(host='127.0.0.1',user='root',passwd='kongjunli',db='test1',charset='utf8')
except Exception,e:
  print e
  sys.exit()
#获取cursor对象操作数据库
cursor=conn.cursor(mdb.cursors.DictCursor) #cursor游标
#获取内容
sql='SELECT link,content FROM test1.spider;'
cursor.execute(sql)   #execute()方法,将字符串当命令执行
data=cursor.fetchall()#fetchall()接收全部返回结果行
f=codecs.open('C:\Users\kk\Desktop\hello-result1.txt','w','utf-8')
 
for row in data:    #row接收结果行的每行数据
  seg='/'.join(list(jieba.cut(row['content'],cut_all='False')))
  f.write(row['link']+' '+seg+'\r\n')
f.close()
 
cursor.close()
      #提交事务,在插入数据时必须

jiansuo.py

#-*-coding:utf-8-*-
import sys
import string
import MySQLdb
import MySQLdb as mdb
import gensim
from gensim import corpora,models,similarities
from gensim.similarities import MatrixSimilarity
import logging
import codecs
reload(sys)
sys.setdefaultencoding('utf-8')
 
con=mdb.connect(host='127.0.0.1',user='root',passwd='kongjunli',db='test1',charset='utf8')
with con:
  cur=con.cursor()
  cur.execute('SELECT * FROM cutresult_copy')
  rows=cur.fetchall()
  class MyCorpus(object):
    def __iter__(self):
      for row in rows:
        yield str(row[1]).split('/')
#开启日志
logging.basicConfig(format='%(asctime)s:%(levelname)s:%(message)s',level=logging.INFO)
Corp=MyCorpus()
#将网页文档转化为tf-idf
dictionary=corpora.Dictionary(Corp)
corpus=[dictionary.doc2bow(text) for text in Corp] #将文档转化为词袋模型
#print corpus
tfidf=models.TfidfModel(corpus)#使用tf-idf模型得出文档的tf-idf模型
corpus_tfidf=tfidf[corpus]#计算得出tf-idf值
#for doc in corpus_tfidf:
  #print doc
###
'''
q_file=open('C:\Users\kk\Desktop\q.txt','r')
query=q_file.readline()
q_file.close()
vec_bow=dictionary.doc2bow(query.split(' '))#将请求转化为词带模型
vec_tfidf=tfidf[vec_bow]#计算出请求的tf-idf值
#for t in vec_tfidf:
 # print t
'''
###
query=raw_input('Enter your query:')
vec_bow=dictionary.doc2bow(query.split())
vec_tfidf=tfidf[vec_bow]
index=similarities.MatrixSimilarity(corpus_tfidf)
sims=index[vec_tfidf]
similarity=list(sims)
print sorted(similarity,reverse=True)

encodings.xml

<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
 <component name="Encoding">
  <file url="PROJECT" charset="UTF-8" />
 </component>
</project>

misc.xml

<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
 <component name="ProjectLevelVcsManager" settingsEditedManually="false">
  <OptionsSetting value="true" id="Add" />
  <OptionsSetting value="true" id="Remove" />
  <OptionsSetting value="true" id="Checkout" />
  <OptionsSetting value="true" id="Update" />
  <OptionsSetting value="true" id="Status" />
  <OptionsSetting value="true" id="Edit" />
  <ConfirmationsSetting value="0" id="Add" />
  <ConfirmationsSetting value="0" id="Remove" />
 </component>
 <component name="ProjectRootManager" version="2" project-jdk-name="Python 2.7.11 (C:\Python27\python.exe)" project-jdk-type="Python SDK" />
</project>

modules.xml

<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
 <component name="ProjectModuleManager">
  <modules>
   <module fileurl="file://$PROJECT_DIR$/.idea/爬虫练习代码.iml" filepath="$PROJECT_DIR$/.idea/爬虫练习代码.iml" />
  </modules>
 </component>
</project>
Python 相关文章推荐
Python中的defaultdict模块和namedtuple模块的简单入门指南
Apr 01 Python
对于Python异常处理慎用“except:pass”建议
Apr 02 Python
python中文分词教程之前向最大正向匹配算法详解
Nov 02 Python
Python 普通最小二乘法(OLS)进行多项式拟合的方法
Dec 29 Python
Django项目创建到启动详解(最全最详细)
Sep 07 Python
PYTHON绘制雷达图代码实例
Oct 15 Python
Python生成验证码、计算具体日期是一年中的第几天实例代码详解
Oct 16 Python
解决Tensorflow sess.run导致的内存溢出问题
Feb 05 Python
使用Tensorboard工具查看Loss损失率
Feb 15 Python
python语音识别指南终极版(有这一篇足矣)
Sep 09 Python
如何设置PyCharm中的Python代码模版(推荐)
Nov 20 Python
Python实现天气查询软件
Jun 07 Python
Python调用SQLPlus来操作和解析Oracle数据库的方法
Apr 09 #Python
python调用fortran模块
Apr 08 #Python
python3使用urllib模块制作网络爬虫
Apr 08 #Python
Python抓取电影天堂电影信息的代码
Apr 07 #Python
Python Requests安装与简单运用
Apr 07 #Python
Python Requests 基础入门
Apr 07 #Python
Python检测网站链接是否已存在
Apr 07 #Python
You might like
收集的二十一个实用便利的PHP函数代码
2010/04/22 PHP
PHP源码之explode使用说明
2011/08/05 PHP
php目录操作实例代码
2014/02/21 PHP
php遍历、读取文件夹中图片并分页显示图片的方法
2016/11/15 PHP
php 数组元素快速去重
2017/05/05 PHP
Laravel如何使用Redis共享Session
2018/02/23 PHP
capacityFixed 基于jquery的类似于新浪微博新消息提示的定位框
2011/05/24 Javascript
jQuery 源码分析笔记(5) jQuery.support
2011/06/19 Javascript
innerText 使用示例
2014/01/23 Javascript
FF IE浏览器修改标签透明度的方法
2014/01/27 Javascript
教你如何在 Javascript 文件里使用 .Net MVC Razor 语法
2014/07/23 Javascript
DOM 高级编程
2015/05/06 Javascript
JQuery实现动态添加删除评论的方法
2015/05/18 Javascript
jQuery实现可拖拽的许愿墙效果【附demo源码下载】
2016/09/14 Javascript
JavaScript实现的select点菜功能示例
2017/01/16 Javascript
jQuery实现表格冻结顶栏效果
2017/08/20 jQuery
详解Vue2.0 事件派发与接收
2017/09/05 Javascript
解决JavaScript layui 下拉框不显示的问题
2018/08/14 Javascript
vuejs实现折叠面板展开收缩动画效果
2018/09/06 Javascript
video.js 一个页面同时播放多个视频的实例代码
2018/11/27 Javascript
vue+element加入签名效果(移动端可用)
2019/06/17 Javascript
Smartour 让网页导览变得更简单(推荐)
2019/07/19 Javascript
微信小程序接入腾讯云验证码的方法步骤
2020/01/07 Javascript
三剑客:offset、client和scroll还傻傻分不清?
2020/12/04 Javascript
[01:14]英雄,所敬略同——2018完美盛典宣传视频4K
2018/12/05 DOTA
[31:47]夜魇凡尔赛茶话会 第三期01:选手知多少
2021/03/11 DOTA
python通过ElementTree操作XML获取结点读取属性美化XML
2013/12/02 Python
使用python在本地电脑上快速处理数据
2017/06/22 Python
python简易远程控制单线程版
2018/06/20 Python
详解python实现识别手写MNIST数字集的程序
2018/08/03 Python
Python生成器实现简单&quot;生产者消费者&quot;模型代码实例
2020/03/27 Python
关于keras中keras.layers.merge的用法说明
2020/05/23 Python
如何使用python自带IDLE的几种方法
2020/10/10 Python
python实现不同数据库间数据同步功能
2021/02/25 Python
安全责任书怎么写
2014/07/28 职场文书
国企干部对照检查材料
2014/08/22 职场文书