临近转行,最近终于空下来了。不当程序员的日子真是舒服。也就有了点时间,真真正正的做点自己想玩的玩意。闲着无聊。想来想去。2004年里最让我感兴趣的也就是MSN机器人了。有趣呵。所以自己也做了一个。不过我向来反对什么都是自己从底层写起。因为以起过够了这种痛苦的日子。不然也不会用.net来做开发了。:)好偷懒么。
做MSN机器人。当然首当其冲的是要MSN的协议了。还好。网上现成的DLL多的是。DOTMSN感觉是最最好的一个了,符合MSNP8协议,配上.net开发最爽了。当然也可以去用那个java写的jMSN。不过我向来讨厌JAVA。加上JAVA没一个像样的IDE。绝不在选择之内。
然后就是写代码了。其实了没什么好说的。看http://members.home.nl/b.geertsema/dotMSN/example/Example.zip
人家都有了。另外又偷了一下懒,捡了个现成的MSN Open Talk Service。然后在上面加挂自己写的DLL。
不过人家是VB.net的代码。我不太懂vb.net还好反正都是.net的。花了一点时间转了。一下
比如
Private Sub Main_ConversationGreating(ByVal sender As OpenTopic.Topic, ByRef e As OpenTopic.TopicArgs) Handles MyBase.ConversationGreating
转成C#的定义为
this.ConversationGreating += new OpenTopic.Topic.TalkEventHandler(this.Main_ConversationGreating);
void Main_ConversationGreating(OpenTopic.Topic sender, ref OpenTopic.TopicArgs e)
最后就是一个机器人AI的问题了。
这个太头大了。理论上要做语法分析的。不过太太太难了。机器人毕竟不能和人相比。查了一下。中科院计算所汉语词法分析系统ICTCLAS。它们好像是说先断句。然后取最长的关键字。不过我试了一下网上的俏皮话。几乎绝望了。还是做的简单点吧。试着和机器人小布聊了一下。发现它也只是全关键字配置。比如你打“会” 它会说“不会”。你再打“你会什么”它就不懂了。
最后决定后台的数据库语句用LIKE '%关键字%' 这样只有关键字够好。比如 会 我还什么都不会。
那样人家问“你会什么”,“会什么”。都是一样的语意了。
不过最后网上没有找到现成的这种语言库。原本有个 捷?MSN机器人的软件里面有数据库。不过下载时竟说连接不上。:(没办法。只好自己在线教了。
add (回车)
格式: 问题+回答
最后是几张图。
不过过了今天也就是2004年7月9号。以后这个机器人就没机会上线了。因为我说过了。我要转行了。不做程序员了。所以可以没有机会上网了。。住的地方太破了。电话线没有。有线电视也没有。想拉宽带都不行。外加电费贵。一度要8毛多。搬新家太贵了。一般像样点的动不动就是1000一个月。穷苦的程序员,租不起