129
eucDist += Math.powinput1[i]-input2[i], 2; }
eucDist = Math.sqrteucDist; return eucDist;
} public double manhattanDistancedouble[] input1, double[] input2 {
for int i = 0; i input1.length; i++ { manDist += Math.absinput1[i]-input2[i];
} return manDist;
} }
8. NegationHandling.java
package sentimentanalysis; import java.util.ArrayList;
import java.util.LinkedHashMap; public class NegationHandling {
public LinkedHashMap negationHandlingLinkedHashMapInteger, ArrayListString map { for int key : map.keySet {
ArrayListString list = map.getkey; for int i = 0; i list.size; i++ {
String check = list.geti; switch check {
case tidak: if i + 1 = list.size - 1 {
list.seti, tidak + list.geti + 1;
130
list.removei + 1; break;
} case bukan:
if i + 1 = list.size - 1 { list.seti, bukan + list.geti + 1;
list.removei + 1; break;
} case tanpa:
if i + 1 = list.size - 1 { list.seti, tanpa + list.geti + 1;
list.removei + 1; break;
} }
} map.putkey, list;
} return map;
} }
9. WordFreq.java
package sentimentanalysis; import java.util.ArrayList;
import java.util.Arrays; import java.util.HashMap;
public class WordFreq {
131
public class Word implements ComparableWord { private String word;
private int count; public WordString word, int count {
this.word = word; this.count = count;
} Override
public int compareToWord otherWord { if this.getCount == otherWord.getCount {
return this.getWord.compareTootherWord.getWord; }
return otherWord.getCount - this.getCount; }
public String getWord { return word;
} public int getCount {
return count; }
} public Word[] getFreqWordsArrayListString words {
HashMapString, Word map = new HashMap; for String s : words {
Word w = map.gets; if w == null {
w = new Words, 1;
132
} else { w.count++;
} map.puts, w;
} Word[] list = map.values.toArraynew Word[]{};
Arrays.sortlist; return list;
} }
10. CSV.java
package sentimentanalysis; import java.io.;
import java.util.; public class CSV {
public void writeFeaturesToCSVLinkedHashMapInteger, double[] input, String filename throws IOException {
StringBuilder builder = new StringBuilder; for IteratorMap.EntryInteger, double[] it = input.entrySet.iterator; it.hasNext; {
Map.EntryInteger, double[] e = it.next; double[] value = e.getValue;
for int i = 0; i value.length - 1; i++ { builder.appendvalue[i];
builder.append,; }
builder.appendvalue[value.length - 1]; builder.appendSystem.getPropertyline.separator;
}
133
String result = builder.toString; System.out.printlnresult;
try Writer writer = new FileWriterfilename { writer.writeresult;
writer.close; }
} public LinkedHashMap readFeaturesFromCSVString csvFile {
LinkedHashMapInteger, double[] map = null; double[] dToken;
try { create BufferedReader to read csv file
BufferedReader br = new BufferedReadernew FileReadercsvFile; String line = ;
StringTokenizer st = null; map = new LinkedHashMap;
int lineNumber = 0; read comma separated file line by line
while line = br.readLine = null { lineNumber++;
use comma as token separator st = new StringTokenizerline, ,;
dToken = new double[st.countTokens]; int tokenNumber = -1;
while st.hasMoreTokens {