「ランダムな」テキストが必要な場合は、独自のマルコフ連鎖ジェネレーターを拡張することがおそらく最善の策です。コンテキストを持つものを生成することは、未解決の研究課題です。
試してください(まだ行っていない場合):
- 句読点を個別にトークン化するか、まだ行っていない場合はチェーンに句読点を含めます。これには段落記号が含まれます。
- 2 履歴または 3 履歴のマルコフ連鎖を使用している場合は、ピリオドまたは改行が発生したときに 1 履歴のマルコフ連鎖を使用するようにリセットしてみてください。
または、コーパスでWordNetを 2 つのパスで使用することもできます。
- 文を分析して、名詞、動詞、形容詞、副詞などの単語の種類の一般的な順序を決定します。WordNet にはこれらが含まれます。他のすべて (代名詞、接続詞など) は除外されますが、基本的にはそのまま通過できます。これは、「The quick brown fox jumps over the lazy dog」を「[形容詞] [形容詞] [名詞] [動詞] over the [形容詞] [名詞]」に変換します。
- テンプレート文をランダムに選び、[形容詞]、[名詞]、[動詞]を実際の形容詞の名詞と動詞に置き換えて文を再現します。
このアプローチにもかなりの問題があります。たとえば、どの同音異義語を選択するかを知るには、周囲の単語からのコンテキストが必要です。wordnet で "quick" を検索すると、高速であるという情報だけでなく、指の爪のかけらもわかります。
これでライブラリやツールの要件が解決されないことはわかっていますが、いくつかのアイデアが得られるかもしれません。