Компенсация разницы в размерах категории N-граммовой категории - PullRequest
1 голос
/ 17 мая 2011

В последнее время меня интересует классификация текста и языковая классификация, основанная на статье Кавнара и Тренкля "N-Gram-based Text Категоризация", а также на других связанных источниках.

Для классификации языков я нашел этот метод очень надежным и полезным. Размер документов, используемых для создания частотных профилей N-грамм, довольно не важен, поскольку они «достаточно длинные», поскольку я просто использую самые распространенные n N-грамм из документов.

С другой стороны, хорошо функционирующая классификация текста ускользает от меня. Я пробовал как с моими собственными реализациями различных вариантов алгоритмов под рукой, так и без различных настроек, таких как взвешивание idf и реализации других людей. Это работает довольно хорошо, пока я могу генерировать частотные профили примерно одинакового размера для справочных документов категории, но в тот момент, когда они начинают слишком сильно различаться, все разваливается, и категория с самым коротким профилем заканчивается непропорционально количество документов, присвоенных ему.

Теперь мой вопрос. Каков предпочтительный метод компенсации этого эффекта? Это, очевидно, происходит потому, что алгоритм предполагает максимальное расстояние для любой данной N-граммы, равное длине частотного профиля категории, но по какой-то причине я просто не могу понять, как это исправить. Одна из причин, по которой меня интересует это исправление, заключается в том, что я пытаюсь автоматизировать создание профилей категорий на основе документов с известной категорией, длина которых может варьироваться (и даже если они имеют одинаковую длину, профили могут оказаться разной длины). Есть ли в этом "лучшее решение"?

Ответы [ 2 ]

1 голос
/ 14 апреля 2013

Если вы все еще заинтересованы, и, если я правильно понимаю ваш вопрос, ответом на вашу проблему будет нормализация ваших частот в n-граммах.

Самый простой способ сделать это для каждого документа - подсчитать общую частоту всех n-грамм в вашем документе и разделить каждую частоту n-грамм на это число. В результате каждый весовой коэффициент n-грамма теперь относится к проценту от общего содержания документа, независимо от общей длины.

Использование этих процентов в ваших метриках расстояния приведет к уменьшению размера документов и вместо этого сосредоточится на фактическом составе их содержимого.

Также стоит отметить, что представление n-граммы составляет лишь очень небольшую часть всего решения по категоризации. Вы также можете рассмотреть возможность использования размерного сокращения, различных весовых метрик индекса и, очевидно, разных алгоритмов классификации.

Смотрите здесь пример использования n-граммы в классификации текста

1 голос
/ 17 мая 2011

Как я знаю, задача состоит в том, чтобы подсчитать вероятность генерации некоторого текста по языковой модели М.

Недавно я работал над измерением читаемости текстов, используя семантические, синтаксические и лексические свойства.Это также может быть измерено подходом языковой модели.

Чтобы ответить правильно, вы должны рассмотреть следующие вопросы:

Используете ли вы метод логарифмического правдоподобия?

Какие уровни N-граммов вы используете?Униграмма диграмма или более высокий уровень?

Насколько велики языковые корпуса, которые вы используете?

Используя только диграммы и униграммы, мне удалось классифицировать некоторые документы с хорошими результатами.Если ваша классификация слабая, подумайте о создании большого языкового корпуса или использовании n-граммов более низких уровней.

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

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

...