2016-10-25 2 views
0

Я использую сумку слов для классификации текста. Результаты не достаточно хороши, точность тестового набора ниже 70%.Использовать пометку в мешке слов

Одна из вещей, которую я рассматриваю, - использовать маркировку POS для различения функции слов. Как подойти к этому?

Я имею в виду на Append теги словам, например, слово «любовь», если он используется в качестве использования существительного:

love_noun 

и если это использование глагола:

love_verb 

ответ

1

Точность тестового набора около 70% не так уж плоха, если у вас есть сотни категорий. Возможно, вы захотите измерить общую точность и отзыв, а не точность.

Что вы предлагаете, звучит хорошо, что является дополнительным дополнением к дополнительным функциям. Вот несколько советов:

Сохраняйте свои оригинальные функции. То есть не заменяйте love на love_noun или love_verb. Вместо этого, у вас есть две функции, приходящие из love:

love, love_noun (or) 
love, love_verb 

Если вам нужен какой-то пример кода, вы можете начать с nltk пакета питона.

>>> from nltk import pos_tag, word_tokenize 
>>> pos_tag(word_tokenize("Love is a lovely thing")) 
[('Love', 'NNP'), ('is', 'VBZ'), ('a', 'DT'), ('lovely', 'JJ'), ('thing', 'NN')] 

Рассмотрим с использованием н-грамм, может быть, начиная с добавлением 2-грамм. Например, у вас могут быть «in» и «stock», и вы можете просто удалить «in», потому что это стоп-слово. Если вы рассмотрите 2 грамма, вы получите новую функцию:

in-stock 

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

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