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 内置函数小结
Aug 09 Python
python网络编程之读取网站根目录实例
Sep 30 Python
Python中方法链的使用方法
Feb 23 Python
python中urllib.unquote乱码的原因与解决方法
Apr 24 Python
Python实现的选择排序算法原理与用法实例分析
Nov 22 Python
详解python的argpare和click模块小结
Mar 31 Python
Python range、enumerate和zip函数用法详解
Sep 11 Python
Python图片处理模块PIL操作方法(pillow)
Apr 07 Python
Python3基于plotly模块保存图片表格
Aug 03 Python
详解Tensorflow不同版本要求与CUDA及CUDNN版本对应关系
Aug 04 Python
Python如何把字典写入到CSV文件的方法示例
Aug 23 Python
python 三种方法提取pdf中的图片
Feb 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的cURL快速入门教程 (小偷采集程序)
2011/06/02 PHP
PHP中的Iterator迭代对象属性详解
2019/04/12 PHP
php连接sftp的作用以及实例代码
2019/09/23 PHP
浅析Js(Jquery)中,字符串与JSON格式互相转换的示例(直接运行实例)
2013/07/09 Javascript
jQuery插件datalist实现很好看的input下拉列表
2015/07/14 Javascript
jQuery实现折叠、展开的菜单组效果代码
2015/09/16 Javascript
jQuery随手笔记之常用的jQuery操作DOM事件
2015/11/29 Javascript
javascript css红色经典选项卡效果实现代码
2016/05/17 Javascript
全面解析Javascript无限添加QQ好友原理
2016/06/15 Javascript
js 实现数值的千分位及保存小数方法(推荐)
2016/08/01 Javascript
Mvc提交表单的四种方法全程详解
2016/08/10 Javascript
DOM 事件的深入浅出(一)
2016/12/05 Javascript
简单实现node.js图片上传
2016/12/18 Javascript
JQuery 进入页面默认给已赋值的复选框打钩
2017/03/23 jQuery
微信小程序 共用变量值的实现
2017/07/12 Javascript
VueJs单页应用实现微信网页授权及微信分享功能示例
2017/07/26 Javascript
基于Require.js使用方法(总结)
2017/10/26 Javascript
Vue请求JSON Server服务器数据的实现方法
2018/11/02 Javascript
vue.js中使用echarts实现数据动态刷新功能
2019/04/16 Javascript
node.js通过Sequelize 连接MySQL的方法
2020/12/28 Javascript
easy_install python包安装管理工具介绍
2013/02/10 Python
python分析nignx访问日志脚本分享
2015/02/26 Python
Python中实现switch功能实例解析
2018/01/11 Python
mac下如何将python2.7改为python3
2018/07/13 Python
Python实现结构体代码实例
2020/02/10 Python
python实现一次性封装多条sql语句(begin end)
2020/06/06 Python
python中的测试框架
2020/11/13 Python
香港草莓网土耳其网站:Strawberrynet TR
2017/03/02 全球购物
介绍一下grep命令的使用
2012/06/28 面试题
儿科护士实习自我鉴定
2013/10/17 职场文书
彩色的非洲教学反思
2014/02/18 职场文书
初中教师业务学习材料
2014/05/12 职场文书
会计实训报告范文
2014/11/04 职场文书
网络销售员岗位职责
2015/04/11 职场文书
总结会主持词
2015/07/02 职场文书
如何在Python中创建二叉树
2021/03/30 Python