Вопрос

Есть ли способ (программа, библиотека) приблизительно узнать, на каком языке написан документ?

У меня есть куча текстовых документов (~ 500 тыс.) на смешанных языках для импорта в CMS с поддержкой i18n (Drupal)..

Мне не нужны идеальные совпадения, только некоторые догадки.

Это было полезно?

Решение

Есть довольно простой способ сделать это, учитывая, что у вас есть корпусные данные на всех разных языках, которые вам нужно идентифицировать. Это называется n-граммовое моделирование. Я думаю, что Lingua :: Identify делает это уже, тем не менее, так что это ваша лучшая ставка, а не ваша собственная.

Другие советы

Я бы сказал, что вам лучше всего искать ключевые слова - статьи и тому подобное - которые уникальны для языков, которые вы ищете. & Quot; Un & Quot; например, будет отображаться как на испанском, так и на французском языке, но «не так»; является определенно французским, тогда как «unos», например, определенно испанским. Диакритические знаки тоже полезны - вы увидите " & # 241; " на испанском и, возможно, на португальском "quot; & # 231;" на французском и некоторых других ... такого рода вещи.

edit - решение Павла, вероятно, лучшее; похоже, он использует методы, как я обрисовал, плюс несколько дополнительных.

Запустив в Google поиск по запросу определить язык документа " Я нашел много разных сайтов, которые вам помогут. Третья ссылка на первой странице привела меня к функции в Google Code API - это именно то, что вам нужно.

Google Translation API - это круто и имеет интерфейс REST. Но мне нужно отправить БОЛЬШОЙ БОЛЬШОЙ документ (да, я мог бы использовать выдержку), и, даже если Google - Google, я не думаю, что это справедливым.

Документ также не мой, и я спросил бы моего клиента, можно ли отправить их третьему лицу (даже если рано или поздно G получит их;)).

Я думаю, что я пойду по пути Perl ...

Кажется, для этого есть Perl-модуль: Лингва::Идентифицировать

Пол.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top