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去掉字符串中空格的方法
Mar 11 Python
Windows系统配置python脚本开机启动的3种方法分享
Mar 10 Python
python获取mp3文件信息的方法
Jun 15 Python
在Django的模型中添加自定义方法的示例
Jul 21 Python
python中pygame针对游戏窗口的显示方法实例分析(附源码)
Nov 11 Python
python3 面向对象__类的内置属性与方法的实例代码
Nov 09 Python
Python3.5实现的三级菜单功能示例
Mar 25 Python
Python下简易的单例模式详解
Apr 08 Python
详解Python3除法之真除法、截断除法和下取整对比
May 23 Python
使用tqdm显示Python代码执行进度功能
Dec 08 Python
python palywright库基本使用
Jan 21 Python
代码复现python目标检测yolo3详解预测
May 06 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中鲜为人知的10个函数
2014/02/28 PHP
php实现等比例压缩图片
2018/07/26 PHP
js模拟类继承小例子
2010/07/17 Javascript
jQuery动态添加 input type=file的实现代码
2012/06/14 Javascript
使用百度地图api实现根据地址查询经纬度
2014/12/11 Javascript
详解jQuery中的元素的属性和相关操作
2015/08/14 Javascript
延时加载JavaScript代码提高速度
2015/12/27 Javascript
基于javascript实现简单的抽奖系统
2020/04/15 Javascript
js removeChild 方法深入理解
2016/08/16 Javascript
详解AngularJS中的表单验证(推荐)
2016/11/17 Javascript
JS验证不重复验证码
2017/02/10 Javascript
JS数组操作之增删改查的简单实现
2017/08/21 Javascript
详解webpack2+React 实例demo
2017/09/11 Javascript
从Vuex中取出数组赋值给新的数组,新数组push时报错的解决方法
2018/09/18 Javascript
Angular封装搜索框组件操作示例
2019/04/25 Javascript
详解微信小程序开发(项目从零开始)
2019/06/06 Javascript
JS基础之逻辑结构与循环操作示例
2020/01/19 Javascript
koa2 数据api中间件设计模型的实现方法
2020/07/13 Javascript
[40:03]RNG vs VG 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/17 DOTA
跟老齐学Python之从格式化表达式到方法
2014/09/28 Python
Python视频爬虫实现下载头条视频功能示例
2018/05/07 Python
Pandas:DataFrame对象的基础操作方法
2018/06/07 Python
django 实现简单的插入视频
2020/04/07 Python
python图片验证码识别最新模块muggle_ocr的示例代码
2020/07/03 Python
Django实现随机图形验证码的示例
2020/10/15 Python
HTML5 Canvas实现图片缩放、翻转、颜色渐变的代码示例
2016/02/28 HTML / CSS
应届毕业生个人自我评价
2013/09/20 职场文书
护理专业毕业生自我鉴定
2013/10/08 职场文书
毕业生就业推荐信范文
2013/12/01 职场文书
求职信需要的五点内容
2014/02/01 职场文书
教师四风问题对照检查材料
2014/09/26 职场文书
2015年企业新年寄语
2014/12/08 职场文书
2015年高校就业工作总结
2015/05/04 职场文书
教师学习心得体会范文
2016/01/21 职场文书
Java 获取Word中所有的插入和删除修订的方法
2022/04/06 Java/Android
解决Mysql报错 Table 'mysql.user' doesn't exist
2022/05/06 MySQL