Классификация текста в Python - (на основе предложений NLTK)

Мне нужно классифицировать текст, и я использую для этого модуль Python Text blob. Я могу использовать либо наивный байесовский классификатор / дерево решений. Меня беспокоят указанные ниже моменты.

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

2) Поскольку классификация будет либо аргументом, либо не аргументом, какой классификатор даст точные результаты? Это Наивный Байес / Дерево решений / Позитивный Наивный Байес?

Заранее спасибо.


person sreram    schedule 20.04.2014    source источник


Ответы (1)


В идеале it is said that the more you train your data, the 'better' your results, но это действительно зависит от того, как вы его протестировали и сравнили с реальными результатами, которые вы подготовили.

Итак, чтобы ответить на ваш вопрос, обучение модели с помощью ключевых слов может дать вам слишком общие результаты, которые могут не быть аргументами. Но на самом деле вы должны сравнить это с чем-то, поэтому я предлагаю вам также обучить свою модель некоторой структуре предложения, которой, кажется, следуют аргументы (какой-то шаблон), это может устранить те, которые не являются аргументами. Опять же, сделайте это, а затем проверьте его, чтобы увидеть, получите ли вы более высокую точность, чем предыдущая модель.

Чтобы ответить на ваш следующий вопрос: какой подход был бы наилучшим с точки зрения точности классификации текста и времени на извлечение? Это действительно зависит от данных, которые вы используете, я не могу ответить на этот вопрос, потому что вам нужно выполнить перекрестную проверку, чтобы увидеть, достигает ли ваша модель высокой точности. Очевидно, что чем больше функций вы ищете, тем хуже работает ваш алгоритм обучения. И если вы имеете дело с гигабайтами текста для анализа, я предлагаю использовать Mapreduce для выполнения этой работы.

Возможно, вы захотите проверить SVM в качестве модели обучения, протестировать ее с помощью моделей обучения (наивный байес, положительный наивный байес и деревья решений) и посмотреть, какая из них работает лучше.

Надеюсь это поможет.

person macmania314    schedule 18.04.2015