查询类似句子的有效方法

时间:2015-06-13 16:56:38

标签: c++ string performance

我有一项任务需要从记忆中找到类似的句子。任务读取输入文件包含:

a b c
c d e f
f h g w
.............

然后,给出一个新查询,ex

h g w

返回应该是

f h g w

是包含所有查询字的输入文件中的行。

我想知道如何有效地存储输入句子,以便它可以有效地用于查询。

1 个答案:

答案 0 :(得分:1)

您可以将单词词典存储为字符串向量:

vector<string> dict;

因此,在您的示例中,您会将"a""b""c"等放在字典中。

然后你可以将一个句子表示为整数向量,其中整数是字典中单词的索引:

vector<int> sentence;
例如,第一句话是{0, 1, 2}

您可以将所有句子存储在矢量中:

vector<vector<int>> sentences;

此时,检查短语是否在短语内部与子串搜索算法完全相同(前提是您还将短语查询转换为整数向量)。