我正在尝试创建一个倒排索引。我正在阅读文本文件的行,文本文件在每行的第一个位置有一个文档的 id,docId
该行的其余部分有关于这个文档的关键字。为了创建倒排索引,我首先要标记这个文本文件。我用我写的一个函数来做这件事,我把每个单词都存储在一个向量中。我唯一的抱怨是我还将 存储docId
为向量中的字符串。如果需要,这是 tokenize 函数的标头:
void tokenize(string& s, char c, vector<string>& v)
现在在对文件进行标记后,我必须创建一个将每个单词放入地图的函数,我正在考虑使用无序地图,在地图中每个单词都会出现一次。我还必须以某种方式将单词的频率存储在某处。我认为docId
在地图中使用作为键是个好主意,但后来我意识到我只能有一个docId
可以显示单词的键,而在我的文本文件中 adocId
有多个单词。
那么,我将如何解决这个问题呢?我应该从哪里开始?