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写入中英文字符串到文件的方法
May 06 Python
Python字符串详细介绍
May 09 Python
python版本的读写锁操作方法
Apr 25 Python
Python遍历文件夹和读写文件的实现代码
Aug 28 Python
Python代码解决RenderView窗口not found问题
Aug 28 Python
Python正则表达式经典入门教程
May 22 Python
Python使用base64模块进行二进制数据编码详解
Jan 11 Python
人生苦短我用python python如何快速入门?
Mar 12 Python
Django 实现购物车功能的示例代码
Oct 08 Python
Python中那些 Pythonic的写法详解
Jul 02 Python
opencv调整图像亮度对比度的示例代码
Sep 27 Python
Python OpenCV超详细讲解读取图像视频和网络摄像头
Apr 02 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/30 PHP
解析mysql中UNIX_TIMESTAMP()函数与php中time()函数的区别
2013/06/24 PHP
YII框架页面缓存操作示例
2019/04/29 PHP
ThinkPHP5.1框架数据库链接和增删改查操作示例
2019/08/03 PHP
关于javascript中的parseInt使用技巧
2009/09/03 Javascript
JavaScript 字符串处理函数使用小结
2010/12/02 Javascript
JQuery一种取同级值的方式(比如你在GridView中)
2012/03/15 Javascript
javascript中文本框中输入法切换的问题
2013/12/10 Javascript
Node.js文件操作详解
2014/08/16 Javascript
Jquery遍历Json数据的方法
2015/04/20 Javascript
jQuery实现自动滚动到页面顶端的方法
2015/05/22 Javascript
微信浏览器内置JavaScript对象WeixinJSBridge使用实例
2015/05/25 Javascript
js实现文本框宽度自适应文本宽度的方法
2015/08/13 Javascript
javascript实现秒表计时器的制作方法
2017/02/16 Javascript
教你5分钟学会用requirejs(必看篇)
2017/07/25 Javascript
NVM安装nodejs的方法实用步骤
2019/01/16 NodeJs
Vue 组件参数校验与非props特性的方法
2019/02/12 Javascript
[01:32]DOTA2上海特锦赛现场采访:最想COS的英雄
2016/03/25 DOTA
在Python中的Django框架中进行字符串翻译
2015/07/27 Python
python技能之数据导出excel的实例代码
2017/08/11 Python
django2用iframe标签完成网页内嵌播放b站视频功能
2018/06/20 Python
python 使用re.search()筛选后 选取部分结果的方法
2018/11/28 Python
PyCharm常用配置和常用插件(小结)
2021/02/06 Python
纯CSS打造(无图像无js)的非常流行的讲话(语音)气泡效果
2012/12/28 HTML / CSS
CSS3实现莲花绽放的动画效果
2020/11/06 HTML / CSS
是否可以从一个static方法内部发出对非static方法的调用?
2014/08/18 面试题
幼儿评语大全
2014/04/30 职场文书
药剂专业毕业生求职信
2014/06/24 职场文书
联谊活动总结
2014/08/28 职场文书
工作经历证明书范文
2014/11/02 职场文书
高校自主招生自荐信2015
2015/03/04 职场文书
博士导师推荐信
2015/03/25 职场文书
房地产公司工程部经理岗位职责
2015/04/09 职场文书
幼儿园教师暑期培训心得体会
2016/01/09 职场文书
MongoDB使用场景总结
2022/02/24 MongoDB
Python Matplotlib绘制动画的代码详解
2022/05/30 Python