2010-02-11 64 views
4

假設我正在根據各種標準從Twitter收集推文,並將這些推文存儲在本地mysql數據庫中。我希望能夠像電子報這樣的電腦熱門話題,長度可以從1到3個字。計算熱門話題

是否有可能編寫一個腳本來做這樣的事情PHP和MySQL?

我已經找到答案,如何計算哪些術語是「熱」,一旦你能夠得到術語的計數,但我堅持在第一部分。我應該如何將數據存儲在數據庫中,如何計算數據庫中長度爲1-3個字的術語頻率?

+0

您是否正在尋找一種方法將存儲組中已排序的主題彙集到一起,稱爲趨勢? – 2010-02-11 21:12:56

+0

基本上一個關鍵字詞組的長度可以是1-3個字。所以如果「邁克爾傑克遜」是一個熱門話題,它應該認識到「邁克爾傑克遜」是一個關鍵詞短語。不是「邁克爾」和「傑克遜」作爲單獨的熱門關鍵字。 完全清楚嗎? – Brian 2010-02-11 21:18:03

回答

1

如何分解您的推文首先在單個詞的標記和計算每個單詞的出現次數? 一旦你有他們,你可以分解所有兩個字令牌,計算出現的次數,最後做的所有這三個詞的令牌相同。

您可能還需要添加一些客氣話的詞典,你不想來算

+0

你有什麼建議可以有效地做到這一點。這似乎是一個不錯的主意。 – Brian 2010-02-11 21:35:38

+0

我在評論的第二個請求。目前在網絡上對此主題缺乏足夠的信息 – ChuckKelly 2013-09-04 01:27:14

1

你需要的是

  1. 文檔分類或者,或...
  2. 自動標記

可能是第二個。只有那時,你才能夠及時地估計他們的知名度。

0

或者做多米尼克的反義詞,並存儲一組您希望匹配的短語,空格和全部列表。把它們寫成正則表達式字符串。對於數據庫中的每一行(file,sql table,whatever),處理正則表達式,找到count。

這取決於你想在哪個方式輕鬆地做到這一點:一切 - 這是常見的,從而找到什麼是真正的趨勢,或設置短語查找。在其中一種情況下,您會發現許多可能對您不感興趣的內容,您需要一個廣泛的阻止列表 - 在另一種情況下,您需要一個巨大的白名單。

要超越這一點,您需要自然語言處理工具來確定所說的內容。

2

趨勢主題接收到來自我:
1.取鳴叫
2.分裂各鳴叫由空間劃分成的n-gram(高達3克,如果你想3個字的長度)陣列
3.濾出每個從網址,@username,常用詞和垃圾字符
4計數的所有獨特的關鍵字/短語頻率
5.靜音一些垃圾詞/短語陣列

是的,你可以做到這一點在PHP MySQL的&;)