python 对一篇文章,按句号分成一句一句的,然后在这篇文章中找到与某个句子类似的句子(包含相同的词)
2018-03-03 23:25
288 查看
#-*- coding:utf-8 -*-
import sys
reload(sys)
sys.setdefaultencoding("gbk")
#code:myhaspl@qq.com
#12-4.py
import numpy as np
import jieba
import copy
def get_cossimi(x,y):
myx=np.array(x)
myy=np.array(y)
cos1=np.sum(myx*myy)
cos21=np.sqrt(sum(myx*myx))
cos22=np.sqrt(sum(myy*myy))
return cos1/float(cos21*cos22)
f1_text='瑞典税务局改称台湾为中国一省:按国际惯例修正'
if __name__ == '__main__':
f1 = file('testk.txt','r')
lines = f1.read()
lines=lines.split(u'。')
#sys.setdefaultencoding("gbk")
#lines=re.split(',', lines)
for i in lines :
#print i
#print "ok"
if not len(i) ==1 :
f1_seg_list = jieba.cut(f1_text)
#第一个待测试数据
ftest1_seg_list = jieba.cut(i)
#读取样本文本
#去除停用词,同时构造样本词的字典
f_stop = open('stopwords.txt')
try:
f_stop_text = f_stop.read( )
f_stop_text=unicode(f_stop_text,'utf-8')
finally:
f_stop.close( )
f_stop_seg_list=f_stop_text.split('\n')
test_words={}
all_words={}
for myword in f1_seg_list:
#print ".",
if not(myword.strip() in f_stop_seg_list):
test_words.setdefault(myword,0)
all_words.setdefault(myword,0)
all_words[myword]+=1
#读取待测试文本
mytest1_words=copy.deepcopy(test_words)
for myword in ftest1_seg_list:
#print ".",
if not(myword.strip() in f_stop_seg_list):
if mytest1_words.has_key(myword):
mytest1_words[myword]+=1
#计算样本与待测试文本的余弦相似度
sampdata=[]
test1data=[]
for key in all_words.keys():
sampdata.append(all_words[key])
test1data.append(mytest1_words[key])
test1simi=get_cossimi(sampdata,test1data)
#sys.setdefaultencoding("utf8")
print "%s %f %s "%(chr(10)+i+u'。'+chr(10),test1simi,chr(10))
#sys.setdefaultencoding("gbk")
else:
continue
f1.close()
import sys
reload(sys)
sys.setdefaultencoding("gbk")
#code:myhaspl@qq.com
#12-4.py
import numpy as np
import jieba
import copy
def get_cossimi(x,y):
myx=np.array(x)
myy=np.array(y)
cos1=np.sum(myx*myy)
cos21=np.sqrt(sum(myx*myx))
cos22=np.sqrt(sum(myy*myy))
return cos1/float(cos21*cos22)
f1_text='瑞典税务局改称台湾为中国一省:按国际惯例修正'
if __name__ == '__main__':
f1 = file('testk.txt','r')
lines = f1.read()
lines=lines.split(u'。')
#sys.setdefaultencoding("gbk")
#lines=re.split(',', lines)
for i in lines :
#print i
#print "ok"
if not len(i) ==1 :
f1_seg_list = jieba.cut(f1_text)
#第一个待测试数据
ftest1_seg_list = jieba.cut(i)
#读取样本文本
#去除停用词,同时构造样本词的字典
f_stop = open('stopwords.txt')
try:
f_stop_text = f_stop.read( )
f_stop_text=unicode(f_stop_text,'utf-8')
finally:
f_stop.close( )
f_stop_seg_list=f_stop_text.split('\n')
test_words={}
all_words={}
for myword in f1_seg_list:
#print ".",
if not(myword.strip() in f_stop_seg_list):
test_words.setdefault(myword,0)
all_words.setdefault(myword,0)
all_words[myword]+=1
#读取待测试文本
mytest1_words=copy.deepcopy(test_words)
for myword in ftest1_seg_list:
#print ".",
if not(myword.strip() in f_stop_seg_list):
if mytest1_words.has_key(myword):
mytest1_words[myword]+=1
#计算样本与待测试文本的余弦相似度
sampdata=[]
test1data=[]
for key in all_words.keys():
sampdata.append(all_words[key])
test1data.append(mytest1_words[key])
test1simi=get_cossimi(sampdata,test1data)
#sys.setdefaultencoding("utf8")
print "%s %f %s "%(chr(10)+i+u'。'+chr(10),test1simi,chr(10))
#sys.setdefaultencoding("gbk")
else:
continue
f1.close()
相关文章推荐
- python 对一篇文章,按逗号和句号分成一句一句的,然后在这篇文章中找到与某个句子类似的句子(包含相同的词)
- python 对一篇文章,按逗号分成一句一句的,然后在这篇文章中找到与某个句子类似的句子(包含相同的词)
- 关于python decorator找到的一篇比较好的文章
- 一篇文章让你彻底搞清楚Python中self的含义
- Python性能鸡汤——新出的一篇关于Python高效编程的文章
- 一篇文章读懂Python赋值与拷贝
- 一篇关于arc下内存管理的老文章,包含各种冷门修饰符(关于内存),写的较好,mark
- 最近找到的一篇好文章
- 一篇文章让你彻底搞清楚Python中self的含义
- 编写一个程序,输入一串不超过60个字符组成的且不包含换行符的字符串,将字符串中的A到Z的字母按英文字典字母顺序重新排列,排列后的单词的长度要与原始句子中的长度相同,并且要求只对A到Z的字母重新排列,其
- 一直以来没有成功运行出.TEXT Blog,今天找到一篇文章,转过来看看吧
- 一篇文章让你彻底搞清楚Python中self的含义
- 非常励志的一篇文章,请慢慢细读,品读,从中找到你想要的答案
- Python:一篇文章掌握Numpy的基本用法
- 一篇文章帮你解决python的包管理
- 找到一篇关于 Oracle 全文检索实践 的文章
- 一篇文章告诉你,该学R还是Python
- python 下载微信公众号文章,含图片,并对文本分词, 并 搜索某个词,然后替换为 粗体 红色
- python选取文件夹,然后计算该文件夹下所有文件的md5值,并列出md5值相同的文件到log中
- 用记事本程序创建一篇包含几十个英语单词的小文章,要求从屏幕输出每一个单词。(StreamTokenizer、StreamTokenizer类)