Поиск эксперимента для оценки эффективности алгоритма извлечения ключевых слов - PullRequest
4 голосов
/ 29 ноября 2011

У меня есть несколько алгоритмов, которые извлекают и ранжируют ключевые слова [оба термина и биграммы ] из абзаца [большинство основано на модели tf-idf ].
Я ищу эксперимент для оценки этих алгоритмов. Этот эксперимент должен дать оценку каждому алгоритму с указанием «насколько он был хорош» [на оценочном наборе, конечно].

Я ищу автоматический / полуавтоматический метод для оценки результатов каждого алгоритма и автоматический / полуавтоматический метод для создания оценочного набора.

Примечание: Эти эксперименты будут проводиться в автономном режиме, поэтому эффективность не является проблемой.

1 Ответ

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

Классический способ сделать это - определить набор ключевых слов, которые вы хотите алгоритмы найти для каждого абзаца, а затем проверить, насколько хорошо алгоритмы справляются с этим набором, например, (генерируется_правильно - генерировано_не правильно) / total_generated (см. обновление, это нонсенс). Это автоматически, как только вы определили эту основную истину. Я полагаю, что это то, что вы хотите автоматизировать, когда говорите о создании оценочного набора? Это немного сложнее.

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

Так что вы можете начать собирать ключевые слова из общих источников. Например:

  • Загрузить научные статьи, в которых есть раздел с ключевыми словами. Проверьте, действительно ли эти ключевые слова появляются в тексте, если они есть, возьмите раздел текста, включающий ключевые слова, используйте раздел ключевых слов как основную правду.

  • Получать сообщения в блоге, проверять, присутствуют ли термины в заголовке в тексте, а затем использовать слова в названии (всегда минус, конечно, стоп-слова) в качестве основной истины

  • ...

Вы поняли идею. Если вы не хотите нанимать людей для генерации ключевых слов вручную, я полагаю, вам придется обходиться чем-то вроде описанного выше.

Обновление Функция оценки, упомянутая выше, глупа. Он не включает, сколько из доступных ключевых слов было найдено. Вместо этого, способ оценить ранжированный список релевантных и нерелевантных результатов состоит в том, чтобы использовать точность и отзыв. Точность вознаграждает за отсутствие не относящихся к делу результатов, Напомним, вознаграждает за наличие соответствующих результатов. Это снова дает вам две меры. Чтобы объединить эти два параметра в одну меру, используйте либо F-меру, которая объединяет эти две меры в одну меру с необязательным взвешиванием. Либо используйте Precision @ X, где X - количество результатов, которые вы хотите рассмотреть. Точность @ X интересно эквивалентна Recall @ X. Однако здесь вам нужен разумный X, т. Е. Если в некоторых случаях у вас меньше ключевых слов X, эти результаты будут наказаны за то, что они никогда не предоставят ключевое слово Xth. Например, в литературе по рекомендации тегов, которая очень похожа на ваш случай, часто используются F-мера и P @ 5.

http://en.wikipedia.org/wiki/F1_score

http://en.wikipedia.org/wiki/Precision_and_recall

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