如何自动拆分提取特定实体至MS LUIS?中英混合语料适配求助
解决LUIS中混合中英文及特殊符号的实体提取问题
我之前在LUIS处理多语言混合 utterance 时也踩过类似的坑,结合实际调试经验,给你几个可行的解决方案:
先做中文分词预处理:
中文没有自然空格分隔是核心问题,所以在把 utterance 传给LUIS之前,先用中文分词工具(比如常用的开源分词库)把连续的中文拆分成单个词,给分词之间加上空格,同时把数学公式、特殊符号这类需要作为整体识别的内容保留原样。举个例子:
原始语句:我要计算3+5的结果
预处理后:我 要 计算 3+5 的 结果
之后用预处理后的文本训练LUIS,同时也保留原始无分隔的样本一起训练,让模型学习两种格式的对应关系,慢慢就能对无分隔的中文语句也准确识别实体。如果有专业术语,记得给分词工具添加自定义词库,避免分词错误。结合列表实体与正则表达式实体:
- 对于固定的中文术语(比如业务里常用的词汇),把它们整理成列表实体(List Entity),LUIS会直接匹配这些词汇,不管有没有空格分隔;
- 对于数学公式这类有固定模式的内容,用**正则表达式实体(Regex Entity)**来匹配。比如匹配简单加减乘除公式可以用正则:
\d+[+\-*/]\d+,如果是更复杂的公式,就根据实际场景调整正则规则。注意LUIS的正则语法遵循.NET规范,特殊符号要记得转义。
丰富多场景训练样本:
一定要覆盖各种混合场景:纯中文、中英混合、带不同特殊符号的语句,每种场景都准备足够多的样本。比如同时添加:Calculate the result of 3+5我要计算3+5的结果請計算3*7的結果(繁体)
并且在标注实体时,不管语句有没有空格分隔,都把目标实体标对,让LUIS学习不同语言、不同格式下的实体特征。
搭配预构建实体增强效果:
LUIS的部分预构建实体(比如数字、运算符)对中文也有一定识别能力,可以把预构建实体和自定义实体结合使用。比如先用预构建的number和ordinal识别数字,再用自定义实体把数字和运算符组合成完整的数学公式实体。
内容的提问来源于stack exchange,提问作者Ellery Leung
相关产品推荐
相关产品推荐

