有两篇文章,A和B,非常大。在A中获取三个或更多连续单词并检查它们是否出现在B中,并计算它们出现的次数。例如,如果'book''他'和'她'出现在A中,他们出现在B中的次数是多少次?
我考虑过拆分B的全部内容然后用StringToken检查A中的所有3个单词,但我不确定算法的效率。
答案 0 :(得分:1)
查看Hashtable是什么,逐个扫描文件B中的单词(如果你不关心大文件上的内存使用情况,可以拆分)你在散列表中找到的每个单词(当不是发现)或增加数字以获得单词的次数。
然后你就扫描了。在A上,寻找每组3个单词,带有滚动的滑动窗口。这样你就可以在不改写任何东西的情况下增加窗口的长度。
作为参考,您应该真正标记家庭作业问题。
答案 1 :(得分:0)
很明显,您需要扫描/解析B的全部内容才能达到结果。你无法避免这样做。逐行阅读。对于每一行,搜索给定的查询字词及其在行中的计数。继续添加每行生成的计数以获得最终结果。
如果你想对B的内容多次对相同/不同的术语进行这样的计算,那么为B创建Inverted_index将是最好的方法。