読みやすいアブラカダブラ世代

インターネットでは、 「Lorem Ipsum」としても知られる無意味なテキストを生成するサービスを見つけることができます。

通常、それらはあらゆる種類の設計レイアウトを満たすための「魚」として使用されます。

または、キーボードシミュレーターのテキストとして使用できます。



検出されたすべてのジェネレーターは、ランダムまたはあまり良くない単語の組み合わせによってテキストを作成し、時には最後に互いに一致し、時には関係を考慮します。



以下に、意味のある単語はほとんど含まれていないが読みやすいアブラカダブラの生成方法を説明します。



このようなもの:
私たち人間の旅行者を粉砕する小さな破砕プロセスで確認してください、私は私の父がjeしていないならそれが彼のカードを歌うだろうとすればスクープでカルミアについて話すことができるようにすべてのMozhenの名前の涙を引き裂く必要がある寝室が欲しいですひたすら自分自身を犯し、私に復venした彼は、あなたが千匹の妖精から彼女のペンキュールを取り出すのを見ないで、残りの羽が見えるまで、夜に猫を吸う 教授と都市文化の笑




私の好みとしては、もっと楽しいです。



アイデアは非常に単純です-ロシア語での互換性を考慮して、スペルテキストを生成することにあります。





マテリエル



テキストは N次のマルコフ連鎖としてモデル化され、個々の文字は連鎖の要素(イベントの結果)として表示されます。 ストリームの現在の状態は、すでに入力されたN文字によって決まり、次の文字は遷移行列によって決まります。



N文字の各チェーンの遷移行列により、

テキストの継続に受け入れられる文字とその発生の可能性。

実際には、文字の組み合わせの頻度辞書です。

dict [prefix] [letter] =このプレフィックスの後のこの文字の発生確率/頻度。



辞書編集



辞書を編集するには、十分な量のテキストをスキャンする必要がありますが、

すべての可能な文字の組み合わせの出現回数を計算し、各プレフィックスの下のすべての値を正規化します。

辞書に固定長のプレフィックスを含めることも、0から最大までのすべてを含めることもできます。

テキストを生成するための利点は、単一の辞書を使用して、さまざまな読みやすさのテキストを生成できることです。 また、辞書の深さよりも短い単語を単語マトリックスマトリックスに入力します。



2つのオプションが可能です。連続ストリーム(テキスト)または単語(辞書など)でスキャンします。

連続スキャンでは 、単語の区切り文字(スペース、句読点も)が接頭辞に含まれます。これにより、単語の互換性をある程度考慮することができます(「同じ」、「同じ」、「何」などの組み合わせがより頻繁に表示され、など)。

ストリームをスキャンするには、N個の前の文字(テール)を保存し、新しい各レターを辞書[テール] [レター]に追加し、テールに追加します。

"... ...":<br/>

[...][] [...][], [..][], [.][], [][_], [_][], [_][], [_][], [_][], [][], ...







辞書の深さが固定されていない場合、最大から0までのプレフィックスをマトリックスに入力できます(空のプレフィックスからの遷移マトリックスにより、文字の無条件の確率が決まります)。

[][], [][], [][], [][], [][]







単語スキャンする場合、単語の区切り文字は最初の文字としてのみプレフィックスに含まれます。

単語を追加するには、辞書に長さN-1 +文字のすべての部分文字列を入力し、単語の先頭と末尾に区切り文字を追加する必要があります。 ディクショナリの深さが固定されていると、ディクショナリ内のN単語より短い単語は失敗します。

"", "":<br/>

[_][], [][_],<br/>

[_][], [][], [][], [][], [][_]...







このようなスキャンでは、プレフィックスの最大長は単語の長さによって制限されます。



テキスト生成



また、連続ストリームまたはテキストでテキストを生成することもできます。

  1. 開始行として、辞書から任意のプレフィックスが選択され、

    スペースで始まる(単語の先頭にない文字でテキストを開始しないように)
  2. そして退屈するまで:
    1. 長さNの既に入力されたテキストの末尾が取得されます
    2. 辞書はすべての可能な継続を探します
    3. 継続はランダムに重み付けされた方法で選択され、テキストに追加されます
    4. テキストが単語に従って生成され、最後に追加された文字が区切り文字である場合、開始行を再度選択する必要があります。


