algorithm - 寻找一个实验来评估关键字提取算法的好坏

标签 algorithm information-retrieval

我有一些算法可以提取关键字并对其进行排名 [包括术语和 bigrams ] 来自一段[大部分是基于tf-idf模型]。
我正在寻找实验来评估这些算法。这个实验应该给每个算法打分,表明“它有多好”[当然是在评估集上]。

我正在寻找一种自动/半自动方法来评估每个算法的结果,以及一种自动/半自动方法来创建评估集。

注意:这些实验将离线运行,因此效率不是问题。

最佳答案

执行此操作的经典方法是定义一组您希望算法在每个段落中查找的关键字,然后检查算法对这组关键字的处理情况,例如(generated_correct - generated_not_correct)/total_generated(见更新,这是废话)。一旦你定义了这个基本事实,这是自动的。我想当您谈论构建评估集时,构建这也是您想要自动化的?这有点棘手。

一般来说,如果有一种方法可以自动生成关键字,那么这是用作基本事实的好方法 - 您应该将其用作您的算法 ;)。听起来很厚颜无耻,但这是一个普遍的问题。当您使用另一种算法的输出来评估一种算法时,可能会出现问题(除非您特别想针对该算法进行基准测试)。

因此,您可能会开始从常见来源收集关键词。例如:

  • 下载包含关键字部分的科学论文。检查这些关键字是否确实出现在文本中,如果确实出现,则取出包含关键字的文本部分,将关键字部分用作基本事实。

  • 获取博客文章,检查标题中的术语是否出现在文本中,然后使用标题中的词(当然总是减去停用词)作为基本事实

  • ...

你明白了。除非您想雇人手动生成关键字,否则我想您将不得不使用类似上述的方法。

更新 上面提到的评估函数很愚蠢。它不包含已找到的可用 关键字的数量。相反,判断相关和不相关结果排名列表的方法是使用精确率和召回率。 Precision 奖励不相关结果的缺失,Recall 奖励相关结果的存在。这再次给你两个措施。为了将这两个组合成一个单独的度量,要么使用 F 度量,它将这两个度量组合成一个单独的度量,并带有一个可选的权重。或者,使用 Precision@X,其中 X 是您要考虑的结果数。有趣的是 Precision@X 等同于 Recall@X。但是,您在这里需要一个合理的 X,即如果在某些情况下您的关键字少于 X 个,则这些结果将因从未提供第 X 个关键字而受到惩罚。例如,在标签推荐的文献中,与您的情况非常相似,经常使用 F-measure 和 P@5。

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

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

关于algorithm - 寻找一个实验来评估关键字提取算法的好坏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8314868/

相关文章:

statistics - 如何在 mahout 中解释 IRStatisticsImpl 数据

javascript - 5x5 网格中所有可能的移动?

artificial-intelligence - 识别英语句子中无意义的成分

algorithm - 字符串旋转的杂耍算法

从中心开始用较小的矩形填充大矩形的算法

python - Python中precision、recall、f-score、AP、MAP的信息检索评价

twitter - 用于主题检测的推文之间的表示和良好的相似性度量

Java - 如何编写包含给定集合变量析取的正则表达式

c# - 如何在 C# 中获取所有可能的类组合

algorithm - 找到垂直于另一个向量的向量的好方法?