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分析nignx访问日志脚本分享
Feb 26 Python
PHP网页抓取之抓取百度贴吧邮箱数据代码分享
Apr 13 Python
python直接访问私有属性的简单方法
Jul 25 Python
Python实现将罗马数字转换成普通阿拉伯数字的方法
Apr 19 Python
使用python读取csv文件快速插入数据库的实例
Jun 21 Python
python将txt文件读取为字典的示例
Dec 22 Python
对python中Librosa的mfcc步骤详解
Jan 09 Python
详解Python_shutil模块
Mar 15 Python
Python时间序列缺失值的处理方法(日期缺失填充)
Aug 11 Python
python日期与时间戳的各种转换示例
Feb 12 Python
Pycharm pyuic5实现将ui文件转为py文件,让UI界面成功显示
Apr 08 Python
详解Python直接赋值,深拷贝和浅拷贝
Jul 09 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
关于查看MSSQL 数据库 用户每个表 占用的空间大小
2013/06/21 PHP
PHP使用SOAP调用.net的WebService数据
2013/11/12 PHP
phpword插件导出word文件时中文乱码问题处理方案
2014/08/19 PHP
js基于qrcode.js生成二维码的方法【附demo插件源码下载】
2016/12/28 PHP
jquery星级插件、支持页面中多次使用
2012/03/25 Javascript
引用外部脚本时script标签关闭的写法
2014/01/20 Javascript
jQuery实现列表自动滚动循环滚动展示新闻
2014/08/22 Javascript
angularJS 中$attrs方法使用指南
2015/02/09 Javascript
jQuery动态修改超链接地址的方法
2015/02/13 Javascript
JavaScript中的slice()方法使用详解
2015/06/06 Javascript
浅谈jquery中delegate()与live()
2015/06/22 Javascript
jQuery height()、innerHeight()、outerHeight()函数的区别详解
2016/05/23 Javascript
js实现按座位号抽奖
2017/04/05 Javascript
JavaScript实现body内任意节点的自定义属性功能示例
2017/09/18 Javascript
js实现图片区域可点击大小随意改变(适用移动端)代码实例
2019/09/11 Javascript
[02:40]DOTA2超级联赛专访430 从小就爱玩对抗性游戏
2013/06/18 DOTA
[01:14]3.19DOTA2发布会 三代刀塔人第二代
2014/03/25 DOTA
django 自定义用户user模型的三种方法
2014/11/18 Python
python爬虫_实现校园网自动重连脚本的教程
2018/04/22 Python
Python拼接微信好友头像大图的实现方法
2018/08/01 Python
python多进程读图提取特征存npy
2019/05/21 Python
深入了解Python在HDA中的应用
2019/09/05 Python
借助Paramiko通过Python实现linux远程登陆及sftp的操作
2020/03/16 Python
MAC平台基于Python Appium环境搭建过程图解
2020/08/13 Python
HTML5新特性之语义化标签
2017/10/31 HTML / CSS
Perfume’s Club法国站:购买香水和化妆品
2019/05/02 全球购物
高中生物教学反思
2014/02/05 职场文书
外贸员简历中的自我评价
2014/03/04 职场文书
新闻传媒系求职信范文
2014/04/19 职场文书
实习协议书范本
2014/04/22 职场文书
2014年学校团委工作总结
2014/12/20 职场文书
2015年三万活动总结
2015/03/25 职场文书
西游降魔篇观后感
2015/06/15 职场文书
浅谈移动端中的视口(viewport)的具体使用
2021/04/13 HTML / CSS
MySQL库表太大怎么办? 数据库分库分表项目实践
2022/04/11 MySQL
MySQ InnoDB和MyISAM存储引擎介绍
2022/04/26 MySQL