Project1

标题: 求一个中文智能判定系统,空数据库即可,小瞬自己填肉 [打印本页]

作者: 一瞬间的幻觉    时间: 2013-5-25 02:05
标题: 求一个中文智能判定系统,空数据库即可,小瞬自己填肉
两年前就想要的一个系统,可惜没有人帮我

拖欠了两个月的版主工资终于发了,于是现在想旧事重提。

希望有高手能帮我实现这个愿望,当然如果做出来了,不仅仅是给我一个人的
所有的大家都可以自由下载使用。。。

好吧下面说说想要的功能。
类似于QQ的聊天机器人,或者是猫娘、IOS上的小黄鸡聊天机器人。
那种你输入文字,就会给予人性化的答案的智能机器人。

1、首先需要一个文字输入脚本。。。。不然啥都无从说起。

2、然后需要一个空的数据库,这个数据库里的数据分为两部分
A部分是判定,当出现什么文字就会自动启动B部分
B部分则是自己添加的各种回复。

打个比方说:
[坏蛋\坏人\邪恶]  [[你才是坏蛋呢!],[啥,我听不懂啊。]]
A部分是当输入的句子中包含坏蛋、坏人、邪恶这三个词时候,
输出后面的回复,当然,回复的句子是随机的,如果你B数据里面
有三十个回答,那么就会随机回复三十种之一。

这个数据库支持自己添加数据。

3、最难的还是最后一个要求,即是,即时学习功能。
这个应该不难理解,当对方输入的词语是数据库中不存在的
那么,数据库就会弹出另外的输入框,要求玩家输入刚才问题
的答案,玩家输入的文字会被记录。

PS:听说RM支持外挂数据库,如果可能的话所有数据都存放
在游戏根目录的.XML文件中就好了,这样数据的计算也会快速一点!


希望大家帮帮忙啊~


作者: 一瞬间的幻觉    时间: 2013-5-25 02:08
说说我的打算,游戏中的NPC太枯燥了,如果能造出一个单机版的聊天机器人,那无聊在游戏里面聊聊天也可以啊

我知道,和中文这种博大精深的语言联系起来,实在很棘手,也许没有考虑各种语法会导致数据库根本就是个垃圾产物,
但是还是想要试试看,现在只要一个实现它的数据就好,挂个空的数据库,我慢慢从日常生活上累计数据,总有一天可以
亲手造出一个相对人性化的NPC的。
作者: 铅笔描绘的思念    时间: 2013-5-25 13:28
小瞬是要调教出一个AI娘啊。。。如果是E文其实比较好搞一点。。中文聊天主要其实是难在理解。。如果想理解句子意思就必须要把句子中主要的部分能体现句子意思的部分拿出来。。。。也就是拆分词句、。。分词算法MS都很麻烦。。。不知道柳阿有没有人研究过。。。不过其实可以去网上找一下聊天机器人的API。。其实听说某simi的API可以XX获取到。。某黑曲奇的方法:http://www.cnblogs.com/huj690/archive/2013/01/24/2875114.html  当然也有正版的方法。。。不过要钱的说。。不过仍然没有本地化。。其实主要就是中文分词这部分很麻烦。。


PS:其实小瞬花40V来悬赏不如开讨论贴。。其实会有人感兴趣的。。
作者: yychchhh    时间: 2013-5-25 13:34
@论坛助理
让高级ai帮你
作者: 6rp    时间: 2013-5-25 13:42
RM的游戏不太常输入汉字。所谓聊天也就是选项而已吧。 那就很容易应付了,无非给一个很大的数据库,让他随机应对呗。
作者: 一瞬间的幻觉    时间: 2013-5-25 16:14
没人帮我啊啊啊啊啊啊

作者: 八云紫    时间: 2013-5-25 16:36
这东西的难点在于:

1.  Vx Xp 不支持外联的 Ruby 库, 所以想使用 Ruby 的 REXML 库是不行的, 除非外联一个 C++ 的 LIBXML2  Dll, 不然自己写的话 ...... Orz

2. 中文的正逆向词语拆分问题

3. Vx 自带的 Hash 搜索策略. 感觉上数据库一大, 搜索起来不是那么的给力.

以上
作者: R-零    时间: 2013-5-25 19:58
很久以前发呆的时候想过这种东西,然后第一想到的是语法以及词性的判断(pia
作者: 彭格列第XI代    时间: 2013-5-25 22:51
话说怎么输入中文先...
作者: 876加几    时间: 2013-7-13 15:19
本帖最后由 876加几 于 2013-7-14 21:19 编辑

这很简单,只需要用变量和条件分歧做一个公共事件,又插入普通事件中就行了。
变量:[0001:]随机回复 = 随机数[1...5]#可以随机更改后面的数,以便增减回复的种类。
条件分歧:如果 变量[0001:随机回复] == 1
    显示文字:XXX,X,居X
    (如:啥?我听不懂啊!)
分歧结束
……接着往下条件分歧

另来一个公共事件:
(和前面差不多,但是内容却是[坏蛋\坏人\邪恶])
注意,如还有就接着往下编,搜一下VX版的防止事件过多卡机脚本,并添到您的游戏当中。
学习功能模仿“更改角色姓名”原版脚本功能。
脚本中重要的词句符号:
  1. if
复制代码
  1. end
复制代码
  1. ""
复制代码
  1. class
复制代码
  1. def
复制代码
等等重要的Ruby脚本词句符号。
@一瞬间的幻觉  
作者: 一瞬间的幻觉    时间: 2013-7-13 15:26
876加几 发表于 2013-7-13 15:19
这很简单,只需要用变量和条件分歧做一个公共事件,又插入普通事件中就行了。
变量:[0001:]随机回复 = 随 ...

工作量大不说,而且运行效率非常慢,试过用公共事件存放太多的事件设定和变量,结果变成很卡
作者: 八月桑    时间: 2013-7-16 11:08
以前用易语言做过类似的← ←。




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1