Классификация текста на категории - PullRequest
6 голосов
/ 15 ноября 2011

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

Позвольте мне объяснить, что я хочу реализовать. (возьмите для примера)

Список слов:

  1. Java
  2. программирование
  3. язык
  4. с острыми

Список категорий.

  1. Java

здесь мы будем тренировать набор, как:

  1. Java-карты для категории 1. Java
  2. программирование карт для категории 1.java
  3. программирование карт для категории 2.c-sharp
  4. языковые карты для категории 1.java
  5. языковые карты для категории 2.c-sharp
  6. c-sharp карты категории 2.c-sharp

Теперь у нас есть фраза " Лучшая книга по Java-программированию " из данной фразы следующие слова соответствуют нашему «Списку слов»:

  1. Java
  2. программирование

«программирование» имеет две сопоставленные категории «java» и «c-sharp», поэтому это обычное слово.

«Java» отображается только в категорию «Java».

Таким образом, наша подходящая категория для фразы "java"

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

Ответы [ 3 ]

4 голосов
/ 15 ноября 2011

Конечно, это можно реализовать.Если вы обучаете наивный байесовский классификатор или линейный SVM в правильном наборе данных (я полагаю, названия книг по Java и C #), он должен научиться ассоциировать термин «Java» с Java, «C #» и «.NET» с C #и "программирование" с обоими.Т.е. наивный байесовский классификатор, скорее всего, узнает примерно равную вероятность Java или C # для общих терминов, таких как «программирование», если набор данных разделен равномерно.

1 голос
/ 15 ноября 2011

Простой способ реализовать это - использовать Lucene (или любой механизм индексации текста). Создайте один документ Lucene со всеми примерами "java" и другой документ с примерами "c #" и добавьте оба к индексу. Чтобы классифицировать новый документ, ИЛИ все термины в документе, выполнить запрос по индексу и получить категорию с наивысшим баллом.

0 голосов
/ 15 ноября 2011

Если возможно, прочитайте раздел «Наивный классификатор» в главе «Фильтрация документов» в книге «Программирование коллективного разума».Хотя примеры приведены на Python, я надеюсь, что это не доставит вам особых хлопот.

...