2 jiushizheweidao jiushizheweidao 于 2015.07.15 20:10 提问

python 向量空间模型 相似度计算 求大神 运行总是通不过
  #用向量空间模型计算两个字符串s和s1之间的相似度

from math import sqrt
from collections import Counter
import re

def vsm_distance(s,s1):

      #将s,s1转化为字典格式(dictionary{词:词频})
mylist=re.findall(r"\w+",s)
ss=Counter( mylist)
mylist1=re.findall(r"\w+",s1)
ss1=Counter( mylist1)
    #向量空间计算
c = set(ss.keys())&set(ss1.keys())
if not c:
    return 0
x = sum([ss.get(i)*ss1.get(i) for i in c])
sq1 = sqrt(sum([pow(ss.get(i),2) for i in ss.values()]))
sq2 = sqrt(sum([pow(ss1.get(i),2) for i in ss1.values()]))
p = float(x)/(sq1*sq2)
return p

s="KBA is to give a chance to non-popular entities information to be updated as soon as a useful information is published on the internet. The KBA organizershave built up a stream-corpus which is a huge corpus of timestamped web documents that can be processed chronologically. Hence it is possible to simulate a real time system. The documents come from newswires, blogs, forums, review, memetracker….. In addition, a set of target entities, coming from wikipedia or from twitter, has been selected for their ambiguity or unpopularity. And last but not least, more than 60000 documents have been annotated so that systems can train on it. The train period starts on documents published from october 2011 until februray, and the test period starts from februray 2012 to februray 2013."

s1="The KBA track is divided in two tasks:CCR(Cumulative Citation Recommendation) and SSF(Streaming Slot Filling). CCR task is to filter out documents worth citing in a profile of an entity(e.g., wikipedia or freebase article). SSF task is to detect changes on given slots for each of the target entities. This article is focused only on CCR task."

vsm_distance(s,s1)

6个回答

oyljerry
oyljerry   Ds   Rxr 2015.07.15 20:54

运行通不过是有什么语法错误还是结果不正确?

jiushizheweidao
jiushizheweidao 能帮我解决下吗
大约 3 年之前 回复
jiushizheweidao
jiushizheweidao 下面是它的运行后的结果
大约 3 年之前 回复
jiushizheweidao
jiushizheweidao   2015.07.16 09:27

Traceback (most recent call last):
File "", line 1, in
File "D:\Python\lib\site-packages\spyderlib\widgets\externalshell\sitecustomize.py", line 682, in runfile
execfile(filename, namespace)
File "D:\Python\lib\site-packages\spyderlib\widgets\externalshell\sitecustomize.py", line 71, in execfile
exec(compile(scripttext, filename, 'exec'), glob, loc)
File "E:/我的文档/Python Scripts/filefour.py", line 23, in
File "E:/我的文档/Python Scripts/filefour.py", line 17, in vsm_distance
TypeError: unsupported operand type(s) for ** or pow(): 'NoneType' and 'int'

jiushizheweidao
jiushizheweidao   2015.07.16 09:27

Traceback (most recent call last):
File "", line 1, in
File "D:\Python\lib\site-packages\spyderlib\widgets\externalshell\sitecustomize.py", line 682, in runfile
execfile(filename, namespace)
File "D:\Python\lib\site-packages\spyderlib\widgets\externalshell\sitecustomize.py", line 71, in execfile
exec(compile(scripttext, filename, 'exec'), glob, loc)
File "E:/我的文档/Python Scripts/filefour.py", line 23, in
File "E:/我的文档/Python Scripts/filefour.py", line 17, in vsm_distance
TypeError: unsupported operand type(s) for ** or pow(): 'NoneType' and 'int'

jiushizheweidao
jiushizheweidao   2015.07.16 09:27

Traceback (most recent call last):
File "", line 1, in
File "D:\Python\lib\site-packages\spyderlib\widgets\externalshell\sitecustomize.py", line 682, in runfile
execfile(filename, namespace)
File "D:\Python\lib\site-packages\spyderlib\widgets\externalshell\sitecustomize.py", line 71, in execfile
exec(compile(scripttext, filename, 'exec'), glob, loc)
File "E:/我的文档/Python Scripts/filefour.py", line 23, in
File "E:/我的文档/Python Scripts/filefour.py", line 17, in vsm_distance
TypeError: unsupported operand type(s) for ** or pow(): 'NoneType' and 'int'

