创建用于语言识别的算法

Creating an algorithm for language identification

提问人:Кызжибек Орозбекова 提问时间:10/26/2023 更新时间:10/27/2023 访问量:51

问:

谁知道类似的算法来寻找一种逻辑与这种语言相似的语言? 语用识别算法:该算法的主要思想是比较原始文本的压缩与文本翻译成不同语言的压缩之间的差异。该算法的步骤是怎样的:

取一个简短的文本 T,可以翻译成多种语言,并将 Ti 的翻译保存为每种语言。 确定长度 |zip(Ti)|每个 Ti 使用 ZIP 压缩算法的压缩文件。 将正在研究的文本 X 附加到每个译文中。您将获得一组 Ti+X 形式的字符串。 算法选择差异为|zip(Ti+X)|- |ti(Ti)|是最小的,即 Ti+X 以最佳 way.pt 压缩

我试图找到类似的来源,但我没有找到它们。

Java 算法 ZIP 检测

评论

1赞 Dave Newton 10/26/2023
这不是语言识别,而是压缩大小比较。您可能知道这种语言是副作用。您真的想要语言识别(似乎是切线的),还是在问如何比较文件大小?
0赞 Hans Olsson 10/27/2023
维基百科(en.wikipedia.org/wiki/Language_identification)将比较压缩大小作为识别语言的方法;再看,它可能是一种次优方法,没有人敢从那篇文章中删除它

答:

0赞 Spektre 10/27/2023 #1

您提出的建议是不可靠的,因为压缩方案必须保持不变,这是不保证的(您可以随时更新 zip 实用程序,这可能会破坏您的算法)我认为这仅适用于基于霍夫曼编码(或类似基于字母概率)的编码,因此 ZIP 不是很好的匹配,因为使用使用字母组合的 Lharc。

简单的语言识别通常是通过比较字符直方图来完成的。

每种语言的“beletry”文本都有自己的每个字符出现的概率分布,因此您需要足够长的输入文本(不需要每种语言的文本相同)并计算字母表中每个字符出现的概率,并将此数据用作每种语言的参考。

然后,对于未知文本,计算相同的文本,并计算它与已知语言之间的距离,以最接近的语言为准......

请注意,与 beletry 或诗歌或其他任何东西相比,技术文献可能具有不同的概率......因此,最好从相同类型的文献中计算参考概率。

这通常用于密码学中,以快速破解基于替换的密码(基于字母的概率,您的替换组合要少得多,因此蛮力将得到缓解(26 个指数)通常会(疯狂猜测)基于语言。O(26^26)~3..10

在这种情况下,可能会有更多距离相似的语言,您可以添加字典比较(很少有非常常见的单词,并像在英语中一样搜索它们以区分此类语言)a,an,the,and