如何衡量字符串是某种代码或无意义的“概率”

时间:2013-08-05 13:48:48

标签: string probability

我们假设我们有以下字符串:

q8GDNG8h029751
DNS
stackoverflow.com
28743.8.4.919
q7Q5w5dP012855
Martin_Luther
0000000100000000-0000000160000000
1344444967\.962
ExTreme_penguin

显然,根据我们的大脑,其中一些可以归类为包含信息的字符串,对人类具有某种“意义”的叮咬。另一方面,像“q7Q5w5dP012855”这样的字符串肯定是一些只能对计算机有用的代码。

我的问题是:我们能计算一下字符串实际可以告诉我们什么的概率吗?

我有一些想法,如进行频率分析或计算大写字母等,但更方便的是有更“科学”的东西

1 个答案:

答案 0 :(得分:1)

如果您知道字符串所在的语言,则可以使用该字母中的单词的digram或trigram字母频率。这些是非常小的查找表[26 x 26] 或[26 x 26 x 26]每个条目可以是一个浮点数,即该字符串在该语言中出现的概率。对于无意义的字符串,其中许多都是零。您可以将它们相加或仅计算零概率序列的数量。

当然这需要为每种语言设置。