Есть ли какие-либо хорошие, механизмы с открытым исходным кодом там для обнаружения, какой язык текст находится в, возможно, с метрикой вероятности? Тот, который я могу выполнить локально и не запрашиваю Google или Bing? Я хотел бы обнаружить язык для каждой страницы приблизительно на 15 миллионах страниц текста OCR'ed.
Не все документы будут содержать языки, которые используют Латинский алфавит.
В зависимости от того, что вы делаете, вы можете захотеть проверить python Natural Language Processing Toolkit (NLTK), который имеет некоторую поддержку алгоритмов Байесовского обучения.
В целом, частота букв и слов, вероятно, будет самой быстрой оценкой, но NLTK (или алгоритм байесовского обучения в целом), вероятно, будет полезен, если вам нужно сделать что-то помимо идентификации языка. Байесовские методы, вероятно, также будут полезны, если вы обнаружите, что первые два метода имеют слишком высокий коэффициент ошибок.
Я не думаю, что вам нужно что-то очень сложное - например, чтобы определить, написан ли документ на английском языке, с довольно высокой степенью уверенности, просто проверьте, содержит ли он N наиболее распространенных английских слова - что-то вроде:
"the a an is to are in on in it"
Если он содержит все это, я бы сказал, что это почти наверняка английский.
Для справки в будущем, я использовал движок libtextcat, который находится под лицензией BSD, но, похоже, не поддерживается с 2003 года. Тем не менее, это хорошо работа и легко интегрируется в мой набор инструментов
Вы, конечно, можете создать свой собственный, учитывая некоторую статистику о частотах букв, частотах диграфов и т.д. ваших целевых языков.
Затем выпустите его как открытый исходный код. И вуаля, у вас есть движок с открытым исходным кодом для определения языка текста!