C 向量空间模型查询-文档集搜索
我正在尝试用c编写vsm搜索的代码。因此,我使用一组文档构建了一个哈希表索引,其中每个插槽包含一个单词及其df,以及一个指向列表的指针,在该列表中,每个插槽包含一个文档的名称,其中该单词与TF一起出现了至少一次,在该文档中出现了多少次。用户会写一个问题,也会选择加权qqq.ddd和比较方法,但这与我的问题无关,我必须从最相关的到最不相关的打印文档给他。所以我看到的示例显示了只有一个文档的步骤,例如:我们有一个1.000.000文档的集合sn=1.000.000,我们想要比较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
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份文件的正确方法?我希望我能成功地使我的问题易于理解。谢谢你抽出时间