这是一项家庭作业。我不一定在寻找确切的解决方案,而是开放的答案和可能的策略。我有一系列段落和一系列单词。我需要检测哪些段落可能包含某些关键字并输出这些段落的标题
蛮力方式是做简单的字符串匹配并检查段落是否包含所需的字符串,但我认为这根本不是一个很好的解决方案。此外,作业要求我确定通道是否可能由关键字组成,这实际上意味着将涉及某种机器学习/数据挖掘。
非常感谢您的所有投入,非常感谢!
P.S:如果重要,我将使用Java编程语言来解决这个问题。
答案 0 :(得分:1)
我不确定我是否正确理解您的任务,但您可以使用Bloom过滤器。
布隆过滤器是一种概率数据结构:它告诉我们元素肯定不在集合中或者可能在集合中。
在guava library page或play with a simple implementation上查看相关信息,了解其工作原理。
答案 1 :(得分:0)
你可以使用Lucene来做到这一点。
以下是一些稍微高级的参考资料:
http://www.cnlp.org/apachecon2005/AdvancedLucene.ppt
答案 2 :(得分:0)
机器学习/数据挖掘方法需要大量您没有提及的数据(训练数据)。
可能的字词可能会建议使用某种形式的模式匹配(更轻松的一种,而不是确切的单词)。
答案 3 :(得分:0)
我曾经做过一项任务,包括为给定的搜索引擎构建一个搜索引擎 一组文件。我们将解析它们并构建倒排索引,然后使用余弦指标来使用关键字执行查询。我们还有一个停用词列表,并将所有关键词都改为小写。
Here's some basic theory,提及更多高级资料。