Как обнаружить язык

Есть ли какие-либо хорошие, механизмы с открытым исходным кодом там для обнаружения, какой язык текст находится в, возможно, с метрикой вероятности? Тот, который я могу выполнить локально и не запрашиваю Google или Bing? Я хотел бы обнаружить язык для каждой страницы приблизительно на 15 миллионах страниц текста OCR'ed.

Не все документы будут содержать языки, которые используют Латинский алфавит.

12
задан Martin Thoma 13 August 2017 в 13:15
поделиться

4 ответа

В зависимости от того, что вы делаете, вы можете захотеть проверить python Natural Language Processing Toolkit (NLTK), который имеет некоторую поддержку алгоритмов Байесовского обучения.

В целом, частота букв и слов, вероятно, будет самой быстрой оценкой, но NLTK (или алгоритм байесовского обучения в целом), вероятно, будет полезен, если вам нужно сделать что-то помимо идентификации языка. Байесовские методы, вероятно, также будут полезны, если вы обнаружите, что первые два метода имеют слишком высокий коэффициент ошибок.

8
ответ дан 2 December 2019 в 18:17
поделиться

Я не думаю, что вам нужно что-то очень сложное - например, чтобы определить, написан ли документ на английском языке, с довольно высокой степенью уверенности, просто проверьте, содержит ли он N наиболее распространенных английских слова - что-то вроде:

"the a an is to are in on in it"

Если он содержит все это, я бы сказал, что это почти наверняка английский.

2
ответ дан 2 December 2019 в 18:17
поделиться

Для справки в будущем, я использовал движок libtextcat, который находится под лицензией BSD, но, похоже, не поддерживается с 2003 года. Тем не менее, это хорошо работа и легко интегрируется в мой набор инструментов

4
ответ дан 2 December 2019 в 18:17
поделиться

Вы, конечно, можете создать свой собственный, учитывая некоторую статистику о частотах букв, частотах диграфов и т.д. ваших целевых языков.

Затем выпустите его как открытый исходный код. И вуаля, у вас есть движок с открытым исходным кодом для определения языка текста!

2
ответ дан 2 December 2019 в 18:17
поделиться
Другие вопросы по тегам:

Похожие вопросы: