字典樹(shù)
可以直接使用工具包 ahocorasick
Java 版本
<dependency>
<groupId>org.ahocorasick</groupId>
<artifactId>ahocorasick</artifactId>
<version>0.2.4</version>
</dependency>
package com.chease.algo.common;
import java.io.IOException;
import java.util.Collection;
import org.ahocorasick.trie.Emit;
import org.ahocorasick.trie.Trie;
public class TrieTest{
public static void main(String[] args) throws IOException {
Trie trie = new Trie();
trie.addKeyword("三體");
trie.addKeyword("科幻");
trie.addKeyword("科幻作品");
trie.addKeyword("he");
Collection<Emit> emits = trie.parseText("三體是個(gè)偉大的科幻作品");
System.out.println(emits);
}
}
python 版本
http://www.rzrgm.cn/duoba/p/16196417.html
安裝: pip install pyahocorasick
import ahocorasick
trie = ahocorasick.Automaton()
trie.add_word("三體", "三體");
trie.add_word("科幻", "科幻");
trie.add_word("科幻作品", "科幻作品");
trie.add_word("he", "he");
trie.make_automaton()
# 該方法 匹配最長(zhǎng)的字符串
for item in trie.iter_long("三體是個(gè)偉大的科幻作品"):
print(item)
# 該方法 匹配所有字符串
for item in trie.iter("三體是個(gè)偉大的科幻作品"):
print(item)

浙公網(wǎng)安備 33010602011771號(hào)