WoWool词库中stem与normalized_stem的区别及适用场景是什么
WoWool中stem与normalized_stem的差异及适用场景
你测试的示例未出现差异,是因为所选文本刚好没有触发normalized_stem的特殊归一化逻辑,二者核心区别和适用场景如下:
- stem(词干):仅对单词做基础的屈折变化还原,比如单复数、时态变形还原,除基础大小写转换外不会处理其他字符级别的差异。在你的测试用例中,kiwis、KIWIS做词干还原的结果都是kiwi,因此可以命中规则。
- normalized_stem(归一化词干):在stem的处理基础上,额外叠加了全字符集归一化操作,覆盖重音字符转写、全角半角转换、多地区拼写变体统一(如英式colour和美式color统一为同一结果)、特殊字符/异体字过滤、连字符拆分等处理。
你可以用以下测试用例验证二者差异:
测试文本:I like drinking café. CAFÉs on the street sell great coffee.
测试规则1:lexicon: (input="stem") : { cafe } =Drink;
测试规则2:lexicon: (input="normalized_stem") : { cafe } =Drink;
测试结果:规则1无法命中任何内容,规则2可以命中café、CAFÉs两个匹配项。
适用场景
- 选择stem的场景:需要严格匹配标准拼写,不允许兼容拼写变体、特殊字符的场景,比如正规合同校验、官方公告内容匹配。
- 选择normalized_stem的场景:处理UGC内容、多来源混合文本、多语种混杂文本,需要兼容不同拼写习惯、特殊字符输入的场景,可大幅降低规则维护成本,无需为同一含义的不同写法单独编写规则。
内容的提问来源于stack exchange,提问作者crubio
相关产品推荐
相关产品推荐

