我正在寻找具有以下功能的通用后缀树 (GST) 的 Java 实现:
在从 1000 个字符串创建 GST 之后,我想知道这 1000 个字符串中有多少包含其他字符串“s”。
搜索必须快速安静,因为我需要对大约 100'000 个平均长度为 10 的候选字符串进行搜索。
我正在寻找具有以下功能的通用后缀树 (GST) 的 Java 实现:
在从 1000 个字符串创建 GST 之后,我想知道这 1000 个字符串中有多少包含其他字符串“s”。
搜索必须快速安静,因为我需要对大约 100'000 个平均长度为 10 的候选字符串进行搜索。
我在 Java 中创建了一个后缀树,它允许您轻松添加自己的搜索功能和其他匹配算法。我的博客文章,Java 中的后缀树,有一个概述以及下载最新版本的说明。我的 Java 实现基于 Mark Nelson 的Fast String Searching With Suffix Trees文章。
2016-06-18 更新
试试语义发现工具包。它在 text/src/java/org/sd/text/radixtree 上有一个实现
非通用后缀树的 Java 实现可在以下位置获得:http: //illya-keeplearning.blogspot.com/2009/04/suffix-trees-java-ukkonens-algorithm.html
您可以在此处找到Java 中通用后缀树的实现。我试图尽可能多地记录它,所以你可能会发现它很有用。
这是我对 SuffixTree 的实现: https ://github.com/losvald/sglj/blob/master/src/main/java/org/sglj/util/PATTrie.java
除其他外,它支持在节点中存储任意数据,并找到与前缀关联的值集。