Update docs

This commit is contained in:
Richard Chien
2018-08-21 00:30:39 +08:00
parent 48c0b17f09
commit 80f8e74798
8 changed files with 373 additions and 6 deletions

View File

@ -1,9 +1,5 @@
# 编写自然语言处理器
<!-- 本章将教你如何编写自己的自然语言处理器,使上一章的天气查询功能不再局限于固定格式的命令,而是能够处理自然的句子。
除此之外,还会教你如何单独使用自然语言处理器,而不必编写与之配套的命令。 -->
在上一章中我们编写了一个天气查询命令,但它还具有非常强的局限性,用户必须发送固定格式的消息,它才能理解,即使它可以交互式地询问用户要查询的城市,用户仍然需要记住命令的名字。
本章将会介绍如何让插件能够理解用户的自然语言消息,例如:
@ -114,7 +110,7 @@ async def _(session: NLPSession):
置信度的计算需要自然语言处理器的编写者进行恰当的设计,以确保各插件之间的功能不会互相冲突。
:::
在实际项目中,很多插件都会注册有自然语言处理器,其中每个都按照它的解析情况返回 `NLPResult` 对象NoneBot 会将所有自然语言处理器返回的 `NLPResult` 对象按置信度排序,取置信度最高的结果中的命令来执行,`NLPResult` 的第三个参数(上面代码中的 `{}`)会被赋值给命令的 `session.args`(还记得上一章中用到这个属性吗)。
在实际项目中,很多插件都会注册有自然语言处理器,其中每个都按照它的解析情况返回 `NLPResult` 对象NoneBot 会将所有自然语言处理器返回的 `NLPResult` 对象按置信度排序,取置信度最高且大于等于 60.0 的结果中的命令来执行,`NLPResult` 的第三个参数(上面代码中的 `{}`)会被赋值给命令的 `session.args`(还记得上一章中用到这个属性吗)。
目前的代码中,直接根据关键词 `天气` 做出响应,无论消息其它部分是什么,只要包含关键词 `天气`,就会理解为 `weather` 命令。