2014-03-12 46 views
0

我已经开始从Python编程集体智慧的书中解决一些练习。问题二是: 使用del.icio.us API创建标签和项目的数据集。使用它来计算标签之间的相似性,并查看是否可以找到任何几乎相同的标签。找到一些可能已被标记为“编程”但不是的项目。如何计算标签之间的相似度?

到目前为止,我创建了一个字典,我从一个名为tags.txt的文本文件中解析数据。

def asd(): 
d = dict() 
for line in open("tags.txt"): 
    if len(line.strip().split("\t")) == 23: 
     url, number_of_saves, data_of_first_save, tag1, tagCount1, tag2, tagCount2, tag3, tagCount3, tag4, tagCount4, tag5,tagCount5,\ 
     tag6, tagCount6, tag7, tagCount7, tag8, tagCount8, tag9, tagCount9, tag10, tagCount10 = line.strip().split("\t") 
     tags = [tag1,tag2,tag3,tag4,tag5,tag6,tag7,tag8,tag9,tag10] 
     tagCounts = [tagCount1,tagCount2,tagCount3,tagCount4,tagCount5,tagCount6,tagCount7,tagCount8,tagCount9,tagCount10] 
     d.setdefault(url, {}) 
     for index, tag in enumerate(tags): 
      d[url][tag] = tagCounts[index] 
return d 

我的问题是如何找到使用这本字典的标签之间的相似之处?

+0

有很多方法可以解决这个问题,例如查看两个网址共有多少个标签。 –

+0

如果您正在寻找基于标签字符串的严格相似性,您可能需要调查[Levenshtein距离算法](http://en.wikipedia.org/wiki/Levenshtein_distance),因为这是计算典型的第一步字符串相似。 –

+0

你有你认为相似的标准吗?语义相似('脚本','编程')?语义上相异但正字法相似('CS''CSS')? – RJFalconer

回答

0

“使用此标签之间,以计算相似性”

“几乎相同”

考虑Levenshtein distance Levenshtein距离是度量用于测量两个序列之间的差的字符串”。

相关问题