hankcs / hankcs/AhoCorasickDoubleArrayTrie
如何只抽取前缀最长的词?
- Dominant language
- Java
- Stars
- 1k
- Forks
- 299
- PR merge metrics
- No merged PRs in 30d
Description
case:
词典: 二、二氧化碳、高、高温、高温催化
句子: 二氧化碳高温催化剂报告
期望抽取结果: 二氧化碳、高温催化
目前的抽取结果: [[0:1]=二, [0:4]=二氧化碳, [4:6]=高温, [4:8]=高温催化]
```
@Test
public void test() {
// Collect test data set
TreeMap map = new TreeMap();
String[] keyArray = new String[]{
"二", "二氧化碳", "高温", "高温", "高温催化"
};
for (String key : keyArray) {
map.put(key, key);
}
// Build an AhoCorasickDoubleArrayTrie
AhoCorasickDoubleArrayTrie acdat = new AhoCorasickDoubleArrayTrie<>();
acdat.build(map);
// Test it@SpringBootTest
final String text = "二氧化碳高温催化剂报告";
List> wordList = acdat.parseText(text);
System.out.println(wordList);
}
```
输出:
```
[[0:1]=二, [0:4]=二氧化碳, [4:6]=高温, [4:8]=高温催化]
```
Contributor guide
No contributing guide indexed for this repository
Assessment
This issue has not been assessed yet.