(человеческий) язык документа
Существует ли способ (программа, библиотека) приблизительно знать, на каком языке написан документ?
У меня есть куча текстовых документов (~500K) на смешанных языках для импорта в CMS с поддержкой i18n (Drupal)..
Мне не нужны идеальные совпадения, только некоторые догадки.
5 ответов:
Существует довольно простой способ сделать это, учитывая, что у вас есть корпусные данные на всех различных языках, которые вам нужно будет идентифицировать. Это называется N-граммных моделей. Я думаю, что Lingua:: Identify уже делает это, так что это ваш лучший выбор, а не реализация вашего собственного.
Я бы сказал, что лучше всего искать ключевые слова-статьи и тому подобное-которые уникальны для языков, которые вы ищете. Например, "Un "будет отображаться как на испанском, так и на французском языках, но" une "является идентифицируемым французским, тогда как" unos", например, является идентифицируемым испанским. Диакритика тоже полезна - вы увидите " - "на испанском и, возможно, португальском языках," - " на французском и некоторые другие... такого рода вещи.
Edit-решение пола, вероятно, лучшее; похоже, оно использует методы, подобные тем, что я описал, плюс несколько дополнительных.
Запустив поиск в Google для " Определить язык документа" я нашел много различных сайтов, которые помогут вам. Третья ссылка на первой странице в конечном итоге привела меня к функции в Google Code API, которая именно то, что вам нужно.
Google Translation API-это круто,и имеет интерфейс REST. Но мне нужно отправить ему много больших документов (да, я мог бы использовать отрывок), и даже если Google-это Google, я не думаю, что это справедливый.
Документы также не мои, и я спрашиваю своего клиента, можно ли отправить их третьей стороне (даже если вскоре или позже G получит их ;)).
Я думаю, что пойду по пути Perl...
Для этого, кажется, есть модуль Perl: Lingua:: Identify
Пол.