可能性のあるすべての単語のリストを事前にファイルに保持せずに、ランダムな英単語 (できれば名詞) を返す関数を取得するための最良の方法は何でしょうか?
8 に答える
単語リストはそれほど多くのスペースを占める必要はありません。
これは 2,465 語のJSON 単語リストで、すべて名詞です。中サイズの jpeg 画像のサイズである 50K 未満で記録されます。
ランダムなものを選択することは、読者の演習として残しておきます。
できません。意味のある単語を生成するアルゴリズムはありません。英語のように聞こえる単語しか生成できませんが、意味はありません。
関数で次のようなオンライン リソースを試して解析することができます。
別の理論的アプローチ:ウィキペディアのランダムな記事ページをスクレイピングして、記事の N 番目の単語を返すことができます。
setgetgo のランダム ワード API を使用するだけです。それは無料で、簡単で、揺るぎません。
「SOWPODS と TWL に共通する単語」リストはhttp://www.math.toronto.edu/jjchew/scrabble/lists/からダウンロードできます。これらのファイルのすべての単語をまとめると、リストの重量は約 642k になりました。どんな基準でも巨大ではありません。ただし、リストにはトーナメント Scrabble での使用を意図しているため、あいまいな単語がたくさん含まれています。良いことは、リストが英語の実質的なサブセットを形成していることです。
ここにはランダムな単語ジェネレーターがあります。これは英語ではありませんが、英語っぽいです。つまり、ユーザーが単語を読んで短期記憶に保存できるほど、単語は言語に似ています。
ソース コードは C# で作成されており、少しまとまりがありませんが、Python で同様のアプローチを使用して、大量のリストを保存しなくても多くの単語を生成できます。
別の方法として、デモ ページの Web サービスを直接呼び出すこともできます。ただし、GoDaddy でホストされているため、本番環境で動作する保証はありません。
次の 3 つのオプションがあります。
- 単語のリストをハードコーディングし、配列を初期化します。
- ファイルではなく、インターネットの場所からリストを取得します。
- 可能な単語のリストをファイルに保持します。
上記を回避する唯一の方法は、単語が本物かどうかを気にしない場合です。ランダムな長さの文字列を生成するだけです。(元になる辞書リストがなければ、プログラムで単語を生成する方法はありません。)