Advertisement
Guest User

asdasd

a guest
Feb 12th, 2016
69
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.76 KB | None | 0 0
  1.  
  2.  
  3. // käy läpi tiedostot sekä tallentaa hashmappiin string int sana -> sanan esiintymämäärä
  4.  
  5.  
  6.  
  7. package spamham;
  8.  
  9. import java.io.File;
  10. import java.io.FileNotFoundException;
  11. import static java.lang.Integer.parseInt;
  12. import java.util.HashMap;
  13. import java.util.Scanner;
  14.  
  15.  
  16. public class Infomuncher {
  17.  
  18. int hamTotal;
  19. int spamTotal;
  20. File spam;
  21. File ham;
  22. HashMap<String, Float> hamOdds;
  23. HashMap<String, Float> spamOdds;
  24.  
  25.  
  26. public Infomuncher(File s, File h) {
  27. spam = s;
  28. ham = h;
  29. }
  30.  
  31. public void generateOdds() throws FileNotFoundException {
  32. Scanner lukija = new Scanner(spam);
  33.  
  34. hamOdds = new HashMap<String, Float>();
  35. spamOdds = new HashMap<String, Float>();
  36. String[] array;
  37. float apuri;
  38.  
  39.  
  40. while (lukija.hasNextLine()) {
  41. array = lukija.nextLine().trim().split(" ");
  42. apuri = parseInt(array[0]);
  43. spamOdds.put(array[1], apuri);
  44. }
  45.  
  46. lukija = new Scanner(ham);
  47.  
  48. while (lukija.hasNextLine()) {
  49. array = lukija.nextLine().trim().split(" ");
  50. apuri = parseInt(array[0]);
  51. hamOdds.put(array[1], apuri);
  52. }
  53.  
  54. }
  55.  
  56. public HashMap getSpamOdds() {
  57. return this.spamOdds;
  58. }
  59.  
  60. public HashMap getHamOdds() {
  61. return this.hamOdds;
  62. }
  63.  
  64.  
  65.  
  66. }
  67.  
  68. package spamham;
  69.  
  70. import java.io.File;
  71. import java.io.FileNotFoundException;
  72. import java.math.BigDecimal;
  73. import java.util.ArrayList;
  74. import java.util.HashMap;
  75. import java.util.Scanner;
  76.  
  77.  
  78. public class Spamham {
  79.  
  80.  
  81. public double spamicity(File f, Infomuncher im) throws FileNotFoundException {
  82.  
  83. Scanner lukija = new Scanner(f);
  84. String[] apuri;
  85. HashMap<String, Float> hamOdds = im.getHamOdds();
  86. HashMap<String, Float> spamOdds = im.getSpamOdds();
  87. ArrayList<String> viesti = new ArrayList<>();
  88.  
  89. while (lukija.hasNextLine()) {
  90. apuri = lukija.nextLine().split(" ");
  91. for(String s : apuri) {
  92. viesti.add(s);
  93. }
  94. }
  95.  
  96. float odds = (float) 0.5;
  97. float apuri1;
  98. float apuri2;
  99.  
  100. for (String s : viesti) {
  101. if (hamOdds.containsKey(s) && spamOdds.containsKey(s)) {
  102. apuri2 = hamOdds.get(s) / 290673;
  103. apuri1 = spamOdds.get(s) / 75268;
  104. } else if (hamOdds.containsKey(s)) {
  105. apuri2 = hamOdds.get(s) / 290673;
  106. apuri1 = (float) 0.00001;
  107. } else if (spamOdds.containsKey(s)) {
  108. apuri1 = spamOdds.get(s) / 75268;
  109. apuri2 = (float) 0.000003;
  110. } else {
  111. apuri1 = (float) 0.00001;
  112. apuri2 = (float) 0.000003;
  113. }
  114. odds = (float) (odds + Math.log(apuri1 / apuri2));
  115. System.out.println(odds);
  116. }
  117. return odds;
  118. }
  119.  
  120. public double logOdds(double x, double y) {
  121. return Math.log(x / y);
  122. }
  123.  
  124. }
  125.  
  126. package spamham;
  127.  
  128. import java.io.File;
  129. import java.io.FileNotFoundException;
  130. import java.io.IOException;
  131. import java.math.BigDecimal;
  132.  
  133. public class main {
  134.  
  135. public static void main(String[] args) throws FileNotFoundException, IOException {
  136. File spam = new File("spamcount.txt");
  137. File ham = new File("hamcount.txt");
  138. File msg = new File("penis.txt");
  139. Spamham sh = new Spamham();
  140.  
  141. Infomuncher jyrki = new Infomuncher(spam, ham);
  142. jyrki.generateOdds();
  143. System.out.println(sh.spamicity(msg, jyrki));
  144.  
  145.  
  146. }
  147.  
  148.  
  149.  
  150. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement