0

有两篇文章,A和B,篇幅很大。在 A 中获取三个或更多连续单词并检查它们是否出现在 B 中,并计算它们出现的次数。例如,如果 'book' 'his' 和 'her' 在 A 中出现,它们在 B 中出现了多少次?

我想过将B的全部内容拆分,然后用StringToken检查A中的所有3个单词,但我不确定算法效率。

4

2 回答 2

1

查看哈希表是什么,逐个扫描文件 B 中的单词(如果您不关心大文件的内存使用情况,可以拆分)您在哈希表中找到的每个单词(如果未找到)或将数字增加到get of times 一个单词被看到。

然后你只需扫描。over A,寻找每组3个单词,带有滚动滑动窗口。这样,您以后可以增加窗口的长度而无需重写任何内容。

作为参考,您应该真正标记家庭作业问题。

于 2012-04-12T08:12:57.490 回答
0

很明显,您需要一次扫描/解析 B 的全部内容才能获得结果。你不能避免这样做。逐行阅读。对于每一行,搜索给定的查询词及其在该行中的计数。继续添加每行生成的计数以获得最终结果。

如果您想对相同/不同术语的 B 内容进行多次此类计算,则为 B 创建Inverted_index将是最好的方法。

于 2012-04-12T04:41:42.673 回答