Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/310.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

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
Python 返回给定字符串的语言的最佳方法_Python_Algorithm_String - Fatal编程技术网

Python 返回给定字符串的语言的最佳方法

Python 返回给定字符串的语言的最佳方法,python,algorithm,string,Python,Algorithm,String,更具体地说,我试图检查给定的字符串(一个句子)是否是土耳其语 我可以检查字符串是否有土耳其语字符,如Ş、Ü、Ö、Ğ等。但是这不是很可靠,因为在我收到字符串之前,这些字符可能会转换为C、s、U、O、G 另一种方法是用100个最常用的土耳其语单词,检查句子中是否包含这些单词中的任何一个/部分。我可以将这两种方法结合起来,使用点系统 你认为用Python解决我的问题最有效的方法是什么 相关问题:(Perl,谷歌翻译API)一种选择是使用贝叶斯分类器,如。牧师的主页为天真的语言检测器提供了以下建议: f

更具体地说,我试图检查给定的字符串(一个句子)是否是土耳其语

我可以检查字符串是否有土耳其语字符,如Ş、Ü、Ö、Ğ等。但是这不是很可靠,因为在我收到字符串之前,这些字符可能会转换为C、s、U、O、G

另一种方法是用100个最常用的土耳其语单词,检查句子中是否包含这些单词中的任何一个/部分。我可以将这两种方法结合起来,使用点系统

你认为用Python解决我的问题最有效的方法是什么


相关问题:(Perl,谷歌翻译API)

一种选择是使用贝叶斯分类器,如。牧师的主页为天真的语言检测器提供了以下建议:

from reverend.thomas import Bayes
guesser = Bayes()
guesser.train('french', 'le la les du un une je il elle de en')
guesser.train('german', 'der die das ein eine')
guesser.train('spanish', 'el uno una las de la en')
guesser.train('english', 'the it she he they them are were to')
guesser.guess('they went to el cantina')
guesser.guess('they were flying planes')
guesser.train('english', 'the rain in spain falls mainly on the plain')
guesser.save('my_guesser.bay')

使用更复杂的代币集进行培训将增强效果。有关贝叶斯分类的更多信息,以及。

我以前使用过的一种简单统计方法:

以您想要检测的语言获取相当数量的样本训练文本。把它分成三元图,例如

三联图中的“Hello foobar”是: ‘Hel’、‘ell’、‘llo’、‘lo’、‘OF’、‘fo’、‘foo’、‘oob’、‘oba’、‘bar’

对于所有的源数据,统计每个三元图的出现频率,大概是在一个dict中,其中key=trigram,value=frequency。如果你愿意的话,你可以把这个限制在前300个最常见的三个字母的组合中。把口授书腌到某个地方去

要判断新的文本样本是否使用相同的语言编写,请对样本文本重复上述步骤。现在,你所要做的就是计算样本三角图频率和训练三角图频率之间的相关性。你需要用它来选择一个阈值相关性,上面你愿意考虑输入土耳其语。 这种方法已经被证明是高度精确的,击败了更复杂的方法,参见

使用三叉图可以解决使用单词列表的问题,因为在任何给定的语言中都有大量的单词,特别是给定不同的语法排列。我试着寻找常用词,问题是它们经常对其他语言给出错误的肯定,或者它们本身有很多排列。统计方法不需要大量存储空间,也不需要复杂的解析。顺便说一句,这种方法只适用于使用拼音书写系统的语言,如果使用表意语言(即汉语、日语、韩语)的语言,效果很差


或者,维基百科在

中有一个关于土耳其语的部分,为什么不使用现有的拼写检查库呢?
对几种语言进行拼写检查,选择错误计数最低的语言。

Duplicate:@S.Lott:我已经添加了问题的链接。