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 相关文章推荐
自动化Nginx服务器的反向代理的配置方法
Jun 28 Python
Python实现的异步代理爬虫及代理池
Mar 17 Python
Python实现将数据写入netCDF4中的方法示例
Aug 30 Python
Python中字符串String的基本内置函数与过滤字符模块函数的基本用法
May 27 Python
Python实现串口通信(pyserial)过程解析
Sep 25 Python
用Python实现校园通知更新提醒功能
Nov 23 Python
python利用datetime模块计算程序运行时间问题
Feb 20 Python
利用python画出AUC曲线的实例
Feb 28 Python
Nginx+Uwsgi+Django 项目部署到服务器的思路详解
May 08 Python
python实现简单贪吃蛇游戏
Sep 29 Python
python两种注释用法的示例
Oct 09 Python
在pycharm中无法import所安装的库解决方案
May 31 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下intval()和(int)转换使用与区别
2008/07/18 PHP
PHP中的reflection反射机制测试例子
2014/08/05 PHP
PHP微信开发之根据用户回复关键词\位置返回附近信息
2016/06/24 PHP
php微信公众号开发之快递查询
2018/10/20 PHP
Google排名中的10个最著名的 JavaScript库
2010/04/27 Javascript
基于jquery的商品展示放大镜
2010/08/07 Javascript
JavaScript Scoping and Hoisting 翻译
2012/07/03 Javascript
JS解析json数据并将json字符串转化为数组的实现方法
2012/12/25 Javascript
jQuery中$.click()无效问题分析
2015/01/29 Javascript
JS实现屏蔽shift,Ctrl,alt等功能键的方法
2015/06/01 Javascript
JavaScript作用域示例详解
2016/07/07 Javascript
IntersectionObserver API 详解篇
2016/12/11 Javascript
JS填写银行卡号每隔4位数字加一个空格
2016/12/19 Javascript
浅谈Vue SSR 的 Cookies 问题
2017/11/20 Javascript
微信小程序模板(template)使用详解
2018/01/31 Javascript
javascript中this的用法实践分析
2019/07/29 Javascript
Node.js API详解之 readline模块用法详解
2020/05/22 Javascript
[01:44]Ti10举办地公布
2019/08/25 DOTA
python3制作捧腹网段子页爬虫
2017/02/12 Python
Python将多份excel表格整理成一份表格
2018/01/03 Python
Python断言assert的用法代码解析
2018/02/03 Python
Django项目实战之用户头像上传与访问的示例
2018/04/21 Python
python实现kNN算法识别手写体数字的示例代码
2019/08/16 Python
python单向链表的基本实现与使用方法【定义、遍历、添加、删除、查找等】
2019/10/24 Python
利用python实现冒泡排序算法实例代码
2019/12/01 Python
python解包概念及实例
2021/02/17 Python
专门出售各种儿童读物的网站:Put Me In The Story
2016/08/07 全球购物
英国品牌男装折扣网站:Brown Bag
2018/03/08 全球购物
adidas澳大利亚官方网站:adidas Australia
2018/04/15 全球购物
意大利巧克力店:Chocolate Shop
2019/07/24 全球购物
餐厅经理岗位职责范本
2014/02/17 职场文书
环保倡议书格式范文
2014/05/14 职场文书
新兵入伍心得体会
2014/09/04 职场文书
个人工作作风整改措施思想汇报
2014/10/13 职场文书
排球赛新闻稿
2015/07/17 职场文书
中秋节感想
2015/08/10 职场文书