Advertisement
Guest User

Untitled

a guest
Apr 23rd, 2018
63
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.97 KB | None | 0 0
  1. package tarkastaja;
  2.  
  3. import java.util.HashMap;
  4. import java.util.Map;
  5.  
  6. public class Ennustaja {
  7.  
  8. private final Map<String, Integer> valittuSanat;
  9. private final Map<String, Integer> eiValittuSanat;
  10.  
  11. private int valittujenLauseidenMaara = 0;
  12. private int eiValittujenLauseidenMaara = 0;
  13.  
  14. public Ennustaja() {
  15. valittuSanat = new HashMap<>();
  16. eiValittuSanat = new HashMap<>();
  17. }
  18.  
  19. public void lisaa(boolean valitaan, String lause) {
  20. if (valitaan) {
  21. this.valittujenLauseidenMaara++;
  22. String[] palat = lause.split(" ");
  23.  
  24. for (String sana1 : palat) {
  25. if (!valittuSanat.containsKey(sana1)) {
  26. valittuSanat.put(sana1, 1);
  27. } else {
  28. valittuSanat.put(sana1, valittuSanat.get(sana1) + 1);
  29. }
  30. }
  31. } else if (valitaan == false) {
  32. this.eiValittujenLauseidenMaara++;
  33. String[] palat = lause.split(" ");
  34.  
  35. for (String sana1 : palat) {
  36. if (!eiValittuSanat.containsKey(sana1)) {
  37. eiValittuSanat.put(sana1, 1);
  38. } else {
  39. eiValittuSanat.put(sana1, eiValittuSanat.get(sana1) + 1);
  40. }
  41. }
  42. }
  43. }
  44.  
  45. public int valitaanSanojenLukumaariinPerustuen(String lause) {
  46. String[] palat = lause.split(" ");
  47.  
  48. int valittuSanamaara = 0;
  49. int eiValittuSanamaara = 0;
  50.  
  51. for (String sana : palat) {
  52. if (valittuSanat.containsKey(sana)) {
  53. valittuSanamaara += valittuSanat.get(sana);
  54. }
  55.  
  56. if (eiValittuSanat.containsKey(sana)) {
  57. eiValittuSanamaara += eiValittuSanat.get(sana);
  58. }
  59. }
  60.  
  61. if (valittuSanamaara > eiValittuSanamaara) {
  62. return 1;
  63. } else if (valittuSanamaara < eiValittuSanamaara) {
  64. return -1;
  65. }
  66.  
  67. return 0;
  68. }
  69.  
  70. public int valitaanMystisellaEnnustajalla(String lause) {
  71. int yhteensaLauseet = this.eiValittujenLauseidenMaara + this.valittujenLauseidenMaara;
  72.  
  73. double valitaan = this.valittujenLauseidenMaara / yhteensaLauseet;
  74. double hylataan = this.eiValittujenLauseidenMaara / yhteensaLauseet;
  75.  
  76. String[] palat = lause.split(" ");
  77.  
  78. for (String sana : palat) {
  79. int sananEsiintyminenYhteensa = (this.valittuSanat.getOrDefault(sana, 0) + this.eiValittuSanat.getOrDefault(sana, 0));
  80.  
  81. if (sananEsiintyminenYhteensa >= 5) {
  82. valitaan = valitaan * this.valittuSanat.getOrDefault(sana, 0) / sananEsiintyminenYhteensa;
  83. hylataan = hylataan * this.eiValittuSanat.getOrDefault(sana, 0) / sananEsiintyminenYhteensa;
  84. }
  85. }
  86.  
  87. if (valitaan > hylataan) {
  88. return 1;
  89. } else if (hylataan > valitaan) {
  90. return -1;
  91. }
  92.  
  93. return 0;
  94. }
  95. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement