2009-10-27 56 views
2

我想根據用戶的搜索在我的網站上找到趨勢標籤。我沒有看到簡單解決方案的問題是如何輕鬆地從搜索字符串中提取重要的術語。例如,許多用戶可能會搜索具有不同用途的「視覺工作室」。例如,「visual studio 2010」,「visual studio單元測試」,「visual studio web表單組件」。在這3次搜索中,「視覺工作室」正在趨勢中。一個算法怎麼會注意到,因爲在大多數情況下「視覺工作室」會混雜許多其他詞彙?如何從長搜索字符串中找到趨勢標籤

謝謝!

回答

2
  1. 將每個搜索查詢拆分爲單個單詞的數組。
  2. 計算單詞之間的距離(越近越好=>更高的值)
  3. 爲所有查詢中的每個單詞對添加此詞的距離。

具有較高值的​​字對是您的「趨勢標籤」。

+0

聽起來很有趣。你會提供更多細節嗎?這個想法是將所有的可能性或者只是一個單詞與其後的其他單詞進行比較,直到數組的最後? – 2009-10-27 17:34:26

+1

我曾經以多對多的方式做到這一點:比較給定字符串中的任何兩個單詞。一旦你意識到「價格視覺工作室」也使用視覺工作室作爲「趨勢標籤」,這是有道理的。另一方面,你也可以這樣做,只關於第一個字到第n個字的關係(這節省了計算時間,但是忽略了「尾隨標記」(嚴重地說,有*必須是更好的術語)串。 – ty812 2009-10-27 18:44:28

1

對此CodePlex項目

http://www.codeplex.com/TheTagCloud

看看包括您可以傳遞一個HTML文件作爲輸入,並返回一個標籤雲的功能。

+0

TheTagCloud似乎基於已知的標籤。我認爲這個問題試圖找出如何最好地從內容構建標籤集。 – 2009-10-27 16:22:45

+0

@Stephen該示例僅顯示從字符串列表創建。該項目也支持html頁面輸入。 – 2009-10-27 16:26:10

+0

是的,我已經寫了類似TheTagCloud的東西。更難以找到的是如何根據在網站上進行的搜索提取精確的標籤。 – 2009-10-27 17:36:28