2010-06-07 161 views
4

我正在開發Web應用程序,其中用戶有標籤集合。我需要根據用戶標籤的相似性爲用戶創建一個建議列表。
例如,當用戶登錄到系統時,系統會獲取他的標籤並在用戶的數據庫中搜索這些標籤,並顯示具有相似標籤的用戶。例如,如果用戶1具有以下標籤[的Linux,Apache,MySQL和PHP]和用戶2具有[的Windows,IIS,PHP和MySQL]它說,用戶2分配襯用戶1具有重量的50%,因爲他具有2分相似的標籤(PHPMySQL的)。
但是想象其中用戶1具有狀況[ASP,IIS,MS訪問]和用戶2具有[PHP,Apache,MySQL和]。在這種情況下,我的系統不建議用戶2作爲「朋友」到用戶1,反之亦然。但是我們知道這兩個用戶在工作領域有相似之處,都在Web技術(或Web編程等)上工作。因此,這就是爲什麼我需要計算機科學的分類(現在,但可能需要其他領域的分類,如醫學,物理學,數學等),這些概念被分類,因此當我搜索的ASP相似PHP,例如,它可以說,他們有相似性,屬於成一個組(或類別)。
我希望我清楚地描述了自己的問題,但是如果解釋錯誤的話會對您的更正感到高興。
謝謝計算機科學分類

+0

爲什麼這會變成主題? – 2010-06-07 11:20:40

+0

也許計算機科學不是這裏的相關術語。 – anno 2010-06-07 12:57:51

回答

3

我不認爲你實際上需要一個分類。有了足夠的數據,您應該能夠在字段上執行cluster analysis並推斷標籤之間的關係。有關詳細信息,請參閱this paper on automated tag clustering。如果您不認爲基於標籤的標籤聚類和分析可以讓您儘可能地滿意,請查看Flickr。

或者,如果您認爲需要分類,請考慮使用SKOS。如果你可以將你的標籤映射到SKOS,那麼你可以對它們進行這種分析。您可能會發現兩個SKOS數據源特別有用:Library of Congress Subject HeadingsDbPedia。如果您對使用SKOS有更多疑問,請嘗試SemanticOverflow

2

生成一些使用谷歌集?這將是很難獲得更大的數據集比:

http://labs.google.com/sets

+0

我不知道這個工具如何幫助我,但你知道使用這個工具的任何API嗎?而且,這個工具將如何使我受益? – Bakhtiyor 2010-06-07 11:30:09

+1

沒有官方api,但有一些第三方的人被黑客攻擊(試用Google搜索)。無論如何,它們不一定非常可靠,因爲您只需執行一些查詢並將結果放入數據庫即可。 如果您閱讀了該工具的說明,您會發現它完全符合您的要求 - 從一些相似的詞中推斷出可找到更大的一組相似單詞。 – sml 2010-06-08 14:03:10

1

您需要創建標籤之間的關係。我不相信這可以自動完成。 你必須創建一個數據庫,它說sql = mysql = postgresql = oracle,asp = jsp = php等等。 這樣你創建了一些標籤組。標籤可以肯定存在多種關係。