3

假设D是一个文本文档,并且

K = < k1, ..., kN >

表示文档中包含的一组术语。例如:

D = "What a wonderful day, isn't it?"
K = <"wonderful","day">

我的目标是查看文档是否将D所有单词K作为一个整体进行讨论。例如:

D = "The Ebola in Africa is spreading at high speed"
K = <"Ebola","Africa">

D与 密切相关的情况K,而:

D = "NEWS 1: Ebola is a dangerous disease that is causing thousands of deaths. Many governments are taking precautions to prevent its spread. NEWS 2: population in Africa is increasing."
K = <"Ebola","Africa">

是一个D与 无关的案例K,因为“Ebola”和“Africa”在文件的不同点、分开的句子中被提及,并且不相关。

我如何综合 to 的“相关性”这个D概念K?现有技术中是否有一些可以利用的技术?

谢谢。

4

2 回答 2

3

向量空间模型可能是您正在寻找的。

您可以将 D 转换为与 K 相同的格式,一个单词列表,例如 <"What"、"a"、"wonderful"、"day"、"isn't" "it">。这是由称为标记器的东西完成的。

在此之后,您可以删除没有意义的无用词,例如“and”、“the”、“it”等。要删除的词称为停用词,存储在停用词列表中。

您还应该将所有单词转换为小写(甚至大写),这样“What”和“what”就不会被归类为不同的单词。

在此之后,文档可以表示为单词列表及其频率(看看倒排索引)。

计算文档 (D) 和查询 (K) 之间的余弦相似度。

于 2015-03-31T23:24:26.580 回答
1

可以有两种方法来解决这个问题。一个是仅适用于这种情况的简单的,另一个是更通用的。

特别解决方案:我注意到您的文档中有段落标记,即“新闻:”。您可以将这些标记中的内容视为您的索引单元,这将使您能够获得这些段落的检索分数。作为后期检索步骤,您可以通过聚合(平均或最大值)各个段落分数来计算文档级别的检索分数。

一般解决方案:

考虑查询词之间的接近度。如果一份文件是关于非洲的埃博拉病,那么更有可能发现埃博拉和非洲这两个词的距离很近,而不是相距很远。Lucene 支持位置索引,并借助邻近感知查询解析器在检索分数计算中使用这些位置。

这是网络搜索引擎广泛使用的东西。

于 2015-03-13T12:13:27.140 回答