这是一个常见的问题,在人工智能的世界里面,图像理解、语言及语义理解、数据理解是三个核心领域。而关于语言及语义理解,又与具体的语言和文字密切相关。目前来说,大家都是用机器学习去训练模型,如果要更好的理解中文,当然是要用中文的语义模型去训练更好。
听起来很简单的一个事情,最近我在使用QnA maker这个服务时却遇到一些小问题,深究了一下,也搞明白了他怎么选定语义模型的逻辑:当前来说,他会根据开发者定义的KB的素材,自动推断语言。
这可能是一个足够“智能”,但不够聪明的设计。
我发现问题的原因在于我在一个KB中,先是定义了一个Hi这种测试用的提问。然后又导入了一个中文的知识库材料。如下图所示:
然后我在测试时发现,很多明明定义在question里面的短语,就是无法识别出来。例如
我百思不得其解,后来发现这个KB的语言被识别为了英文,难怪呢。
问题倒是找到了,但怎么调整这个设置呢?查了很多材料,也没有找到地方可以改设置。只能发邮件给产品组沟通。
攻城狮们告诉我的情况是,让我重新建立一个KB,而且一定要确保第一个KB Pair是中文的。我顿时就明白了。
然后,你可以通过这个接口来验证当前你定义的Knowledge base是用什么语言来训练的。
https://westus.dev.cognitive.microsoft.com/docs/services/5a93fcf85b4ccd136866eb37/operations/knowledgebases_getknowledgebasedetails/console
另外一个好消息是,根据我跟产品组的沟通,很快会有一个功能,就是让开发者自己可以手工地设定语言。
这当然是更加自然、而且合乎逻辑的设计。