Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package tarkastaja;
- import java.util.HashMap;
- import java.util.Map;
- public class Ennustaja {
- private final Map<String, Integer> valittuSanat;
- private final Map<String, Integer> eiValittuSanat;
- private int valittujenLauseidenMaara = 0;
- private int eiValittujenLauseidenMaara = 0;
- public Ennustaja() {
- valittuSanat = new HashMap<>();
- eiValittuSanat = new HashMap<>();
- }
- public void lisaa(boolean valitaan, String lause) {
- if (valitaan) {
- this.valittujenLauseidenMaara++;
- String[] palat = lause.split(" ");
- for (String sana1 : palat) {
- if (!valittuSanat.containsKey(sana1)) {
- valittuSanat.put(sana1, 1);
- } else {
- valittuSanat.put(sana1, valittuSanat.get(sana1) + 1);
- }
- }
- } else if (valitaan == false) {
- this.eiValittujenLauseidenMaara++;
- String[] palat = lause.split(" ");
- for (String sana1 : palat) {
- if (!eiValittuSanat.containsKey(sana1)) {
- eiValittuSanat.put(sana1, 1);
- } else {
- eiValittuSanat.put(sana1, eiValittuSanat.get(sana1) + 1);
- }
- }
- }
- }
- public int valitaanSanojenLukumaariinPerustuen(String lause) {
- String[] palat = lause.split(" ");
- int valittuSanamaara = 0;
- int eiValittuSanamaara = 0;
- for (String sana : palat) {
- if (valittuSanat.containsKey(sana)) {
- valittuSanamaara += valittuSanat.get(sana);
- }
- if (eiValittuSanat.containsKey(sana)) {
- eiValittuSanamaara += eiValittuSanat.get(sana);
- }
- }
- if (valittuSanamaara > eiValittuSanamaara) {
- return 1;
- } else if (valittuSanamaara < eiValittuSanamaara) {
- return -1;
- }
- return 0;
- }
- public int valitaanMystisellaEnnustajalla(String lause) {
- int yhteensaLauseet = this.eiValittujenLauseidenMaara + this.valittujenLauseidenMaara;
- double valitaan = this.valittujenLauseidenMaara / yhteensaLauseet;
- double hylataan = this.eiValittujenLauseidenMaara / yhteensaLauseet;
- String[] palat = lause.split(" ");
- for (String sana : palat) {
- int sananEsiintyminenYhteensa = (this.valittuSanat.getOrDefault(sana, 0) + this.eiValittuSanat.getOrDefault(sana, 0));
- if (sananEsiintyminenYhteensa >= 5) {
- valitaan = valitaan * this.valittuSanat.getOrDefault(sana, 0) / sananEsiintyminenYhteensa;
- hylataan = hylataan * this.eiValittuSanat.getOrDefault(sana, 0) / sananEsiintyminenYhteensa;
- }
- }
- if (valitaan > hylataan) {
- return 1;
- } else if (hylataan > valitaan) {
- return -1;
- }
- return 0;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement