У меня есть набор документов на двух языках: английском и немецком. В этих документах нет полезной метаинформации, программа может смотреть только на контент. Исходя из этого, программа должна решить, на каком из двух языков написан документ.
Есть ли какой-либо "стандартный" алгоритм для этой проблемы, который может быть реализован через несколько часов? Или, альтернативно, бесплатная библиотека .NET или инструментарий, который может это сделать? Я знаю о LingPipe, но это
- Java
- Не бесплатно для использования в "полу-коммерческих"
Эта проблема кажется удивительно трудной. Я проверил API Google AJAX Language API (который я нашел, сначала просматривая этот сайт), но это было смешно плохо. Для шести веб-страниц на немецком языке, на которые я указал, только одно предположение было правильным. Другие догадки были шведскими, английскими, датскими и французскими...
Простым подходом, который я придумал, является использование списка стоп-слов. Мое приложение уже использует такой список для немецких документов, чтобы проанализировать их с помощью Lucene.Net. Если мое приложение сканирует документы на наличие стоп-слов с любого языка, побеждает тот, у кого больше ошибок. Конечно, очень наивный подход, но он может быть достаточно хорошим. К сожалению, у меня нет времени, чтобы стать экспертом в области обработки на естественном языке, хотя это интересная тема.