public static void setTotal() { try { String sql = "select count(*) count from " + "(SELECT ra.fileId, ra.reviewId, ra.reviewType from " + "ReviewFeatureAnalysis ra group by ra.fileId, ra.reviewId) r " + "where r.reviewType = 1 or r.reviewType = 2"; System.out.println(sql); intTotal = Database.getInteger(sql); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } }
public NaiveBayes(int leaveOutFileId) { // initiate counters Parameters parameters = new Parameters(); Database.setInitialParameters(leaveOutFileId, parameters); intTotal = parameters.getTotal(); intDislikes = parameters.getDislikes(); intLikes = parameters.getLikes(); // setTotal(leaveOutFileId); // setLikes(leaveOutFileId); // setDislikes(leaveOutFileId); countLikes = getMap(leaveOutFileId, 1); countDislikes = getMap(leaveOutFileId, 2); dPrioLike = (double) intLikes / (double) intTotal; dPrioDislike = (double) intDislikes / (double) intTotal; }
// -------------------------------------------------- private HashMap<String, Integer> getMap(int leaveOutFileId, int Type) { // --------------------------------------------------- // nb this not include leave one out String sql = "Select reviewType, featureId, value, count(*) count from ReviewFeatureAnalysis "; if (leaveOutFileId != 0) sql = sql + " where fileId <> " + leaveOutFileId; sql = sql + " group by reviewType, featureId, value"; // System.out.println("GetMap : Sql : " + sql); String key = ""; Integer value; HashMap<String, Integer> map = new HashMap<String, Integer>(); Connection conn = Database.getDBConnection(); java.sql.Statement st; try { st = conn.createStatement(); ResultSet rs = st.executeQuery(sql); while (rs.next()) { int type = rs.getInt("reviewType"); if (type == Type) { key = rs.getString("featureId") + "_" + rs.getString("value"); value = rs.getInt("count"); // System.out.println("Key " + key + " value : " + value); map.put(key, new Integer(value)); } } st.close(); return map; } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); return map; } }