问题:
我有大约20个ASCII文本文件,每个文件的大小都小于10^9字节。另外给出了一个ASCII文本文件(称为FOO)。程序需要与给定的20个文件中的内容进行策略性匹配,并打印最接近匹配文件的名称。FOO的内容可能只部分匹配。
由于文件大小太大,我在想:
1.如何使用信息检索(因为我不太了解IR)
2.应该使用哪种数据结构来存储这些信息
3.最好的算法是什么。
我知道我要求很多,但我真的陷入了这个问题,找不到如何处理的方法。任何帮助将不胜感激。谢谢!
问题:
我有大约20个ASCII文本文件,每个文件的大小都小于10^9字节。另外给出了一个ASCII文本文件(称为FOO)。程序需要与给定的20个文件中的内容进行策略性匹配,并打印最接近匹配文件的名称。FOO的内容可能只部分匹配。
由于文件大小太大,我在想:
1.如何使用信息检索(因为我不太了解IR)
2.应该使用哪种数据结构来存储这些信息
3.最好的算法是什么。
我知道我要求很多,但我真的陷入了这个问题,找不到如何处理的方法。任何帮助将不胜感激。谢谢!
我猜“最接近”的文件是两个文件之间差异最小的文件。
我会寻找一个差异算法,或者最长公共子序列https://en.m.wikipedia.org/wiki/Longest_common_subsequence_problem
所以我假设一个文件包含一些文本。我们可以说每个文件都是一个大字符串。现在创建20个向量或数组。遍历文件并将每个单词作为向量中的一个元素。现在创建一个大小为20的向量来存储每个文件的匹配。同时,为给定的文件创建一个单词向量。现在创建一个循环来遍历这些向量,如果在任何给定的索引处找到与这20个向量和您给定的向量之一的匹配项,则增加匹配存储向量中相应文件的值。最后,匹配存储向量中的最高值将指示具有最佳匹配的文件。