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中的迭代器漫谈
Feb 03 Python
进一步了解Python中的XML 工具
Apr 13 Python
Python pymongo模块用法示例
Mar 31 Python
Scrapy框架使用的基本知识
Oct 21 Python
python利用插值法对折线进行平滑曲线处理
Dec 25 Python
Python计算时间间隔(精确到微妙)的代码实例
Feb 26 Python
python单例模式的多种实现方法
Jul 26 Python
解决Pytorch 训练与测试时爆显存(out of memory)的问题
Aug 20 Python
PyQT5 emit 和 connect的用法详解
Dec 13 Python
python如何处理程序无法打开
Jun 16 Python
Python3爬虫里关于识别微博宫格验证码的知识点详解
Jul 30 Python
python中子类与父类的关系基础知识点
Feb 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中=赋值操作符对不同数据类型的不同行为
2011/01/02 PHP
PHP使用适合阅读的格式显示文件大小的方法
2015/03/05 PHP
PHP实现动态web服务器方法
2015/07/29 PHP
PHP+Mysql+jQuery实现发布微博程序 php篇
2015/10/15 PHP
使用WordPress发送电子邮件的相关PHP函数用法解析
2015/12/15 PHP
php技巧小结【推荐】
2017/01/19 PHP
php中get_magic_quotes_gpc()函数说明
2017/02/06 PHP
PHP中模糊查询并关联三个select框
2017/06/19 PHP
php数据库的增删改查 php与javascript之间的交互
2017/08/31 PHP
PHP判断访客是否手机端(移动端浏览器)访问的方法总结【4种方法】
2019/03/27 PHP
jquery1.5.1中根据元素ID获取元素对象的代码
2011/04/02 Javascript
javascript中offset、client、scroll的属性总结
2015/08/13 Javascript
javascript实现网页中涉及的简易运动(改变宽高、透明度、位置)
2015/11/29 Javascript
理解JavaScript中worker事件api
2015/12/25 Javascript
JavaScript判断表单为空及获取焦点的方法
2016/02/12 Javascript
JS点击某个图标或按钮弹出文件选择框的实现代码
2016/09/27 Javascript
javaScript和jQuery自动加载简单代码实现方法
2017/11/24 jQuery
nodejs中密码加密处理操作详解
2018/03/20 NodeJs
jQuery实现DIV响应鼠标滑过由下向上展开效果示例【测试可用】
2018/04/26 jQuery
vue-router的钩子函数用法实例分析
2019/10/26 Javascript
Javascript操作select控件代码实例
2020/02/14 Javascript
python实现k-means聚类算法
2018/02/23 Python
python自动截取需要区域,进行图像识别的方法
2018/05/17 Python
python 从csv读数据到mysql的实例
2018/06/21 Python
python去除文件中重复的行实例
2018/06/29 Python
django form和field具体方法和属性说明
2020/07/09 Python
在pycharm中文件取消用 pytest模式打开的操作
2020/09/01 Python
PyQt5结合matplotlib绘图的实现示例
2020/09/15 Python
AmazeUI 导航条的实现示例
2020/08/14 HTML / CSS
Jabra捷波朗美国官网:用于办公、车载和运动的无线蓝牙耳麦
2017/02/01 全球购物
数以千计的折扣工业产品:ESE Direct
2018/05/20 全球购物
医学生就业推荐表自我鉴定
2014/03/26 职场文书
法人委托书范本
2014/04/04 职场文书
初中学生期末评语
2014/04/24 职场文书
教师节演讲稿
2014/05/06 职场文书
小学少先队辅导员述职报告
2015/01/10 职场文书