Ответ 1
Word n-gram, как правило, будут более полезны для большинства приложений для текстового анализа, о которых вы упомянули, за возможным исключением определения языка, где нечто вроде символьных триграмм может дать лучшие результаты. Эффективно, вы бы создали вектор n-грамм для тела текста на каждом языке, который вас интересует, и затем сравните частоты триграмм в каждом корпусе с триграммами в документе, который вы классифицируете. Например, триграмма the
, вероятно, появляется гораздо чаще на английском языке, чем на немецком, и обеспечит некоторый уровень статистической корреляции. После того, как у вас есть документы в формате n-gram, у вас есть выбор для многих алгоритмов для дальнейшего анализа, Baysian Filters, N Nearest Neighbor, Support Vector Machines и т.д.
Из упомянутых вами приложений машинный перевод, вероятно, самый надуманный, поскольку только n-граммы не приведут вас очень далеко по пути. Преобразование входного файла в представление n-gram - это всего лишь способ поместить данные в формат для дальнейшего анализа функций, но по мере того, как вы теряете много контекстуальной информации, это может быть не полезно для перевода.
Одна вещь, на которую следует обратить внимание, заключается в том, что недостаточно создать вектор [1,1,1,2,1] для одного документа и вектор [2,1,2,4] для другого документа, если размеры не совпадают. То есть первая запись в векторе не может быть the
в одном документе и is
в другом, или алгоритмы не будут работать. Вы завершите работу с такими векторами, как [0,0,0,0,1,1,0,0,2,0,0,1], так как большинство документов не будут содержать больше n-граммов, которые вас интересуют. Эта "подкладка" а также требует, чтобы вы заранее определили, какие ngrams вы будете включать в свой анализ. Часто это реализуется как двухпроходный алгоритм, чтобы сначала решить статистическую значимость различных n-граммов, чтобы решить, что сохранить. Google 'feature selection' для получения дополнительной информации.
Основанные на словах n-граммы плюс поддержка векторных машин в отличном способе для определения темы, но для подготовки классификатора вам нужен большой корпус текста, предварительно классифицированный по теме "по теме" и "вне темы". Вы найдете большое количество исследовательских работ, объясняющих различные подходы к этой проблеме на сайте, например citeseerx. Я бы не рекомендовал эвклидово-дистанционный подход к этой проблеме, так как он не взвешивает отдельные n-граммы на основе статистической значимости, поэтому два документа, которые включают в себя the
, a
, is
и of
, будут считалось лучшим совпадением, чем два документа, которые включали Baysian
. Удаление стоп-слов из ваших n-грамм интереса немного улучшило бы это.