`lucene 5.0.0`的SmartChineseAnalyzer是否可以指定或添加我的自定义词典?

Can `lucene 5.0.0`'s SmartChineseAnalyzer specify or add my custom dictionary?

lucene的cnsmart中文分析器表现不错
但是,在特定领域,我需要扩展它的字典。
请问cnsmart是否支持添加自定义词典或替换现有词典?

SmartChineseAnalyzer 仍处于实验阶段,我没有看到指定在何处提取自定义词典的好方法。它有一些钩子,如果你看一下 AnalyzerProfile 似乎 你应该能够通过 "analysis.data.dir" 加载自定义字典系统属性。来自消息来源:

// Try the system property:-Danalysis.data.dir=/path/to/analysis-data
ANALYSIS_DATA_DIR = System.getProperty("analysis.data.dir", "");

但是,查看 WordDictionary 源代码,这看起来(仍然)仅在嵌入式词典加载失败时才加载。由于它嵌入在 jar 中,因此通常不会出现故障。

考虑到所有这些,使用您自己的字典的最简单方法可能是获取 lucene-analyzers-smartcn-5.0.0.jar、解压它、用您的字典替换 org/apache/lucene/analysis/cn/smart/hhmm/coredict.mem,然后重建 jar。

请参阅 LUCENE-1817 : it is impossible to use a custom dictionary for SmartChineseAnalyzer 以了解对此的一些讨论。比较旧,但是再次查看源代码,看起来那里所说的一切仍然适用。

所有这些都假设您的词典采用分析器可读的格式。 jar 中 coredict.mem 旁边有一个 bigramdict.mem,可能是由于性能问题而不是标准使用的扩展字典,因此也值得一试。