4

テキストの短いシーケンス (2 つまたは 3 つの単語など) がランダムかどうかを確認することは可能ですか? 最初に考えたのは、文字列のエントロピーを計算することでした。

H("hello world") = 2.84535
H("sdzfjksher") = 3.12193

の文字をどのように組み合わせて"hello world"も同じエントロピーになりますが、のようなランダムな文字列が作成されます"llloo ehrdw"。エントロピー ベースのメソッドは、テキストのような長い文字列でうまく機能します。ここでは、単一の文字を数えて、それが言語であることを判断することもできます。ここでZipfs法を使用して、実際の言語を確認することもできます...

次の方法は、通常の英語辞書のような一般的な単語のルックアップ テーブルです。この方法の問題点は、最初に単語のリストを作成することです。

例えば:

input string        result
------------------------------------------------------
"hello world"       matches 2 words
"helloworld"        random string
"lllooehrdw"        random string
"hello.world"       probably 2 words 
"a.be.was"          probably 3 words (but this is probably a strange edge case)

つまり、ここで単語を見つけて単語リストと比較することがすべてであり、これは非常に難しい場合があります.

これらすべての方法のもう 1 つの問題は、特定の言語のみを検出するか、特定の言語にトレーニングする必要があることです。今のところ英語のみを使用したいと考えてください。

これを行う良い方法はありますか、それとも偽陽性と偽陰性を受け入れる必要がありますか?

4

2 に答える 2

0

文字の頻度を使用して、文字列が単語かランダムな文字かを確認したいようです。 http://scottbryce.com/cryptograms/stats.htm

統計と単語リストを組み合わせると、誤検知を減らす方法のように思えます。

于 2013-06-11T14:11:58.953 に答える