Слово n-граммы, как правило, будет более полезным для большинства приложений анализа текста, о которых вы упомянули, с возможным исключением определения языка, где что-то вроде символьных триграмм может дать лучшие результаты. По сути, вы должны создать n-граммовый вектор для корпуса текста на каждом языке, который вы хотите обнаружить, а затем сравнить частоты триграмм в каждом корпусе с триграммами в документе, который вы классифицируете. Например, триграмма the
, вероятно, появляется на английском языке гораздо чаще, чем на немецком, и обеспечит некоторый уровень статистической корреляции. Если у вас есть документы в формате n-граммы, у вас есть выбор из множества алгоритмов для дальнейшего анализа, фильтров Байса, N-ближайшего соседа, машин опорных векторов и т. Д.
Из приложений, о которых вы упоминаете, машинный перевод, вероятно, является наиболее надуманным, поскольку только n-граммы не приведут вас слишком далеко на путь. Преобразование входного файла в n-граммное представление - это просто способ перевести данные в формат для дальнейшего анализа возможностей, но, поскольку вы теряете много контекстной информации, она может оказаться бесполезной для перевода.
Следует обратить внимание на то, что недостаточно создать вектор [1,1,1,2,1] для одного документа и вектор [2,1,2,4] для другого документа , если размеры не совпадают. То есть первая запись в векторе не может быть the
в одном документе и is
в другом, иначе алгоритмы не будут работать. Вы получите такие векторы, как [0,0,0,0,1,1,0,0,2,0,0,1], так как большинство документов не будет содержать большинство интересующих вас n-грамм. Эта подкладка Важное значение имеет набор функций, и он требует от вас «заранее» решить, какие нграммы вы будете включать в свой анализ. Часто это реализуется в виде двухпроходного алгоритма, чтобы сначала определить статистическую значимость различных n-грамм, чтобы решить, что сохранить. Google "выбор функций" для получения дополнительной информации.
n-граммы на основе слов и вспомогательные векторные машины - отличный способ выполнить выбор темы, но для обучения классификатора необходим большой объем текста, предварительно классифицированный как «по теме» и «не по теме». На сайте, подобном citeseerx , вы найдете большое количество научных статей, объясняющих различные подходы к этой проблеме. Я бы не рекомендовал евклидово дистанционное приближение к этой проблеме, так как он не взвешивает отдельные n-граммы на основе статистической значимости, поэтому два документа, которые включают the
, a
, is
и of
, будут считается лучшим совпадением, чем два документа, которые оба включали Baysian
. Удаление стоп-слов из ваших n-грамм интереса могло бы несколько улучшить это.