广义后缀树Java实现

我正在寻找具有以下function的广义后缀树(GST)的Java实现:

从1000个字符串创建GST后,我想知道这1000个字符串中有多少包含其他字符串”。

搜索必须快速安静,因为我需要在大约100’000个平均长度为10的候选字符串上应用搜索。

尝试语义发现工具包 。 它在text / src / java / org / sd / text / radixtree上有一个实现

有一个非常规后缀树的Java实现可从以下url获得: http : //illya-keeplearning.blogspot.com/2009/04/suffix-trees-java-ukkonens-algorithm.html

我在Java中创建了一个后缀树,允许您轻松添加自己的搜索function和其他匹配算法。 我的博客文章, Java中的Suffix Trees ,有一个概述以及下载最新版本的说明。 我的Java实现基于Mark Nelson的“使用后缀树快速搜索字符串”一文。

更新2016-06-18

  • 包含上述后缀树实现的库现在可从https://bitbucket.org/globalmentor/globalmentor-core获得 。
  • 该库的最新版本可从Maven Central获得, url为http://search.maven.org/#search%7Cga%7C1%7Cg%3A%22com.globalmentor%22%20AND%20a%3A%22globalmentor-core%22 。

您可以在此处找到Java中的Generalized Suffix Tree的实现。 我试图尽可能多地记录它,所以你可能会发现它很有用。

这是我对SuffixTree的实现: https : //github.com/losvald/sglj/blob/master/src/main/java/org/sglj/util/PATTrie.java

除此之外,它还支持在节点中存储任意数据,并查找与前缀相关联的值集。