c# - SignalR bot 仅检查确切的案例消息。包含。拼写错误怎么办?

标签 c# bots

我有一个机器人可以响应某些触发词

 if (message.Contains("trigger"))
            {
                HandleTrigger(message);
                return ;
            }

我怎样才能通过一种允许“triger”或“triggr”等拼写错误的方法来避免这个概念,这样它仍然会遇到这个断点并返回 HandleTrigger(message);

上下文的更多代码:

void HandleTrigger(string message)
        {
            if (message.Contains("trigger2"))
            {
                ReplyMessage(viewTriggerMessage);
                ReplyMessage(repeatMessage);
                return;
            }
            if (message.Contains("trigger3"))
            {
                ReplyMessage(anotherMyTriggerMessage);
                return;
            }

最佳答案

您的问题似乎不是 SignalR 问题。它更多的是关于匹配拼写错误的单词。有一种称为双变音位的算法可以用来匹配拼写错误的单词。它的工作原理是语音匹配。您可以在此处阅读有关该算法的更多信息 http://en.wikipedia.org/wiki/Metaphone#Double_Metaphone

您可以在此链接上找到 C# 实现。 https://code.google.com/p/doublemetaphone/

将上述链接中的类添加到您的项目后,您将获得一个名为 GenerateDoubleMetaphone() 的字符串变量扩展方法

然后您可以比较变音位以检查相似性。在你的例子中,你可以这样写你的 if 条件

if ("trigger".GenerateDoubleMetaphone().Equals(message.GenerateDoubleMetaphone()))
{
//Execute code for a match
}

在上面的示例中,“trigger”和“trigr”的变音位都是“TRKR”,因此将匹配。

关于c# - SignalR bot 仅检查确切的案例消息。包含。拼写错误怎么办?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29265983/

相关文章:

c# - VSTO Word 加载项 user.config 每次更新都丢失

c# - BinaryFormatter 忽略程序集版本

c# - 记录正确

c - IRC 机器人故障

javascript - Discord.js 中有没有办法取消固定所有已固定的消息?

python - 如何在 discord.py 中使用 cogs?

javascript - Discord.js mod bot 禁止命令不起作用

c# - ASP.NET 中的 die() 或 exit() 功能

c# - 在电子邮件中发送 HTML

python - 通过 webhooks 中的 slack 提及用户