U E D R , A S I H C RSS

데블스캠프2011/둘째날/Machine-Learning/NaiveBayesClassifier/김동준 (rev. 1.4)

데블스캠프2011/둘째날/Machine-Learning/Naive Bayes Classifier/김동준

Describe 데블스캠프2011/둘째날/Machine-Learning/NaiveBayesClassifier/김동준 here
import java.io.*;
import java.util.*;

public class Native {
	public static void main(String[] args) {
		int economyNum = 0;
		int politicNum = 0;
		Map<String,Integer> economyWord = new HashMap<String,Integer>();
		Map<String,Integer> politicWord = new HashMap<String,Integer>();
		BufferedReader economyLearn;
		BufferedReader politicLearn;
		try {
			economyLearn = new BufferedReader(new FileReader(new File("C:/Users/KDJ/Documents/Devils/svm_data.tar/package/train/economy/index.economy.db")));
			politicLearn = new BufferedReader(new FileReader(new File("C:/Users/KDJ/Documents/Devils/svm_data.tar/package/train/politics/index.politics.db")));
			String tmp = economyLearn.readLine();
			while(tmp != null) {
				String[] a = tmp.split(" ");
				for(String wordTmp:a) {
					if(wordTmp.length() == 1) {continue; }
					if( economyWord.get(wordTmp) == null) {
						economyNum++;
						economyWord.put(wordTmp, 1);
					}
					else { economyWord.put(wordTmp, economyWord.get(wordTmp)+1); }
				}
				tmp = economyLearn.readLine();
			}
			tmp = politicLearn.readLine();
			while(tmp != null) {
				String[] a = tmp.split(" ");
				for(String wordTmp:a) {
					if(wordTmp.length() == 1) {continue; }
					if (politicWord.get(wordTmp) == null ) {
						politicNum++;
						politicWord.put(wordTmp, 1);
					}
					else { politicWord.put(wordTmp, politicWord.get(wordTmp)+1); }
				}
				tmp = politicLearn.readLine();
			}
		} catch (FileNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		try {
			double ecoResultNum = 0;
			double polResultNum = 0;
			double posiNum = 0;
			double negaNum = 0;
			double reslt = Math.log((double)economyNum/politicNum);
			BufferedReader targetDocument = new BufferedReader(new FileReader(new File("C:/Users/KDJ/Documents/Devils/svm_data.tar/package/test/economy/economy.txt")));
			String tmp = targetDocument.readLine();
			while(tmp != null) {
				String[] str = tmp.split(" ");
				for(String tmpStr:str) {
					if(economyWord.get(tmpStr) == null) { ecoResultNum = 0; }
					else { ecoResultNum = economyWord.get(tmpStr); }
					if(politicWord.get(tmpStr) == null) { polResultNum = 0; }
					else { polResultNum = politicWord.get(tmpStr); }
					polResultNum+=1;
					ecoResultNum+=1;
					reslt += Math.log(ecoResultNum / polResultNum);
				}
				if(reslt < 0) { negaNum+= 1; }
				else { posiNum += 1; }
				reslt = 0;
				tmp = targetDocument.readLine();
			}
			double accu = (posiNum / (posiNum+negaNum));
			targetDocument.close();
			posiNum = 0;
			negaNum = 0;
			polResultNum = 0;
			ecoResultNum = 0;
			reslt = Math.log((double)economyNum/politicNum);
			targetDocument = new BufferedReader(new FileReader(new File("C:/Users/KDJ/Documents/Devils/svm_data.tar/package/test/politics/politics.txt")));
			tmp = targetDocument.readLine();
			while(tmp != null) {
				String[] str = tmp.split(" ");
				for(String tmpStr:str) {
					if(economyWord.get(tmpStr) == null) { ecoResultNum = 0; }
					else { ecoResultNum = economyWord.get(tmpStr); }
					if(politicWord.get(tmpStr) == null) { polResultNum = 0; }
					else { polResultNum = politicWord.get(tmpStr); }
					polResultNum+=1;
					ecoResultNum+=1;
					reslt += Math.log(polResultNum / ecoResultNum);
				}
				if(reslt < 0) { negaNum+= 1; }
				else { posiNum += 1; }
				reslt = 0;
				tmp = targetDocument.readLine();
			}
			double accu2 = ((double)posiNum / (posiNum+negaNum));
			System.out.println((accu + accu2) / 2);
		} catch (FileNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
}
나름 88%의 적중률 ㅋㅋㅋㅋㅋ
P.S : 조만간 이 발적화 코드를 바꿀예정
Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2021-02-07 05:29:12
Processing time 0.0173 sec