160 ビットのランダム データがあります。
楽しみのために、この情報を「保存」するための疑似英語フレーズを生成したいと思います。この情報をフレーズから復元できるようにしたいと考えています。
注:これはセキュリティ上の質問ではありません。他の誰かが情報を復元できるかどうか、または情報が存在するかどうかを検出できるかどうかは気にしません。
最も重要なものから最も重要でないものまで、より良いフレーズの基準:
- 短い
- 個性的
- 自然な見た目
ここで提案されている現在のアプローチ:
それぞれ 1024 個の名詞、動詞、形容詞の 3 つのリストを用意します (最も人気のあるものを選びます)。次のパターンでフレーズを生成し、単語ごとに 20 ビットを読み取ります。
名詞 動詞 形容詞 動詞, 名詞 動詞 形容詞 動詞, 名詞 動詞 形容詞 動詞, 名詞 動詞 形容詞 動詞.
さて、これは良いアプローチのように思えますが、フレーズが少し長すぎて、少し鈍すぎます。
ここで単語のコーパスを見つけました(Part of Speech Database)。
アドホック フィルタリングを行った後、このコーパスには次のものが含まれていると計算しました。
- 50690の使用可能な形容詞
- 123585 名詞
- 15301 動詞
- 13010 個の副詞 (パターンには含まれていませんが、回答で言及されています)
これにより、最大で使用できます
- 形容詞あたり 16 ビット (実際には 16.9 ですが、小数ビットの使用方法がわかりません)
- 名詞あたり 15 ビット
- 動詞あたり 13 ビット
- 副詞あたり 13 ビット
名詞-動詞-形容詞-動詞パターンの場合、これは句の「文」ごとに 57 ビットを提供します。これは、このコーパスから取得できるすべての単語を使用すると、4 つの文ではなく 3 つの文を生成できることを意味します (160 / 57 ≈ 2.8)。
名詞 動詞 形容詞 動詞, 名詞 動詞 形容詞 動詞, 名詞 動詞 形容詞 動詞.
まだ少し長すぎて退屈です。
どうすれば改善できますか?
私が試すことができると思うこと:
エンコードする前に何らかの方法でデータを圧縮してみてください。しかし、データは完全にランダムであるため、一部のフレーズのみが短くなります (そして、おそらくそれほどではありません)。
フレーズパターンを改善して、見栄えを良くします。
いくつかのパターンを使用し、句の最初の単語を使用して、将来のデコードでどのパターンが使用されたかを何らかの形で示します。(たとえば、最後の文字または単語の長さを使用します。) データの最初のバイトに従ってパターンを選択します。
...私は英語が得意ではないので、より良いフレーズ パターンを考え出すことができます。助言がありますか?
- パターンでより多くの言語学を使用します。時制の違いなど
...そのためには、今よりもはるかに優れた単語コーパスが必要になると思います。適切なものをどこで入手できますか?