[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
其实,让计算机理解才是最难的。。。

TOP

回复 1楼 的帖子

早期传奇有过一段机器人,但不是很智能。接着就是大话西游推出了自己的机器人,但数据库词组.词不是很完整,但是比传奇的又有些智能,它们所收录的数据都是记载在TXT上来完成的。然后通过数据库来调用的。你要是真想搞个比较好点的机器人,建议你先把四库全书或当代的新华词..字典收录完成在说吧。
    ............不是打搅你的信心,等你把库文编纂好了,估计P要来解读库文的话最少也要30秒的时间,更不要谈什么分析处理了。

TOP

回复 4# luckboy45


    聊天机器人值得一试啊,4楼

TOP

本帖最后由 L-殇 于 2014-3-5 02:32 编辑

首先声明我只是感兴趣,实际能力不怎么样.请不要在意...
最近注意到聊天机器人,于是又去下载了个我删了又删的工具(编程工具vb,vc,java,易语言,按键精灵(应该不算)都试过,不懂语言,很费力,经常中断或放弃),这次弄着弄着弄到路由器了...然后没网的时候注意到bat,有较完整的说明,感觉不错...做了个简单应答的...后来看到这里,感觉那差距....不废话了...
正文:词库分类,情绪判断
貌似你分享的是有单字,双字,三字,四字4次处理的.我想如果分开分别用4个词库应该会好点吧...
然后应该可以弄个除通用答话外其他环境的回话,还有数据库(用户品行),比如
某个无记录的人(关于习性)如果突然来了句坏话,可以给其一个(心情不好)的定义,让机器人处于(调解)的状态(解锁相应词库与关闭不需要的),
如果那人继续,则给其(找茬)的定义,让机器人(劝告)及词库解锁于关闭,
任然继续,那就开"特殊词库"对骂算了...
呃,貌似忘了点什么...就先这样吧...
诶,4年了...不知道还在不在...

TOP

回复 19# L-殇


    开发智能聊天是非常困难的,批处理也应付不来,。
如果开发专家系统,就是那种智能问答系统还是可行的。
后生可畏,加油吧!
寂寞是黑白的,但黑白不是寂寞,是永恒。BAT 需要的不是可能,而是智慧。

TOP

回复 20# cjiabing
经过几天的拖拉断续(除了那个交集bat没看懂先放着),终于弄出一个自己性格的分词bat样本...自己的XP测试可用,请指点...
传送点:CS=初始,D=点(用于跳出重复)
变量:A=开始断句位置,Y=语句,C=分出来的词,C1=测试C是否为理想对象而临时出现
For变量:%%a=断句位,%%b=先四字后三字后...,%%c=为了比b小1而临时出现
文件:C%%b=就是上面说的分词库,H=缓存,或者说历史记录
注:rem 是后来加的,并没有测试是否兼容.
刚刚突然想到先准确判断句长再分词,但貌似又没必要,请指点...弄完这个就完成分词,回话,联网三阶段之一啦...
至于后生可畏...其实我只是感兴趣而且此bat系统自带并有较完整(刚刚突然发现help里没有ping!竟然还有隐藏!)的说明所以尝试了一下...
  1. @echo off & setlocal enabledelayedexpansion
  2. &rem 关闭显示与解决变量延迟问题,也可以用两种相应符号玩变量中的变量
  3. :CS
  4. rem 一个回头的传送点
  5. set A=0
  6. rem 默认为从句首开始断句
  7. cls
  8. rem 清屏
  9. set /p Y=输入:
  10. rem 获取句子
  11. echo 输出:>>H
  12. rem 提前注入"输出:"到缓存
  13. if exist H cd.>H
  14. rem 清空缓存空间
  15. :D
  16. rem 一个让截词不重复的传送点
  17. for /l %%a in (!A!,1,100) do (
  18. rem 从楼主那看来的截词法
  19. for /l %%b in (4,-1,1) do (
  20. rem 先截四字再三字再二.....
  21. set C=!Y:~%%a,%%b!
  22. rem 截出一个词并给予调用方法
  23. if defined C (
  24. rem 判断是否截到词
  25. set /a b=%%b-1
  26. rem 为了获取一个比%%b小1的数
  27. for %%c in (!b!) do (
  28. rem 为了让此数字成功融入变量成为变量从的变量
  29. set C1=!C:~%%c,1!
  30. rem 为了判断,截出C的末词
  31. if defined C1 (
  32. rem 判断接出的词是否理想
  33. for /f "tokens=1,*" %%d in (C%%b) do (
  34. rem 获取词库里的词
  35. if "%%d"=="!C!" (
  36. rem 判断是否截词成功
  37. echo %%d
  38. rem 显示成功截出的词(因为后面放进了"缓存",所以不再显示,但也需要)
  39. set /a A=%%a+%%b
  40. rem 设置跳过重复的量
  41. goto D
  42. rem 跳过重复
  43. )))))))>>H
  44. rem 上面用了几个大句子,这里结清并将结果放入"缓存"
  45. for /f %%a in (H) do set /p Y=%%a <nul
  46. rem 显示分词的结果,如果词库内不存在的字就会消失
  47. echo.
  48. rem 差不多就算回车一下
  49. pause
  50. rem 稍等以便查看结果
  51. goto CS
  52. rem 开始新的轮回
复制代码
突然想起还要分库的,马上去弄了个...并加上附件..
  1. @echo off & setlocal enabledelayedexpansion
  2. rem 虽然不确定变量中的变量是否高效,但个人不是很喜欢基本重复的句子
  3. for /f "tokens=1,*" %%a in (C) do (
  4. rem 提取词库每一行
  5. for /l %%c in (1,1,4) do (
  6. rem 分别识别单字,双字,三.....
  7. set /a S=%%c-1
  8. rem 获取小一数
  9. for %%d in (!S!) do (
  10. rem 变量中的变量
  11. set C=%%a
  12. rem 获取词语
  13. set C1=!C:~%%d,1!
  14. rem 截应该出现的词末
  15. set C2=!C:~%%c,1!
  16. rem 截不应该出现的词末末
  17. if defined C1 (
  18. rem 判断词语是否够长
  19. if not defined C2 (
  20. rem 判断词语是否超长
  21. echo %%a %%b >>C%%c
  22. rem 将匹配词语放入相应词库
  23. )))))
复制代码

TOP

研究中,用asp應該簡單的多

TOP

返回列表