【发布时间】:2010-09-27 18:59:09
【问题描述】:
我们有 5mb 的典型文本(只是简单的文字)。我们有 1000 个单词/短语可用作在本文中搜索的术语。
在 .NET(最好是 C#)中最有效的方法是什么?
我们的想法包括正则表达式(一个,很多),甚至还有 String.Contains 的东西。
输入是 2mb 到 5mb 的文本字符串 - 所有文本。多次点击是好的,因为在每个匹配的术语(1000 个)中,我们确实想知道它。就整个执行时间而言的性能,不关心足迹。当前算法使用朴素的 string.contains 提供大约 60 秒以上的时间。我们不希望 'cat' 提供与 'category' 甚至 'cats' 的匹配(即整个词词必须命中,没有词干)。
我们预计文本中的命中率
【问题讨论】:
-
您希望这些词多久出现一次?你需要你的结果是什么?你在乎多次点击吗?
-
输入数据采用什么形式?我们是在解析文件、数据库、字符串吗?
-
当然还有,你想要什么样的性能,你当前的算法给你什么样的性能?
-
输入是 2mb 到 5mb 的文本字符串 - 所有文本。多次点击是好的,因为在每个匹配的术语(1000 个)中,我们想知道它。执行时间方面的性能,不关心足迹。当前算法使用朴素的 string.contains 给出大约 60 秒以上的时间。