所有句子都是小写英语,没有标点符号,短语定义为 3 个连续单词,因此如果一句话是:我是杰西卡·亨特
所以短语将是"我是杰西卡"和"我是杰西卡亨特"
如果一个短语存在于文件的所有句子中,则该短语是常见的
请帮助我为这个问题提供适当的哈希函数
什么都行。我会从 (3*a + 5*b + 7*c) 开始,{a,b,c} 是三个连续单词的字数(或哈希值)。(当然都是无符号的,和模字大小)
- 标记成单词,忽略空格和标点符号
- 将生成的单词放入哈希表(字典)中
- 逐步执行文件,维护用于计算三令牌哈希的滑动窗口
- 并将这些放入/更新到第二个哈希表中。
- 对于冲突解决,第二个哈希表需要具有(指针,索引)对原始三个单词的访问权限。
杰西卡,我想你需要一个 n-gram 哈希器而不是句子一(这几乎是一样的)。我用 C 编写了一个超快的 n-gram 开膛手,可在以下位置免费下载:http://www.sanmayce.com/Downloads/index.html#Leprechaun
妖精会把"我是杰西卡·亨特"这句话撕成这两个3克:i_am_jessicaam_jessica_hunt
也许n-graming也是你的事。