Java中基于度量距离的快速字符串检索
给定一个任意字符串s,我想要一个快速检索所有字符串的方法⊆ 从一大组字符串M(其中| M |>100万),其中S的所有字符串从S具有最小编辑距离Java中基于度量距离的快速字符串检索,java,algorithm,search,edit-distance,metric,Java,Algorithm,Search,Edit Distance,Metric,给定一个任意字符串s,我想要一个快速检索所有字符串的方法⊆ 从一大组字符串M(其中| M |>100万),其中S的所有字符串从S具有最小编辑距离
结合使用此实现和此实现,我能够成功地从一百万个字符串的集合(m)中检索任意字符串的子集,检索时间大约为10毫秒。尽管我自己从未尝试过,但它可能值得一看。我曾经为这篇文章添加了书签,这篇文章看起来相当详细,并提供了几个代码片段:
正如H W已经提到的,你将无法避免检查字典中的每个单词。但是,自动装置将加快计算距离的速度。将其与词典的高效数据结构相结合(如维基百科文章中提到的Trie),您可能能够加快当前的方法。就是为这种情况而设计的。它适用于度量距离,如Levenshtein或Jaccard索引。BK树,在同一博客中描述,是解决此问题的一种方法。有一些Java实现,例如这个(没有尝试过)。这里的方法似乎很合适,谢谢你的建议。它让我了解了度量树的一般知识,包括看起来也很合适的度量树。谢谢,我已经成功地使用了您推荐的bk树实现!