AIMLBot (中文自动回复)文本自动回复机器人
https://github.com/chivandikwa/AIMLBot (csharp)
https://github.com/gunthercox/ChatterBot (python)
http://hci.stanford.edu/~winograd/shrdlu/
http://familyshow.codeplex.com/
https://github.com/Microsoft/CNTK/wiki/Setup-CNTK-on-your-machine
https://developer.syn.co.in/tutorial/siml/siml-aiml.html
只需改两个地方(当然,中文词库要自已处理):
1.Settings.xml :
1 2 | //Settings.xml : <item name= "stripperregex" value= "[^\u4e00-\u9fa5|a-zA-Z0-9]" /> |
2.Bot.cs
1 | this .GlobalSettings.addSetting( "stripperregex" , "[^\u4e00-\u9fa5|a-zA-Z0-9]" ); //设置正则表达式 |
加上语音:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 | using System; using System.Collections.Generic; using System.Text; using AIMLbot; using System.IO; using System.Speech.Synthesis; namespace ConsoleBot { class Program { /// <summary> /// 涂聚文 /// Geovin Du /// </summary> public class CharRoBot { const string UserId = "consoleUser" ; private Bot AimlBot; private User myUser; /// <summary> /// /// </summary> public CharRoBot() { //------I added this code just coz I love that Light Green Geeky Looking Console ;-)------ //Console.BackgroundColor = ConsoleColor.Blue; Console.ForegroundColor = ConsoleColor.Green; //---------------------------------------------------------------------------------------- AimlBot = new Bot(); myUser = new User(UserId, AimlBot); Console.Title = "CharRoBot v1.0 - By Geovin Du (www.dusystem.com)" ; Initialize(); } // Loads all the AIML files in the \AIML folder public void Initialize() { string settingsPath = Path.Combine(Environment.CurrentDirectory, Path.Combine( "config" , "Settings.xml" )); AimlBot.loadSettings(settingsPath); AimlBot.isAcceptingUserInput = false ; AimlBot.loadAIMLFromFiles(); AimlBot.isAcceptingUserInput = true ; } // Given an input string, finds a response using AIMLbot lib public String getOutput(String input) { Request r = new Request(input, myUser, AimlBot); Result res = AimlBot.Chat(r); return (res.Output); } } static CharRoBot bot; /// <summary> /// /// </summary> /// <param name="args"></param> static void Main( string [] args) { //1.第一种 //string settingsPath = Path.Combine(Environment.CurrentDirectory, Path.Combine("config", "Settings.xml")); //Bot myBot = new Bot(); //myBot.loadSettings(settingsPath); //User myUser = new User("consoleUser", myBot); //myBot.isAcceptingUserInput = false; //myBot.loadAIMLFromFiles(); //myBot.isAcceptingUserInput = true; //while (true) //{ // Console.Write("You: "); // string input = Console.ReadLine(); // if (input.ToLower() == "quit") // { // break; // } // else // { // Request r = new Request(input, myUser, myBot); // Result res = myBot.Chat(r); // Console.WriteLine("Bot: " + res.Output); // //Make the bot Speak // SpeechSynthesizer synthesizer = new SpeechSynthesizer(); // synthesizer.Volume = 100; // 0...100 // synthesizer.Rate = -2; // -10...10 // var output = res.Output; // // Synchronous // synthesizer.Speak(output); // } //} //2.第二种 string input = "start" ; while (input != "exit" ) { bot = new CharRoBot(); Console.Write( "You: " ); input = Console.ReadLine(); var output = bot.getOutput(input); //Console.WriteLine(input); Console.WriteLine( "Bot: " + output); //Make the bot Speak SpeechSynthesizer synthesizer = new SpeechSynthesizer(); synthesizer.Volume = 100; // 0...100 synthesizer.Rate = -2; // -10...10 // Synchronous synthesizer.Speak(output); // Asynchronous // synthesizer.SpeakAsync(output); } } } } |
哲学管理(学)人生, 文学艺术生活, 自动(计算机学)物理(学)工作, 生物(学)化学逆境, 历史(学)测绘(学)时间, 经济(学)数学金钱(理财), 心理(学)医学情绪, 诗词美容情感, 美学建筑(学)家园, 解构建构(分析)整合学习, 智商情商(IQ、EQ)运筹(学)生存.---Geovin Du(涂聚文)
分类:
CSharp code
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!
2016-03-01 javascript:Bing Maps AJAX Control, Version 7.0
2015-03-01 csharp: Microsoft SqlHelper
2012-03-01 解决IE6下透明PNG图片有灰底的解决方案