2016-09-21 3 views
1

私は3 milionの要約を持っており、私はそれらから4-gramを抽出したいと思います。私は言語モデルを構築したいので、これらの4グラムの頻度を見つける必要があります。N-grams - メモリにはありません

私の問題は、これらの4グラムすべてをメモリで抽出できないことです。どのようにしてこれらの4グラムのすべての周波数を推定できるシステムを実装できますか?

+0

あなたはhdf5またはpytablesを見ましたか?私が知っている限り、彼らはnumpyにうまく接続し、おそらく速いでしょう。 – Magellan88

+0

フィードバックいただきありがとうございます。私はそれらをチェックします –

+0

ほとんどの4グラムは一度しか表示されないので、複数回表示されるものを見つけることによって必要な情報を得ることができます。重要なことは、4グラムが2回以上出現するトリグラムを延長する場合、4グラムが複数回現れることであり、そのようなトリグラムは2回以上出現するバイグラムを拡張する場合、複数回出現する。物事を段階的に行うことができます。最初にそのようなbigrams(おそらく実行可能)を見つけ、次にtrigrams、そして最後に4-gramを探します。この質問の私の答えは、トリグラムのためのこのアイデアを示しています:http://stackoverflow.com/a/36935796/4996248 –

答えて

0

中間周波数カウントをメモリではなくディスクに保存する必要があるように聞こえます。幸いなことに、ほとんどのデータベースでこれを行うことができ、Pythonはほとんどのデータベースと話すことができます。

+0

私はすでにこれを私の心に持っていますが、どれぐらい効率が良いのか分かりません。私は最初の単語でソートされたファイルを100000件ごとに作成すると考えました。次に、マージソートを実装してユニークなファイルを作成し、これらの4グラムすべてをソートしました。 –

関連する問題