Вы могли также использовать sqltools, , который предпочитают некоторые мои коллеги. Я никогда не привыкал к нему, но выгляжу мощным.
Определение языка - это довольно сложная задача.
Некоторые языки гораздо легче обнаружить, чем другие, просто из-за используемых диакритических знаков и диграфов / триграфов. Например, двойное заострение используется почти исключительно в венгерском языке. i 'ı' без точки используется исключительно [я думаю] в турецком языке, t-запятая (не t-cedilla) используется только в румынском языке, а eszett 'ß' встречается только в немецком.
. Некоторые диграфы, триграфы и тетраграфы также являются хорошим подарком. Например, вы, скорее всего, найдете «eeuw» и «ieuw» в основном на голландском языке, а «tsch» и «dsch» - в основном на немецком и т. Д.
Больше бесплатных подарков будет включать общие слова или общие префиксы / суффиксы, используемые в конкретный язык. Иногда даже используемая пунктуация может помочь определить язык (стиль цитаты и использование,
Здесь у вас есть простой детектор, основанный на статистике биграмм (в основном это означает изучение большого набора биграмм, которые встречаются чаще на каждом языке, а затем их подсчет в части текста по сравнению с предыдущими обнаруженные значения):
http://allantech.blogspot.com/2007/07/automatic-language-detection.html
Вероятно, этого достаточно для многих (большинства?) приложений и не требуется доступ в Интернет .
Конечно, он будет работать хуже, чем алгоритм Google или Bing (который сам по себе не очень хорош). Если вам нужна отличная производительность обнаружения, вам придется проделать как много тяжелой работы, так и над огромными объемами данных.
Другой вариант - использовать Google или API Bing, если у вашего приложения есть доступ в Интернет.
Вам понадобится алгоритм машинного обучения, основанный на скрытых цепочках Маркова, обрабатывающий кучу текстов на разных языках.
Затем, когда дело доходит до неопознанного текста, языка, на котором есть более близкий «счет» - победитель.
Существует простой инструмент для определения языка текста: http://www.detectlanguage.com/
Я обнаружил, что "textcat" очень полезен для этого. Я использовал реализацию PHP, PHP Text Cat , основанную на этой исходной реализации , и нашел ее надежной. Если вы посмотрите исходники, то обнаружите, что это не так уж и сложно реализовать на любом языке по вашему выбору. Тяжелая работа - комбинации букв, относящиеся к определенному языку - все здесь как данные.