Java实现人工智能代码


来自M.I.T的人工智能代码实现Java版,研究人工智能的必下
资源截图
代码片段和文件信息

import java.util.*;

public class BayesianSpamChecker {
    public BayesianSpamChecker(Hashtable wordProbabilities) {
        this.wordProbabilities = wordProbabilities;
    }

    public float probabilityOfSpam(String text) throws Exception {
        Vector words = Tokenizer.getTokens(text);
        double probs = 1 probs_minus_one = 1;
        HashSet set = new HashSet();
        for (int i = 0; i < 15; i++) {
            interesting[i] = -1;
            wrds[i] = ““;
        }
        // get unique words:
        for (int i = 0 size = words.size(); i < size; i++) {
            set.add(words.get(i));
        }
        Iterator iter = set.iterator();
        while (iter.hasNext()) {
            String w = (String) iter.next();
            float f = 0.5f;
            Float ff = (Float) wordProbabilities.get(w);
            if (ff != null) {
                f = ff.floatValue();
            }
            float interest = Math.abs(f - 0.5f);
            // see if this word is more interesting than on of the 15:
            // first find the smallest value to replace (if it is smaller than the
            // value in ‘interest‘:
            float minVal = 9999;
            int minIndex = 0;
            for (int i = 0; i < 15; i++) {
                if (minVal > interesting[i]) {
                    minVal = interesting[i];
                    minIndex = i;
                }
            }
            //System.out.println(“w=“+w+“ minVal=“+minVal+“ minIndex=“+minIndex);
            if (interest > minVal) {
                interesting[minIndex] = interest;
                wrds[minIndex] = w;
            }
        }
        for (int i = 0; i < 15; i++) {
            if (interesting[i] < 0) continue;
            Float ff = (Float) wordProbabilities.get(wrds[i]);
            if (ff != null) {
                float f = ff.floatValue();
                //System.out.println(“word: “ + wrds[i] + “ interest: “ + interesting[i] + “ spam prob: “ + f);
                probs *= f;
                probs_minus_one *= (1 - f);
            }
        }

        //if (Math.abs(f - 0.5f) > 0.05f) {
        //    probs *= f;
        //    probs_minus_one *= (1 - f);
        //}
        return (float) (probs / (probs + probs_minus_one));
    }

    private Hashtable wordProbabilities;

    float[] interesting = new float[15];
    String[] wrds = new String[15];
}

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2005-10-31 23:09  src
     目录           0  2005-07-04 23:15  srcsearch
     目录           0  2005-07-04 23:15  srcsearchstatespace
     目录           0  2005-07-04 23:15  srcsearchstatespacemazeexample
     文件        2592  2000-01-26 17:53  srcsearchstatespacemazeexampleAbstractSearchEngine.java
     文件        3750  2000-06-21 02:17  srcsearchstatespacemazeexampleBreadthFirstSearchEngine.java
     文件        1332  2000-06-21 02:33  srcsearchstatespacemazeexampleDepthFirstSearchEngine.java
     文件        2217  2002-01-20 01:59  srcsearchstatespacemazeexampleMaze.java
     文件        3184  2002-01-20 01:59  srcsearchstatespacemazeexampleMazeBreadthFirstSearch.java
     文件        3303  2002-01-20 01:59  srcsearchstatespacemazeexampleMazeDepthFirstSearch.java
     目录           0  2005-07-04 23:15  srcsearchstatespacegraphexample
     文件        2732  2002-01-20 02:44  srcsearchstatespacegraphexampleAbstractGraphSearch.java
     文件        2773  2002-01-20 02:44  srcsearchstatespacegraphexampleAbstractGraphSearch.java~
     文件        2928  2002-01-20 02:44  srcsearchstatespacegraphexampleBreadthFirstSearch.java
     文件        2969  2002-01-20 02:44  srcsearchstatespacegraphexampleBreadthFirstSearch.java~
     文件        2885  2002-01-20 02:44  srcsearchstatespacegraphexampleDepthFirstSearch.java
     文件        2926  2002-01-20 02:44  srcsearchstatespacegraphexampleDepthFirstSearch.java~
     文件        3209  2002-01-20 02:44  srcsearchstatespacegraphexampleGraphBreadthFirstSearch.java
     文件        3342  2002-01-20 02:44  srcsearchstatespacegraphexampleGraphBreadthFirstSearch.java~
     文件        3193  2002-01-20 02:44  srcsearchstatespacegraphexampleGraphDepthFirstSearch.java
     文件        3326  2002-01-20 02:44  srcsearchstatespacegraphexampleGraphDepthFirstSearch.java~
     目录           0  2005-07-04 23:15  srcsearchgames
     文件         272  2000-06-01 21:13  srcsearchgamesChess$aMove.class
     文件        7123  2000-06-01 21:13  srcsearchgamesChess.class
     文件       17259  2000-06-01 21:13  srcsearchgamesChess.java
     文件         212  2000-05-30 22:27  srcsearchgamesChessMove.class
     文件          84  2000-05-30 21:34  srcsearchgamesChessMove.java
     文件         889  2000-05-30 22:27  srcsearchgamesChessPosition.class
     文件         681  2000-05-30 21:38  srcsearchgamesChessPosition.java
     文件        2558  2000-05-30 22:27  srcsearchgamesGameSearch.class
     文件        4802  2000-05-30 20:27  srcsearchgamesGameSearch.java
............此处省略147个文件信息

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件举报,一经查实,本站将立刻删除。

发表评论

评论列表(条)