Java究竟怎么玩?http://blog.csdn.net/cping1982

菩提本无树,明镜亦非台,本来无一物,何处惹尘埃

用户操作
[即时聊天] [发私信] [加为好友]
匿名不具ID:cping1982
149071次访问,排名522好友15人,关注者27
机密……
cping1982的文章
原创 138 篇
翻译 0 篇
转载 39 篇
评论 302 篇
鹏凌三千(cping1982)的公告
本博评论删除规则如下:

1、辱骂性发言,无视其辱骂对象,一律删。

2、登录发表的评论,不违背第一条者一律不删。非登录发表的评论,过激者删。

3、若发生例外情况,则为CSDN博客系统自动删除。

声援SOFF|声援珊瑚虫:如果你是珊瑚虫用户,请坚决力挺声援珊瑚虫!

平生进退如飙风,一睨人才天下空。独向苍天横冷剑,何必生我惭英雄。

本人有效BLOG:

cping1982

ceponline

音乐:

风姿花传

ドラグ.スレイブ

ヒカルの碁

Believe

世界で一番ヤバイ恋

あんなに一緒だった

精忠报国

谁是大英雄

随遇而安

明天会吹什么风

逍遥游

爱江山更爱美人

最近评论
qingtianzhu:你好,我想购买你的软件,但是一直联系不上你,请告知联系方式,谢谢!
yao_ju_xian:看着挺好的啊,我现在也在学Java,不过我是学oracle那块的,我觉得你做的相当好了,能不能教教我啊?谢谢,我的邮箱是yaojuxian1988@yahoo.com.cn,非常感谢你能赐教!
.net:啥也不说支持楼主B/S小白
原理都不懂就在这里叽叽呀呀的
多回去看几年书吧
真像是在看笑话“呵呵”
如果易语言真有那么“好”没有中国人不支持的
可是(*^__^*) 嘻嘻……
明白的都明白
不明白的自己琢磨去吧
kiki820819:asdasd
kiki820819:asdasd
文章分类
收藏
    相册
    Java的PC游戏开发
    Java中的A*(A star)寻径实现
    Java仿雷电及其源代码
    Java制作的类祖码游戏-数字祖码
    Java实现窗体中角色逐渐风化效果
    Java版吃豆游戏
    人生如梦游戏间,RPG游戏开源开发讲座(JAVA篇)[2]——踏破红尘
    Java[伪]寻径追踪实现
    JAVA中[人工无脑]系统(chatbot)的实现
    Java中2.5D游戏(斜45度角)的设计与实现(1)
    Java中2.5D游戏(斜45度角)的设计与实现(2)
    Java仿太阁立志传5
    JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)
    JAVA实现拼图游戏
    Java来做马里奥[0]—让精灵再次舞动
    Java来做马里奥[1]—木叶传承
    Java来做马里奥[2]—食不厌精
    Java来做马里奥[3]—杂兵登场
    Java模拟桌球打击处理及绘制
    Java汉诺塔测试
    Java炸弹人实现及源码
    人生如梦游戏间,JAVA游戏开源开发讲座[番外篇]之AVG开发——皮影
    人生如梦游戏间,RPG游戏开源开发讲座(JAVA篇)[0]——月晕础润
    人生如梦游戏间,RPG游戏开源开发讲座(JAVA篇)[1]——风云初现
    人生如梦游戏间,RPG游戏开源开发讲座(JAVA篇)[3]——邯郸学步
    人生如梦游戏间,RPG游戏开源开发讲座(JAVA篇)[4]——一步莲华
    人生如梦游戏间,RPG游戏开源开发讲座(JAVA篇)[5]——一树双花
    人生如梦游戏间,RPG游戏开源开发讲座(JAVA篇)[6]——走马观花
    史上最扯Java图形绘制(J2SE)之一JAVA动画效果
    沉寂的国人开源项目
    bo-blog(blog系统,php项目)
    DockPanel Suite [Microsoft .NET Framework Winform UI]
    Hocate web framework[web框架]
    Loonframework-DAO[持久层框架]
    Loonframework-GAME[游戏框架,尚未发布]
    Loonframework-WEB[web框架,尚未发布]
    Luntbuild(软件管理工具)
    magike(php博客)
    myseelite(p2p流媒体系统,c++项目)
    newxy(新坐标)[web框架]
    opencrx(crm系统)
    redlion(web框架)
    x2blog(asp.net博客系统)
    YOYOPlayer(音乐播放器)
    袋鼠egg(服务器)
    经典Blog
    # gzfqh的专栏 →底层代码研究(病毒及汇编)(RSS)
    # java 3D 游戏编程(RSS)
    ApoGames(德国某人的Java游戏作品展示)
    Struts框架应用
    Struts框架应用~
    千里冰封[JAVA 浓香四溢]
    网络安全圈子
    经典站点
    Google
    IBM中国站
    JavaGame开发论坛
    JAVA开源大全
    Java爱好者
    Struts标签文档
    SUN 中国社区
    中国IT实验室
    数据库专区
    偶的其它应用实例
    C#将图像文件压缩为AVI文件播放
    Java&.Net虚拟机精简(GreenJVM&GreenDotNet发布)
    Java图形程序水纹倒映效果
    Java输出竖排古典文字
    .NET在线漫画下载程序
    C#转换AVI文件为BMP文件
    ClassLoader调用外部jar包
    ExtJS2.0开发与实践笔记[0]——初识ExtJS
    ExtJS2.0开发与实践笔记[1]——ExtJS中的Dialog与Form
    ExtJS2.0开发与实践笔记[2]——Ext中的Layout
    ExtJS2.0开发与实践笔记[3]——Ext中的Menu
    ExtJS2.0开发与实践笔记[4]——Ext中的动画处理
    JavaFx实现(1)-渐变效果
    JavaFx实现(2)-随机图形绘制
    Java中DAO的实现
    Java中Image翻转操作
    Java中将byte[]转为Blob对象
    Java中的A*(A star)寻径实现
    Java制作绿色软件(GreenJVM_0.1.0发布)
    JAVA图形操作类
    Java图形程序中的对话逐字显示实现
    Java实现任意文件在bmp中的隐藏与导出
    JAVA实现可设置背景的MDI窗口
    Java实现嵌入式数据库(文本数据库)代码实例
    Java实现类Windows导航栏
    Java正则表达式入门
    JAVA版JAVA IDE环境(源码)
    JAVA线程池的简单实现及优先级设置
    Java自定义JSlider UI
    Java获得系统环境变量
    Java音乐播放类
    ResultSet转为实体对象
    SWT行,AWT/Swing也行系列(1)-实现半透明及不规则窗体
    在JTable中加载进度条及进行操作
    在Swing中使用Html标签
    在SWT中使用ChartDirector
    浅谈java.util.concurrent包的并发处理
    浅谈Java集合中Array(数组)的应用
    精简JRE体积
    通过exe启动class
    偶的文章
    《三国以后有几国》
    中国本土化编程(汉语编程)之我见
    从珊瑚虫事件,看为什么中国出不了比尔.盖茨
    佛与专家
    叹今人无气节而作歌
    国产开源项目的七宗罪
    对Hibernate使用之愚见
    对Java(J2SE PC)开发之怪现象之我见
    浅谈命名规范[纯属强辩]
    灭了珊瑚虫,下一个是谁?
    率性而作无题歌一首
    百度对“十进制网络”的官方态度
    耻民
    论番茄花园的倒掉
    存档
    软件项目交易
    订阅我的博客
    XML聚合  FeedSky
    订阅到鲜果
    订阅到Google
    订阅到抓虾
    订阅到BlogLines
    订阅到Yahoo
    订阅到GouGou
    订阅到飞鸽
    订阅到Rojo
    订阅到newsgator
    订阅到netvibes

    原创 JAVA中[人工无脑]系统(chatbot)的实现收藏

    新一篇: 百度的Ajax.js文件(转载) | 旧一篇: JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)

    所谓[人工无脑],根据本人在百度百科中的解释^^,即:

    人工无脑“人工无脳(じんこうむのう)”,是日语中特有的说法,日文引用英文的舶来语,[人工无脑]在英文中被称为chatterbot、chatbot等,中文通常称其为“聊天机器人”。[人工无脑]与[人工智能]等[强AI]产物相反,是[弱AI]的代表产品。

    世界上第一个[人工无脑]系统chatterbot, 诞生于1966年.名为ELIZA,由J. Weizenbaum开发。ELIZA会分解问话,再以问话检索事前录入好的答案。从而模拟人机通信,造成计算机与人沟通的[假象],这也是所有[弱 AI]系统的共同特点。初期的[人工无脑]实现,以ELIZA和PARRY为主流。此后Ractor、Verbot、A.L.I.C.E.、ELLA等陆 续登场,[弱AI]系统得以长足发展。

    [人工无脑]与[人工智能]的最大区别在于,它仅是模拟人机数据交换,而根据简单的[表面现象]使之产生作用的程式,并没有[强AI]那种模拟生命智能的 需 求。只是应用编码好的程序,把提出的问题再以固定的方式回应,是一种[弱AI]。再简单地说,这是在暂时无法实现人工智能时,一种模拟人工智能的方式。

    如绝大部分游戏编程中,关于[人机交互]这一部分,都是以[人工无脑]的方式来实现的。


    在这里首先提供一个简单的Java用例:



    此用例不过滤用户会话,仅将输入的会话再次返回,但却是[无脑]系统的基础所在。

    代码如下:

    ChatbotPanel:
    package org.test;
    /**
     * <p>Title: LoonFramework</p>
     * <p>Description:</p>
     * <p>Copyright: Copyright (c) 2007</p>
     * <p>Company: LoonFramework</p>
     * 
    @author chenpeng  
     * @email:ceponline@yahoo.com.cn 
     * 
    @version 0.1
     
    */

    import java.awt.BorderLayout;
    import java.awt.Dimension;
    import java.awt.Frame;
    import java.awt.Panel;
    import java.awt.ScrollPane;
    import java.awt.TextArea;
    import java.awt.TextField;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import java.awt.event.WindowAdapter;
    import java.awt.event.WindowEvent;

    /**
     * <p>Title: LoonFramework</p>
     * <p>Description:[人工无脑]系统的初步实现。</p>
     * <p>Copyright: Copyright (c) 2007</p>
     * <p>Company: LoonFramework</p>
     * 
    @author chenpeng  
     * @email:ceponline@yahoo.com.cn 
     * 
    @version 0.1
     
    */

    public class ChatbotPanel extends Panel implements ActionListener {
        
    /**
         * 
         
    */

        
    private static final long serialVersionUID = 1L;
        
    private static final int WIDTH = 480;
        
    private static final int HEIGHT = 480;

        
    // 用于信息显示
        private TextArea dialogueArea;
        
    // 用于信息输入
        private TextField inputField;

        
    private Chatbot chatbot = new Chatbot(Chatbot.NAME);

        
    public ChatbotPanel() {
            setPreferredSize(
    new Dimension(WIDTH, HEIGHT));

            init();
        }


        
    /**
         * 初始显示
         
    */

        
    private void init() {
            setLayout(
    new BorderLayout());

            
    // 创建文本框
            dialogueArea = new TextArea();
            dialogueArea.setEditable(
    false);
            dialogueArea.append(
    "人机通信模拟 ");

            
    //初始信息
            inputField = new TextField("要与["+Chatbot.NAME+"]进行的对话。");
            inputField.selectAll();

            
    //设定滚动条
            ScrollPane scrollPane = new ScrollPane();
            scrollPane.add(dialogueArea);
            add(scrollPane, BorderLayout.CENTER);
            add(inputField, BorderLayout.SOUTH);

            inputField.addActionListener(
    this);
        }


        
    public void actionPerformed(ActionEvent e) {
            
    //获得输入的内容
            String input = inputField.getText();
            dialogueArea.append(
    "人类说: " + input + " ");

            
    //返回响应
            String response = chatbot.getResponse(input);
            dialogueArea.append(chatbot.getName() 
    + "" + response + " ");
            dialogueArea.setCaretPosition(dialogueArea.getText().length());
            inputField.setText(
    "");
        }

        
        
    public static void main(String[]args){
            Frame frm
    =new Frame();
            frm.setSize(WIDTH, HEIGHT);
            frm.setResizable(
    false);
            frm.setTitle(Chatbot.NAME);
            frm.add(
    new ChatbotPanel());
            frm.setVisible(
    true);
            frm.addWindowListener(
    new WindowAdapter(){
                
    public void windowClosing(WindowEvent e){
                    System.exit(
    0);
                }

            }
    );
        }

    }




    Chatbot:
    package org.test;
    /**
     * <p>Title: LoonFramework</p>
     * <p>Description:</p>
     * <p>Copyright: Copyright (c) 2007</p>
     * <p>Company: LoonFramework</p>
     * 
    @author chenpeng  
     * @email:ceponline@yahoo.com.cn 
     * 
    @version 0.1
     
    */

    public class Chatbot {
        
    private String name;
        
        
    public static final String NAME="无脑0号机"

        
    public Chatbot(String name) {
            
    this.name = name;
        }


        
    public String getResponse(String message) {
            
    return message; 
        }


      
        
    public String getName() {
            
    return name;
        }

    }


     

    在[人工无脑]系统中,真正关键的技术在词条的检索和回复方式,比如我略微扩充Chatbot类后,将变成这样。


    变更后Chatbot如下:

    package org.test;

    import java.io.BufferedReader;
    import java.io.FileNotFoundException;
    import java.io.IOException;
    import java.io.InputStreamReader;
    import java.util.ArrayList;
    import java.util.Random;

    /**
     * <p>Title: LoonFramework</p>
     * <p>Description:</p>
     * <p>Copyright: Copyright (c) 2007</p>
     * <p>Company: LoonFramework</p>
     * 
    @author chenpeng  
     * @email:ceponline@yahoo.com.cn 
     * 
    @version 0.1
     
    */

    public class Chatbot {
        
    private String name;
        
        
    public static final String NAME="无脑0号机"
        
    private ArrayList dic;
        
    private Random rand;

        
    public Chatbot(String name) {
            
    this.name = name;

            dic 
    = new ArrayList();
            rand 
    = new Random(System.currentTimeMillis());

            
    //加载字典
            loadDic();
        }


        
    public String getResponse(String message) {
            String response 
    = (String)dic.get(rand.nextInt(dic.size()));
            
    return response; 
        }


      
        
    public String getName() {
            
    return name;
        }

        
        
    private void loadDic() {
            
    try {
                BufferedReader br 
    = new BufferedReader(
                        
    new InputStreamReader(getClass().getResourceAsStream("dic.txt")));
                String line;
                
    while ((line = br.readLine()) != null{
                    dic.add(line); 
    //写入list
                }

                br.close();
            }
     catch (FileNotFoundException e) {
                e.printStackTrace();
            }
     catch (IOException e) {
                e.printStackTrace();
            }

        }

        
    }



    dic.txt内容如下:
    [中国人民是不可战胜的。
    一切反动派都是纸老虎。
    人民万岁!
    庆祝17大胜利召开。
    共建和谐社会。]


    虽然没有经过更多处理,但已经能体现出人机对话的[假象了],若通过网络的字典数据库系统,甚至能够完成以假乱真的弱AI聊天机器人呢。

    发表于 @ 2007年10月17日 13:31:00|评论(loading...)|编辑

    新一篇: 百度的Ajax.js文件(转载) | 旧一篇: JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)

    评论

    #nicholas_85 发表于2008-04-29 15:40:57  IP: 221.6.25.*
    关注你的博客很久了,lz很幽默,哈哈
    发表评论  


    登录
    Csdn Blog version 3.1a
    Copyright © 鹏凌三千(cping1982)