尋找一些關於從nosql數據庫中的一堆條目生成常用單詞和短語列表的建議。基本上我們有一些由某人制作的帖子,我們想告訴他們「你好,你用這些詞/短語很多」。使用ruby創建常用單詞或短語列表
我對這一個有點難住。
我的應用程序在rails,backbone-js和redis上是ruby。
尋找一些關於從nosql數據庫中的一堆條目生成常用單詞和短語列表的建議。基本上我們有一些由某人制作的帖子,我們想告訴他們「你好,你用這些詞/短語很多」。使用ruby創建常用單詞或短語列表
我對這一個有點難住。
我的應用程序在rails,backbone-js和redis上是ruby。
因爲它是不明確的職位是如何存儲,我就假設你可以得到所有的樁的陣列。
一個簡單的算法來找到最常用的生僻字會是以下幾點:遍歷所有的帖子陣列上,然後從什麼,但話剝離後,並將其分割成單詞。查看條目中的所有單詞,並將您看過該單詞的次數加1。一旦完成了所有條目中的所有單詞,就會得到所有單詞出現次數的散列。刪除最常見的單詞,這裏是100 common words的示例。您應該在應用程序中使用更多。按發生的次數對它們進行排序,並且會出現最常出現的單詞。
它實現here。它不處理如posts
爲post
的情況,您可能需要這樣的情況。你可以看看Rails如何實現String#singular
來獲得這種行爲。
如果你想找到常用短語也變得更有趣,你可能不得不使用某種類型的自然語言處理作爲@sawa在評論中指出。我無法想出一個速度足夠快的解決方案。
或者可以使用紅寶石給任務發佈到的Mechanical Turk或類似的網站:) –
還有的是關於它的幾個問題:http://stackoverflow.com/questions/1928997/how-to-find-common-phrases-in -a-大車身的文本 – Sirupsen
識別的字母序列很簡單(這是不完全的話),但如果你想提取真正的單詞和短語,你需要做的自然語言處理和數據挖掘。這並不容易。 – sawa
我會爲你需要支持的語言(只是英文?)整合一個詞幹庫這樣的[ruby-stemmer gem](https://github.com/aurelian/ruby-stemmer)。我沒有使用過圖書館。你可能想要爲每個用戶離線計算計算結果並將結果存儲在緩存中,例如,可以使用redis來存儲單詞和計數的散列。 –