2012-01-25 100 views
2

我正在致力於一位匈牙利的twitter客戶端,並且我想實施一個趨勢系統。所以我有一個充滿表示推文創建日期的文本和日期(unix時間戳)的數據庫。如何從短信中計算趨勢

那麼我怎麼能創建一些類似的PHP腳本,給我10個「熱門話題」?我甚至不知道如何開始解決這個問題。

+8

這不是那麼簡單的任務 - 你需要從閱讀[數據挖掘]的基礎知識(http://en.wikipedia.org/wiki/Data_mining) – zerkms

+1

可能值得一讀:http:///stackoverflow.com/questions/143781/what-is-search-twitter-coms-trending-topics-algorithm – cmbuckley

+0

是的,我知道它應該如何工作,我只是不知道如何得到它在PHP中,或任何其他語言:S – 19greg96

回答

1

您需要設計一種能夠告訴您趨勢的算法。

爲此,您首先需要定義趨勢是什麼,例如一個術語或一個人的名字,用於Twitter的飼料。或者甚至考慮一些推文是否被重新發布,以及發佈頻率和時間。因此,您需要分析每個Feed,提取您正在查找的信息,然後將其與時間信息結合起來以說明趨勢的發展趨勢,例如,與其他時期相比,在一段時間內或多或少地使用。

可以用正則表達式來解析twitter消息。

然後可以將關鍵字保存到數據庫中,該數據庫就像索引一樣。

然後,您可以使用像SQL這樣的數據語言從歸一化數據中獲取有關趨勢的信息。

您通常以簡單的腳本開始測試您的算法。

由於在你的問題中未定義你正在尋找什麼樣的趨勢,所以只能普遍回答這個問題。然而,一些提示:

  • 獲取tweets只有一次,緩存它們(看起來像你已經有這個)。
  • 您擁有的數據越多,您就可以更好地測試您的算法/系統,因此首先需要獲取數據。
  • 定義您可以應用到緩存數據的過程,例如解析,標準化和要使用的數據庫後端。
  • 允許您的系統具有多種趨勢算法,以便您可以相互測試它們。
  • 在您的語言/域中查找停用詞(搜索引擎是需要過濾掉不重要的文本信息的另一個相關主題)。
+0

問題在於,在趨勢中不只有一個單詞/ hashtag /提及,而是更多的單詞,甚至可能是一個句子,例如。 「澳大利亞快樂日」,「第25頁,共366頁」 – 19greg96

+1

這是關於解析推文。那麼你需要在單詞之間加上關係。按照書面的說法,將大量數據存入緩存,以便您可以調整解析過程,直到它符合您的意願。你收集的數據越多,你就越能發現單詞之間的關係。也許你想閱讀一些關於你想要支持的語言的文本分析的書籍。與一些語言學家交談,他們研究這些事情。 – hakre