元の質問を読み直したところ、答えに気づきました。私の含まれているものはベースから外れました。元の人は、データセットを探すのではなく、単純なプログラミングの問題を解決したかっただけだと思います。
すべての異なる単語のペアをリストして数えると、そのリストの簡単な計算で質問に答えることができます.
もちろん、リストを生成するには多くの処理を行う必要があります。異なる単語の総数が 30,000 にも上る場合、10 億通りのペアが存在することは事実ですが、実際にはそれほど多くのペアがあるとは思えません。したがって、メモリ内 (またはディスク上) に巨大なハッシュ テーブルを持つプログラムを作成し、それらすべてをカウントすることができます。重要でないペアが必要ない場合は、スキャン中に重要度の低いペアを定期的にフラッシュするプログラムを作成できます。また、単語リストをセグメント化し、100 単語対残りの単語のペアを生成し、次の 100 単語などを生成し、パスで計算することもできます。
私の元の答えはここにあります。これは私自身の関連する質問であるため、残しておきます。
似たようなものに興味があります (単語の補完と句読点を提案する入力システムを作成していて、それを多言語にしたいと考えています)。
Google の ngram ファイルのダウンロード ページを見つけましたが、あまり良くありません。スキャン エラーでいっぱいです。'i' が '1' になり、単語が一緒に実行されるなど。うまくいけば、Google はそれ以来、スキャン技術を改善してきました。
just-download-wikipedia-unpack=it-and-strip-the-xml のアイデアは、私にとっては失敗です。私は高速なコンピューターを持っていません (へー、ここのアトム ネットブックと Android デバイスのどちらかを選択できます)。 . 3 ギガバイトの bz2 ファイルを解凍するのにどれくらいの時間がかかるか想像してみてください。100 の xml を作成し、それを美しいスープとフィルターで処理します。彼は、各ファイルの途中でクラッシュし、再起動する必要があることを認めています。
目的 (前の単語と次の単語) のために、実際の単語の辞書を作成し、ngram リストをフィルタリングして、スキャンされていない単語を除外することができます。最も一般的な単語のみを取得することでミススキャンを除外できるほど、スキャンが十分に良好であることを期待する人もいるかもしれません.
ちなみに、ngram データセットはこちらにありますhttp://books.google.com/ngrams/datasets
このサイトには、あなたが望むものがあるかもしれませんhttp://www.wordfrequency.info/