我正在寻找可以解决以下问题的算法,提示或任何源代码。
我有一个文件夹,其中包含许多文本文件。我阅读了所有内容并将其存储在STRING中。现在,我想计算一下是否有其他单词出现在其他文件中。(我知道不清楚,让我举个例子)
例如,我有两个文档:Doc A =>“棕狐跳” Doc B =>“狗不跳” Doc C =>“ fox跳狗”
假设我的程序读取了第一个文档,而第一个单词是“棕色”,那么我的程序将检查该单词是否也出现在其他文档中吗?因此答案将为0。现在它将再次检查第二个单词“ fox”,它将给出输出,结果是出现在(Doc C)中,依此类推……现在,它将读取Doc B并进行检查狗是否出现在其他文件中?答案是(Doc C),依此类推。
有什么建议或伪代码吗?
提示:也称为反向文档频率(Idf)。我知道什么是IDF。
就像GregS所说的那样,使用HashMap。我没有发布任何代码,因为我认为这是一项作业,并且我想给您机会自己创建它,但是提纲是:
例如,如果您有:DocA:棕色狐狸跳DocB:狐狸跳狗
您将打开DocA并遍历其内容。“棕色”不在哈希图中,因此您将添加一个新元素,其键为“棕色”,值为“ DocA”。“ fox”和“ jump”相同。然后,您将打开DocB。’fox’已经在您的哈希图中,因此您需要在其值DocB中添加(该值将为’DocA DocB’)。也许使用ArrayList(在Java中)会有所帮助。