簡體   English   中英

通過循環多項式對n-gram進行哈希處理-Java實現

[英]Hashing n-grams by cyclic polynomials - java implementation

我正在解決一些涉及Rabin–Karp字符串搜索算法的問題。 該算法要求滾動哈希比天真搜索更快。 本文介紹如何實現滾動哈希。 我沒有問題地實現了“ Rabin-Karp滾動哈希”,並發現了很少的實現實現 ,但是本文還提到了計算復雜性,並且首選使用循環多項式對n-gram進行哈希。 它鏈接到這種技術的BuzHash實現,但我不知道如何將其用於在其之上構建n-gram哈希。 我想有一些像這樣

CPHash cp = new CPHash("efghijk");
cp.shiftRight('l') // now we got hash of "fghijki"
cp.shiftLeft('d') // "defghi"

對於Java。

誰的人會遇到字符串搜索(像我)相關的有一些文章,我發現有用的問題: 123

我最近發布了一個Apache許可的Java庫,該庫實現了多個滾動哈希函數,包括Cyclic和Rabin-Karp:

http://code.google.com/p/rollinghashjava/

https://github.com/lemire/rollinghashjava

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM