2014-03-12 84 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距離是度量用於測量兩個序列之間的差的字符串」。

相關問題