2

所有句子都是小写英文,没有标点符号,一个短语被定义为 3 个连续的单词,所以如果一个句子是:我是杰西卡亨特

所以短语将是“我是杰西卡”和“我是杰西卡亨特”

一个短语是常见的,如果它出现在文件的所有句子中

请帮助我为这个问题提供适当的哈希函数

4

2 回答 2

1

什么都行。我将从 (3*a + 5*b + 7*c) 开始,其中 {a,b,c} 是三个连续单词的字数(或哈希值)。(当然所有无符号和模字大小)

  • 标记成单词,忽略空格和标点符号
  • 将生成的单词放入哈希表(dict)
  • 单步执行文件,维护一个滑动窗口来计算三令牌哈希
  • 并将它们放入/更新到第二个哈希表中。
  • 为了解决冲突,第二个哈希表需要(指针、索引)访问原始的三个单词。
于 2012-10-13T18:31:01.083 回答
0

杰西卡,我猜你需要一个 n-gram 散列器而不是一个句子(几乎相同)。我用 C 编写了一个超快的 n-gram ripper,可在以下位置免费下载: http: //www.sanmayce.com/Downloads/index.html#Leprechaun

妖精会将“句子”“我是杰西卡狩猎”撕成这两个 3 克:i_am_jessica am_jessica_hunt

也许 n 语法也是你的事。

于 2012-10-15T14:02:09.070 回答