2013-09-25 51 views
2

我需要創建一個詞組頻率表,計算幾百萬字單詞的一個非常大的集合中的所有短語。最終的結果將是,如什麼是這裏創建一個表: http://www.hermetic.ch/wfca/phrases.htm如何在大集合中有效地計算所有短語?

什麼將是一個有效的算法來實現這一點?如果你能夠展示一些細節,在Ruby中看到它會更好。或者,坦率地說,我甚至可以使用xapian或者lucene,但是沒有看到用這些方法來實現這個目的的方法,就是根據需要建立頻率表輸出。

+2

」這是一個包含853個單詞和4488個這些單詞實例的24 KB文件上的計算全部短語操作的輸出示例。 「經過的時間:36秒」 – steenslag

+0

「計數所有短語」?那麼,整個文件就是一個短語。減去第一個或最後一個單詞的整個文檔是另一個。那麼,那個第一個或最後一個單詞是另一個短語。你能澄清你的要求嗎? –

回答

0

我會推薦使用散列作爲關鍵詞,並增加值,因爲你發現每個短語。

Ruby是爲這種數據處理而構建的,因此您從正確的方向着手。

我不會對這個項目給你,但仔細看看:

http://ruby-doc.org/core-2.0/Hash.html

然後瞭解基本的正則表達式你需要解析:

http://www.ruby-doc.org/docs/ProgrammingRuby/html/language.html#UJ

http://rubular.com/

編輯:我相信,在最近的紅寶石,散列SOR表!我敢打賭,這將有助於您的表格輸出。不過,我不確定Ruby如何實現(有效?)。 「

相關問題