Python Dialogflow:意图训练短语-如何包括拼写错误/非正式单词
我正在使用DialogFlow构建我的第一个代理,并且意图页面有培训短语的条目。我用一个简单的意图“问候”进行测试。 在正常情况下,拼写正确的单词可以很好地工作Python Dialogflow:意图训练短语-如何包括拼写错误/非正式单词,python,google-cloud-platform,dialogflow-es,Python,Google Cloud Platform,Dialogflow Es,我正在使用DialogFlow构建我的第一个代理,并且意图页面有培训短语的条目。我用一个简单的意图“问候”进行测试。 在正常情况下,拼写正确的单词可以很好地工作 你好 嗨 哎 等等 现在,如果我用“Hellooooo”(9个字母)这样的词运行DetectionEntText。。。检测到的意图给出了默认的回退意图。因此,如果我在训练短语中加上“Hellooo”(准确地说是9个o),那么意思就是“问候”。 但是如果我用Hellooo(4o’s)测试它,那么给出的意图又是默认的回退意图 我无法预测
- 你好
- 嗨
- 哎
- 等等
- 删除所有重复的字符:
- 拼写检查:
您觉得怎么样?正如您所提到的,您需要在发送请求之前检查拼写。你的例子可以奏效 关于这一点,您添加的短语越多,代理从某些用户输入中获取上下文的培训就越多 例如,如果您将“hello”或“hi”作为一些培训短语,您可以将“hey”(不在培训短语中)作为请求发送,并且意图仍然匹配 但是,这只适用于短语上下文,不会忽略拼写错误。例如,“helloo”就不符合这个意图。因此,在发送请求之前,仍然需要检查拼写 或者,您可以打开代理的ML设置 关于自动拼写更正的警告和最佳实践:
- 拼写更正无法更正ASR(自动语音识别)错误,因此我们不建议为使用ASR输入的代理启用拼写更正
- 纠正后的输入可能与错误的意图相匹配。您可以通过向负面示例中添加通常不匹配的短语来解决此问题
- 拼写修正会略微增加代理的响应时间
- 拼写更正不应与谷歌上的操作一起使用
- 拼写更正是针对一般用户查询进行的培训。如果代理是使用特定于域的术语定义的,则可能不需要进行更正
word = re.sub(r"(\w)\1*", r'\1', 'heelloooo')
import pyspellchecker
from spellchecker import SpellChecker
spell = SpellChecker()
corrected = spell.correction(word)