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之用Python计算
Sep 12 Python
ubuntu环境下python虚拟环境的安装过程
Jan 07 Python
Python 中Pickle库的使用详解
Feb 24 Python
Python基于SMTP协议实现发送邮件功能详解
Aug 14 Python
python利用多种方式来统计词频(单词个数)
May 27 Python
Python 3 实现定义跨模块的全局变量和使用教程
Jul 07 Python
树莓派极简安装OpenCv的方法步骤
Oct 10 Python
基于python3抓取pinpoint应用信息入库
Jan 08 Python
Python集合操作方法详解
Feb 09 Python
python轮询机制控制led实例
May 03 Python
django 模型中的计算字段实例
May 19 Python
Pycharm插件(Grep Console)自定义规则输出颜色日志的方法
May 27 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
后宫无数却洁身自好的男主,唐三只爱小舞
2020/03/02 国漫
PHP中防止SQL注入攻击和XSS攻击的两个简单方法
2010/04/15 PHP
PHP常用的排序和查找算法
2015/08/06 PHP
node在两个div之间移动,用ztree实现
2013/03/06 Javascript
jQuery点击自身以外地方关闭弹出层的简单实例
2013/12/24 Javascript
JS对象转换为Jquery对象示例
2014/01/26 Javascript
javascript中JSON对象与JSON字符串相互转换实例
2015/07/11 Javascript
jQuery的bind()方法使用详解
2015/07/15 Javascript
Node.js与Sails ~项目结构与Mvc实现及日志机制
2015/10/14 Javascript
如何使用Bootstrap的modal组件自定义alert,confirm和modal对话框
2016/03/01 Javascript
JS简单编号生成器实现方法(附demo源码下载)
2016/04/05 Javascript
jQuery的ajax下载blob文件
2016/07/21 Javascript
js正则表达式最长匹配(贪婪匹配)和最短匹配(懒惰匹配)用法分析
2016/12/27 Javascript
AngularJS 限定$scope的范围实例详解
2017/06/23 Javascript
js实现简单数字变动效果
2017/11/06 Javascript
微信小程序开发之点击按钮退出小程序的实现方法
2019/04/26 Javascript
原生JS实现萤火虫效果
2020/03/07 Javascript
解决VUE mounted 钩子函数执行时 img 未加载导致页面布局的问题
2020/07/27 Javascript
js利用iframe实现选项卡效果
2020/08/09 Javascript
[03:51]吞吞映像 每周精彩击杀top10第二弹
2014/06/25 DOTA
Pythont特殊语法filter,map,reduce,apply使用方法
2016/02/27 Python
Python针对给定字符串求解所有子序列是否为回文序列的方法
2018/04/21 Python
在Python中使用gRPC的方法示例
2018/08/08 Python
解决Pycharm出现的部分快捷键无效问题
2018/10/22 Python
python实现大学人员管理系统
2019/10/25 Python
wxPython多个窗口的基本结构
2019/11/19 Python
英国女装网上商店:I Saw It First
2018/10/18 全球购物
super关键字的用法
2012/04/10 面试题
TCP协议通讯的过程和步骤是什么
2015/10/18 面试题
物理教师自荐信范文
2013/12/28 职场文书
优秀企业获奖感言
2014/02/01 职场文书
财务部绩效考核方案
2014/05/04 职场文书
安全生产大检查方案
2014/05/07 职场文书
2015年度电厂个人工作总结
2015/05/13 职场文书
Java 轮询锁使用时遇到问题
2022/05/11 Java/Android
使用Apache Camel表达REST服务的方法
2022/06/10 Servers