Классификация текста + НЛП + Интеллектуальный анализ данных + Наука о данных: Стоит ли мне прекратить удаление слов и использование слов перед применением tf-idf? - PullRequest
0 голосов
/ 03 октября 2018

Я работаю над проблемой классификации текста.Проблема объясняется ниже:

У меня есть набор данных событий, который содержит три столбца - имя события, описание события, категория события.В наборе данных содержится около 32 категорий, таких как путешествия, спорт, образование, бизнес и т. Д. Я должен классифицировать каждое событие по категории в зависимости от его названия и описания.

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

Если слово «футбол» встречается либо в названии, либо в описании, либо в обоих словах, весьма вероятно, что это событие о спорте.

ЕслиСлово «треккинг» встречается либо в названии, либо в описании, либо в обоих словах, и вполне вероятно, что это событие о путешествии.

Мы не рассматриваем несколько категорий для события (однако это план на будущее!!)

Я надеюсь, что применение tf-idf до того, как Multinomial Naive Bayes приведет к достойному результату для этой проблемы.У меня вопрос:

Стоит ли мне прекратить удаление слов и использование слов перед применением tf-idf или я должен применить tf-idf только к необработанному тексту?Здесь текст означает записи в названии столбца события и описания.

1 Ответ

0 голосов
/ 04 октября 2018

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

Должен ли я прекратить удаление слова

Да .Посмотрите на this , чтобы увидеть наиболее часто встречающиеся слова в английском языке.Как вы можете видеть, они не имеют смыслового значения и, следовательно, не будут способствовать решению предложенной вами задачи классификации.если stopwords является списком, содержащим стоп-слова, параметр stop_words=stopwords, переданный конструктору CountVectorizer или TfidfVectorizer, автоматически исключит стоп-слова при вызове метода .fit_transform().

Если ясделать stemming

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

Я надеюсь, что применение tf-idf до того, как Multinomial Naive Bayes приведет к достойному результату для этой проблемы

Осторожнее с этим .Хотя tf-idf на практике работает с наивными байесовскими классификаторами, это не тот способ, которым должен использоваться конкретный классификатор.Из документации , The multinomial distribution normally requires integer feature counts. However, in practice, fractional counts such as tf-idf may also work. В ваших интересах сначала выполнить задачу классификации с помощью CountVectorizer и набрать ее, а после того, как у вас будет базовая точность для оценки TfidfVectorizer, проверьте, соответствует ли еерезультаты лучше или хуже, чем у CountVectorizer.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...