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
我的问题是如何找到使用这本字典的标签之间的相似之处?
有很多方法可以解决这个问题,例如查看两个网址共有多少个标签。 –
如果您正在寻找基于标签字符串的严格相似性,您可能需要调查[Levenshtein距离算法](http://en.wikipedia.org/wiki/Levenshtein_distance),因为这是计算典型的第一步字符串相似。 –
你有你认为相似的标准吗?语义相似('脚本','编程')?语义上相异但正字法相似('CS''CSS')? – RJFalconer