如何为 vespa 中的标记化提供 OpenNLP 模型?

How to provide OpenNLP model for tokenization in vespa?

如何为 vespa 中的标记化提供 OpenNLP 模型? This mentions that "The default linguistics module is OpenNlp". Is this what you are referring to? If yes, can I simply set the set_language index expression by referring to the doc? I did not find any relevant information on how to implement this feature in https://docs.vespa.ai/en/linguistics.html,你能帮我解决这个问题吗?

需要 CJK 支持。

是的,默认分词器是 OpenNLP,无需配置即可使用。如果您不设置它,它会猜测语言,但如果您知道文档语言,最好在查询中使用 set_language(和 language=...),因为语言检测对短文本不可靠。

但是,OpenNLP 标记化(未检测)仅支持丹麦语、荷兰语、芬兰语、法语、德语、匈牙利语、爱尔兰语、意大利语、挪威语、葡萄牙语、罗马尼亚语、俄语、西班牙语、瑞典语、土耳其语和英语(我们使用kstem 代替)。所以,没有 CJK。

要支持 CJK,您需要按照语言文档中的描述插入您自己的分词器,或者使用 ngram 而不是分词,请参阅 https://docs.vespa.ai/documentation/reference/schema-reference.html#gram

n-gram 通常是 Vespa 的一个不错的选择,因为它不会受到 CJK 标记化的召回问题的困扰,并且通过使用包含邻近度的排名模型(例如 nativeRank),你仍然会变得很好相关性。