C 向量空间模型查询-文档集搜索

C 向量空间模型查询-文档集搜索,c,vector,model,space,vsm,C,Vector,Model,Space,Vsm,我正在尝试用c编写vsm搜索的代码。因此,我使用一组文档构建了一个哈希表索引,其中每个插槽包含一个单词及其df,以及一个指向列表的指针,在该列表中,每个插槽包含一个文档的名称,其中该单词与TF一起出现了至少一次,在该文档中出现了多少次。用户会写一个问题,也会选择加权qqq.ddd和比较方法,但这与我的问题无关,我必须从最相关的到最不相关的打印文档给他。所以我看到的示例显示了只有一个文档的步骤,例如:我们有一个1.000.000文档的集合sn=1.000.000,我们想要比较 1 document

我正在尝试用c编写vsm搜索的代码。因此,我使用一组文档构建了一个哈希表索引,其中每个插槽包含一个单词及其df,以及一个指向列表的指针,在该列表中,每个插槽包含一个文档的名称,其中该单词与TF一起出现了至少一次,在该文档中出现了多少次。用户会写一个问题,也会选择加权qqq.ddd和比较方法,但这与我的问题无关,我必须从最相关的到最不相关的打印文档给他。所以我看到的示例显示了只有一个文档的步骤,例如:我们有一个1.000.000文档的集合sn=1.000.000,我们想要比较

1 document: car insurance auto insurance
with the queston: best car insurance
因此,在本例中,它创建了如下数组:

Term     | Query |   Document
         |  tf   |      tf
auto     |  0    |      1
best     |  1    |      0 
car      |  1    |      1
insurance|  1    |      2
该示例还提供了每个词的df,因此使用这些线索以及加权和比较方法,很容易对它们进行比较,通过找到数组中每个词的4个坐标1,将它们转换为向量。 因此,在本例中,有1.000.000个文档,为了了解文档与查询的相关性,我们在查询和文档中使用了4个单词中的每4个单词1次。所以我们必须找到4个坐标,然后比较。 在我试图做的事情中,有8000个文档,每个文档有3到50个单词。那么,我该如何比较查询与每个文档的相关性呢?如果我有

a query: ping pong 
document 1: this is ping kong
document 2: i am ping tongue
为了比较查询文档1,我将使用以下词语:这是乒乓球so 5坐标;为了比较查询文档2,我将使用以下词语:我是乒乓球舌头是孔6坐标,因为我使用相同的比较方法,所以得分最高的一个是最相关的?或者我必须同时使用这两个词:这是ping kong am Ang kong 7坐标?所以我的问题是,哪种方法是比较所有这些8000份文件的正确方法?我希望我能成功地使我的问题易于理解。谢谢你抽出时间