Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Algorithm 判断文本是否有意义的字符串搜索算法_Algorithm - Fatal编程技术网

Algorithm 判断文本是否有意义的字符串搜索算法

Algorithm 判断文本是否有意义的字符串搜索算法,algorithm,Algorithm,我正在解密一个旧文本,我想要一个快速算法来检查长字符串中是否有来自词典的有意义的单词。这样我就可以知道某个特定的键是否起作用了 所以,可以使用字典预处理和大表,但要尽可能快地处理25-50个字符 谢谢 使现代化 我知道意大利语,但文本没有空格,可能有几个随机字母。比如: 油罐星期三 密码是一种奇怪的柱状变换,因此单个字母的频率是固定的。如果没有更多细节,我可能会将字典编码为trie,并尝试匹配haystack字符串中的每个位置。如果您不知道tries,它是有史以来最适合快速查找字典的结构。如果没

我正在解密一个旧文本,我想要一个快速算法来检查长字符串中是否有来自词典的有意义的单词。这样我就可以知道某个特定的键是否起作用了

所以,可以使用字典预处理和大表,但要尽可能快地处理25-50个字符

谢谢

使现代化 我知道意大利语,但文本没有空格,可能有几个随机字母。比如:

油罐星期三


密码是一种奇怪的柱状变换,因此单个字母的频率是固定的。

如果没有更多细节,我可能会将字典编码为trie,并尝试匹配haystack字符串中的每个位置。如果您不知道tries,它是有史以来最适合快速查找字典的结构。

如果没有更多详细信息,我可能会将字典编码为trie,并尝试匹配haystack字符串中的每个位置。如果你不知道如何尝试,它是有史以来最适合快速查找字典的结构。

你需要缩小你的细节。想想看。如果你有长单词,比如说20-30个字符,那么你需要这个字符串中所有子字符串的所有不同排列,并将它们与字典进行比较。这将是非常繁重的计算。另外,如果你有很多这样的长单词,除非你在集群上运行,否则这将是非常困难的

你需要缩小你的细节。想想看。如果你有长单词,比如说20-30个字符,那么你需要这个字符串中所有子字符串的所有不同排列,并将它们与字典进行比较。这将是非常繁重的计算。另外,如果你有很多这样的长单词,除非你在集群上运行,否则这将是非常困难的

密码学中的标准方法不是对照字典进行检查,而是对照假定的明文语言的概率模型进行检查。例如,三角图的简单统计数据,即相邻三个字符的序列,在英语和胡言乱语之间存在显著差异。在英语中,THE是最常见的三角图。类似地,像CXC这样的三角图在英语中根本不会出现

例如,可以通过使用简单的自相关方案推断密钥长度,然后基于底层明文语言的语言统计信息搜索实际密钥来破解Vigenere密码。当我在我们大学讲授密码学时,我甚至为了演示而实施了这个过程…:


使用这些类型的概率/马尔可夫模型的好处在于,它们也能很好地容忍恰好在特定词典之外的单词,或有拼写错误的单词,或具有替代形式或古老形式的单词。

密码学中的标准方法不会对照词典进行检查,但要对照假定的纯文本语言的概率模型进行检查。例如,三角图的简单统计数据,即相邻三个字符的序列,在英语和胡言乱语之间存在显著差异。在英语中,THE是最常见的三角图。类似地,像CXC这样的三角图在英语中根本不会出现

例如,可以通过使用简单的自相关方案推断密钥长度,然后基于底层明文语言的语言统计信息搜索实际密钥来破解Vigenere密码。当我在我们大学讲授密码学时,我甚至为了演示而实施了这个过程…:


使用这些类型的概率/马尔可夫模型的好处是,它们也能很好地容忍恰好在特定词典之外的单词,或者有拼写错误,或者是替代或古老形式的单词。

如果你能够标记字符串,你就差不多到家了。将其标记为空白、解释,并将单词与字典中的已知/常用单词哈希表进行比较。一个简单的启发式方法,例如50%匹配可能就足够了。当然,这只有在你知道明文语言的情况下才会起作用。如果你能标记字符串,你就快到家了。将其标记为空白、解释,并将单词与字典中的已知/常用单词哈希表进行比较。一个简单的启发式方法,例如50%匹配可能就足够了。当然,这只有在你知道明文语言的情况下才会起作用。这看起来很有趣,但它只适用于50个字符吗?考虑到不同的词,当接近时,会形成奇怪的三部曲,就像我上面的例子中的KSS。是的,它只适用于50个字符:试试看:人类的舌头是非常多余的。人们可以在每一个字母都被删除的地方阅读英语文本:人类语言的冗余意味着可以使用诸如
三角图频率。例如,要建立trigraph频率表,您需要一些意大利语语料库,最好是来自相应时代的语料库。阅读语料库并根据语料库构建频率表。你可以在网上找到大学语言学系的旧文本语料库,在这种情况下,可能是一些意大利语语料库……看起来很有趣,但它能用50个字符吗?考虑到不同的词,当接近时,会形成奇怪的三部曲,就像我上面的例子中的KSS。是的,它只适用于50个字符:试试看:人类的舌头是非常多余的。例如,人们可以在每一个字母都被删除的地方阅读英语文本:人类语言的冗余意味着可以使用诸如三角图频率之类的统计方法很容易地将其与胡言乱语区分开。例如,要建立trigraph频率表,您需要一些意大利语语料库,最好是来自相应时代的语料库。阅读语料库并根据语料库构建频率表。你可以从大学的语言学系找到旧文本的在线语料库,在这种情况下,可能是一些意大利语语料库。。。