我需要創建一個詞組頻率表,計算幾百萬字單詞的一個非常大的集合中的所有短語。最終的結果將是,如什麼是這裏創建一個表: http://www.hermetic.ch/wfca/phrases.htm如何在大集合中有效地計算所有短語?
什麼將是一個有效的算法來實現這一點?如果你能夠展示一些細節,在Ruby中看到它會更好。或者,坦率地說,我甚至可以使用xapian或者lucene,但是沒有看到用這些方法來實現這個目的的方法,就是根據需要建立頻率表輸出。
我需要創建一個詞組頻率表,計算幾百萬字單詞的一個非常大的集合中的所有短語。最終的結果將是,如什麼是這裏創建一個表: http://www.hermetic.ch/wfca/phrases.htm如何在大集合中有效地計算所有短語?
什麼將是一個有效的算法來實現這一點?如果你能夠展示一些細節,在Ruby中看到它會更好。或者,坦率地說,我甚至可以使用xapian或者lucene,但是沒有看到用這些方法來實現這個目的的方法,就是根據需要建立頻率表輸出。
我會推薦使用散列作爲關鍵詞,並增加值,因爲你發現每個短語。
Ruby是爲這種數據處理而構建的,因此您從正確的方向着手。
我不會對這個項目給你,但仔細看看:
http://ruby-doc.org/core-2.0/Hash.html
然後瞭解基本的正則表達式你需要解析:
http://www.ruby-doc.org/docs/ProgrammingRuby/html/language.html#UJ
編輯:我相信,在最近的紅寶石,散列SOR表!我敢打賭,這將有助於您的表格輸出。不過,我不確定Ruby如何實現(有效?)。 「
」這是一個包含853個單詞和4488個這些單詞實例的24 KB文件上的計算全部短語操作的輸出示例。 「經過的時間:36秒」 – steenslag
「計數所有短語」?那麼,整個文件就是一個短語。減去第一個或最後一個單詞的整個文檔是另一個。那麼,那個第一個或最後一個單詞是另一個短語。你能澄清你的要求嗎? –