単語に従ってコンパイルされた辞書によれば、テキストとテールに区切り文字を追加した後、区切り文字がプレフィックスに含まれていないため、辞書のエントリが見つからないため、単語に従ってのみ生成することもできます

/ *「ランダムな重み付け」不均一な分布から要素を選択する方法を呼び出しました。 これは、単一のセグメントを各要素の発生確率に比例するセグメントに分割し、一様にランダムな値を使用してこのセグメント上のポイントを選択することで実現されます。 * /



辞書を深く使用するほど、生成されるテキストは読みやすくなりますが、意味のある単語が頻繁に表示されます。

ロシア語の単語の平均長= 5.28、辞書の深さ> = 5、ほとんどの単語は意味があります。

3-4(〜音節の長さ)の組み合わせを使用すると、読みやすさと無意味の良い比率が得られます。





かなり代表的な基準として、私はS. A.シャロフの周波数辞書を使用しました

100万回に1回以上発生する〜70,000の単語(単語形式)が含まれています。

科学者によって十分に注意深く編集された「ロシア語の全国コーパス」に基づいて構築されました。

もちろん、単語からテキストを生成するのに適しています。



1から最長の単語(24文字)までの文字の組み合わせの完全な辞書により、820105件のエントリが見つかりました。

1から5までの辞書の組み合わせ:240784エントリ。



N = 1

自転車は、ここ数年のすべてのビジネスが折り畳まれた統計から最も広大であり、最も申し分なくても、はるかに遠く離れた光をカットし、多くのファンキーで簡単に学ぶことができますローラルシエールは、スチールとスチールを縫い合わせたのがスキレブルートとヌリドゥスボティシェチカエバではないように感じます。彼らはピクニックとカーニバルに疲れて疲れていました。だから吐き気が起こります。 ntolilyでnatalst KI番目のD Zuren vabatayavetutodaシェのoteznopl bsnaprobe


N = 2

彼らが溶けるために貯める予感です。私は半年も食べませんでした。 2年前、プロシミノヴァヤの策略が何年も購入されましたが、これは彼と彼女のペストロイカドゥリアが同じホールのけちではないストラスピープルになる最後の時間ではありません。 愛は悪化する


N = 3

傷ついたり、忠実な顔を表現するのに忠実な他の誰よりも多くない、彼は彼が何を望んでいるかを知らず、彼がそんなに持っていない場所を愛している、私はあなたを呼び出さず、クーデターはまだ多くの友人のようにわいせつだった報復の時に、彼女は最初の部隊を部門からの拒否で閉鎖し、電子メールは怠け者になり、冗長なプッシャーはローターと同じことを初めてしました。 ブーハード口と呼ばれる


N = 4

旅行者がコートを蹴ると、ソストクは急に急流のように自然に気づき、旅行者の夜をひっくり返し、ポストを変える最高の男、彼がキッチンルームにドアを開けるのがどれほど素晴らしいか、夜に飲み物を飲む習慣はおそらく彼が考えていて若いだけが私のものであるにもかかわらず私はドアの前のドアで非常に子供です、しかし、あなたが座って、紙の上でそれを治している間にそれを手渡しました。 著者は座って呼吸する正しい共同闘争をオンにします


N = 5

彼らが彼女に走る命令の直前であり、巨大な日に、出版社の当時の山羊の頭だけが、私が正しい勧告をクリーンアップするか、辞書が別のものから転覆せず、それが再びオークになってから笑う前に、死がどこに対処するかを疑わないそれは地元の会合の星の下にある星であり、彼らは秘密の食事で護衛の肩に座っていたので、私はこれを目にしませんでした 道徳的な高alacha




完全な幸福のために、エンディングの句読点と調整を追加することもできます。



All Articles