oyljerry
oyljerry   Ds   Rxr 2015.07.16 09:31

看上去你传进来的s,s1等数据有问题,导致后面处理出错了,你现在函数中一进来打印一下看看

CSDNXIAON
CSDNXIAON   2015.07.16 15:31

向量空间模型文档相似度计算实现(C#)
----------------------同志你好,我是CSDN问答机器人小N,奉组织之命为你提供参考答案,编程尚未成功,同志仍需努力!

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
向量空间模型快速文本相似度计算 java源码+数据
使用向量空间模型以最快速度计算文本之间的相似度,JAVA源码+数据
向量空间模型(VSM)--用于计算文本相似度
向量空间模型将文档映射为一个特征向量V(d)=(t1,ω1(d);…;tn, ωn(d)),其中ti(i=1,2, …,n)为一列互不雷同的词条项,ωi(d)为ti在d中的权值, 一般被定义为ti在d中出现频率tfi(d)的函数,即 。 在信息检索中常用的词条权值计算方法为 TF-IDF 函数,其中N为所有文档的数目,ni为含有词条ti的文档数目。TF-IDF公式有很多变种,下面是一个常用的TF-...
TF_IDF模型和文本相似度的计算
TF-IDF(term frequency–inverse document frequency)是一种用于资讯检索与文本挖掘的常用加权技术。TF-IDF是一种统计方法,用以评估一字词对于一个文件集或一个语料库中的其中一份文件的重要程度。字词的重要性随着它在文件中出现的次数成正比增加,但同时会随着它在语料库中出现的频率成反比下降。TF-IDF加权的各种形式常被搜索引擎应用,作为文件与用户查询之间相
vsm向量空间模型实现
简介 代码实现 总结 一.简介 在检索当中,主要涉及了两个核心问题: I.相似度计算 II.索引的建立 索引建立参考资料: http://blog.csdn.net/malefactor/article/details/7256305 这里我们重点讲解第一个问题 1.1整体流程如图: 1.2在整个流程当中,第二步骤和第三步骤对于效果影响很多,故此很关键 相似度的vsm经典模型流
文本相似度的计算-向量空间模型
在向量空间模型中,文本泛指各种机器可读的记录。用D(Document)表示,特征项(Term,用t表示)是指出现在文档D中且能够代表该文档内容的基本语言单位,主要是由词或者短语构成,文本可以用特征项集表示为D(T1,T2,…,Tn),其中Tk是特征项,1 其中,W1k、W2k分别表示文本D1和D2第K个特征项的权值,1 在自动归类中,我们可以利用类似的方法来计算待归类文档和某类目的相关度。
向量空间模型文档相似度计算实现(C#)
读者可以根据自己的需要进行加壳或改写,本文权当抛砖引玉。笔者加的壳在:http://download.csdn.net/source/1143450 VSM模型介绍:http://blog.csdn.net/Felomeng/archive/2009/03/25/4024078.aspx using System;using System.Collections.G
向量空间模型的Java代码
向量空间模型的Java代码
C#实现向量空间模型(VSM)在文档相似度计算+Lucene中文分词器
C#实现向量空间模型(VSM)在文档相似度计算+Lucene中文分词器,保证可以运行,包含配置文档教程
基于文本向量空间模型的文本聚类算法
基于文本向量空间模型的文本聚类算法@[vsm|向量空间模型|文本相似度] vsm概念简单,把对文本内容的处理转化为向量空间中的向量计算,以空间上的相似度来直观表达语义上的相似度。 目录基于文本向量空间模型的文本聚类算法 文本聚类 向量空间模型vsm 文本预处理 获取每篇文档词频 获得相同长度的向量 归一化 idf频率加权 tf-idf加权并归一化 计算向量间的夹角文本聚类文本聚类主要依据聚类假设
余弦方法计算相似度算法--Python实现 Java实现
(1)余弦相似性            通过测量两个向量之间的角的余弦值来度量它们之间的相似性。0度角的余弦值是1,而其他任何角度的余弦值都不大于1;并且其最小值是-1。从而两个向量之间的角度的余弦值确定两个向量是否大致指向相同的方向。所以,它通常用于文件比较。           详见百科介绍(点击打开链接) (2)算法实现的中未使用权重(IDF ---逆文档频率),使用词