Двоичная функция извлечения
Я новичок в извлечении функций для обработки естественного языка. Я хочу знать, как я могу использовать хэш-карту для извлечения функций для текста. Если каждая функция является "ключом" в hashmap, а ее значение является "значением" (все функции являются двоичными, 0 или 1), означает ли это, что мне нужно иметь n hashmap (n - количество слов в тексте)? Потому что для каждого слова мне нужно извлечь особенности.
Я прав?
Заранее спасибо Алиса
1 ответ
Да, вы можете реализовать это с помощью хэш-карты, однако, в зависимости от количества функций и ваших требований к памяти, это может быть не самая лучшая или самая быстрая структура данных, это действительно зависит от вашего домена. Как правило, представление функций как существующих или не даст плохих результатов. Лучшим методом является использование TF-IDF при взвешивании ваших функций.
Подход, о котором вы говорите, является подходом "мешка слов". Здесь вы можете разбить документ на основе границ слов и использовать слова в качестве функций. В качестве первого прохода вы должны удалить стоп-слова (то есть "a", "and", "the") и затем нормализовать ваши данные (то есть сейчас == сейчас == nOw). Затем вы можете выполнить перенос слов, чтобы уменьшить размер вектора.
Хороший способ преуменьшить сейчас, чтобы извлечь функции, это взглянуть на MALLET. У меня есть очень простая реализация Наивного Байеса с парсером для RCV-1, который вы можете посмотреть на примере Наивного Байеса