2013-05-22 5 views
4

Практически все примеры основаны на числах. В текстовых документах у меня есть слова вместо цифр.Как классифицировать текстовые документы с использованием SVM и KNN

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

мне не нужен пример кода, но только логика

ПСЕВДОКОД поможет значительно

+0

Просто быстрый вопрос. Когда вы имеете в виду, что большинство примеров основаны на числах, вы ссылаетесь на то, что элементы (документы в вашем случае) представлены в виде вектора, такого как (1, 0.77, 0.4, ...), правильно? – miguelmalvarez

ответ

9

Общий подход заключается в использовании мешок слов модели (http://en.wikipedia.org/wiki/Bag_of_words_model), где классификатор бы узнать наличие слов текст, это просто, но работает на удивление хорошо.

Кроме того, здесь есть аналогичный вопрос: Prepare data for text classification using Scikit Learn SVM

+0

Я полагаю, что это может быть очень неэффективным, поскольку могут быть сотни тысяч слов, я неверен? – MonsterMMORPG

+0

@MonsterMMORPG Не обязательно, поскольку не все слова имеют одинаковую релевантность, вы можете игнорировать короткие слова (менее трех символов) и, возможно, более длинные (> 10) и менее частотные. Также вектор 400 - 600 слов должен быть хорошим и дать вам достойную производительность. – Pedrom

+1

Описание, описанное @Pedrom, называется выбором функции, в котором вы выбираете наиболее типичные термины. Конкретный метод, который он объясняет, - это выбор функции, основанный на частоте документа, что является очень простым (хотя и очень мощным) способом ограничения обрабатываемой вами информации с целью повышения эффективности и, в некоторых случаях, эффективности (качества). Однако я не согласен со ссылкой на количество функций. Это зависит в значительной степени от коллекции, но я бы сказал, что вам потребуется от 1000 до 3000 функций для лучшей производительности, и я советую вам попробовать несколько конфигураций. – miguelmalvarez

3

Вы представляете термины, которые появляются в документах, как вес в векторе, где каждая позиция индекса является «весом» термина. Например, если мы примем документ «мир привет», и мы связали позицию 0 с важностью «привет» и позиции 1 с важностью мира, и мы измеряем важность как количество раз, когда термин появляется, документ рассматривается как d = (1, 1).

В то же время документ, указывающий только «привет», будет (1, 0).

Это представление может быть основано в любой мере на важность терминов в документах, являющихся терминами частоты (как предложено @Pedrom) самым простым вариантом. Наиболее распространенным, но достаточно простым методом является применение TF-IDF, который сочетает в себе то, насколько распространен термин в документе и насколько он редко встречается в коллекции.

Я надеюсь, что это помогает,

+0

да я тоже планирую tf idf спасибо – MonsterMMORPG

0

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

Смежные вопросы