Toteutus
Muutakaa suunnitelma koodiksi: normalisoikaa, tokenisoikaa, laskekaa ja tulostakaa tärkeimmät tulokset pienin, helposti luettavin askelin.
Toteutus on ilmainen Java Academy-oppitunti CoddyKitissä. Tämä on oppitunti 2/3. Voit lukea koko oppitunnin alta ilmaiseksi ja harjoitella sen jälkeen käytännössä selaimessa sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla. Oppitunti kuuluu Java Academy-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. Java Academy-kurssilla on yhteensä 3 oppituntia.
Suunnitelman kertaus
Suunnitelman kertaus: Muunna teksti pieniksi kirjaimiksi, poista välimerkit, jaa teksti tokeneiksi, laske esiintymät kartan avulla ja tulosta kokonaismäärät sekä N yleisintä sanaa. Pidä jokainen vaihe pienenä ja selkeänä.
Normalisointi
Normalisointi: muunnetaan teksti pieniksi kirjaimiksi ja korvataan muut kuin kirjaimet välilyönneillä. Näin sanoista Be ja be ei synny erillisiä tokeneita, ja pilkut sekä pisteet poistuvat.
Tokenisointi
Tokenisointi: teksti jaetaan tyhjemerkkien kohdalta selkeiksi sanoiksi. Teksti siistitään ensin, jotta ensimmäinen tokeni ei ole tyhjä.
Laskeminen
Laskeminen: käytetään HashMap-rakennetta, jossa sana yhdistyy lukumäärään. Jokaisen tokenin kohdalla lukumäärää kasvatetaan tai puuttuva sana lisätään arvolla yksi.
Raportointi
Raportointi: tulostetaan kokonaismäärä ja eri sanojen määrä, minkä jälkeen luetellaan N yleisintä sanaa. Pienille teksteille yksinkertainen valintasilmukka riittää.
Koodi: koko suoritus
Suoritus: tulosteessa pitäisi näkyä kokonaismäärät, eri sanojen määrä ja kärkiluettelo. Suurilla tekstimäärillä valinta kannattaa korvata lajittelulla tai minimikeolla.
public class Main {
public static void main(String[] args) {
// Implementation: normalize, tokenize, count, and print top 5.
String text = "Be yourself; everyone else is already taken. Be kind. Be clear.";
// 1) Lowercase
String lower = text.toLowerCase();
// 2) Replace non letters with spaces
String cleaned = lower.replaceAll("[^a-z]+", " ");
// 3) Split on spaces and filter empties
String[] tokens = cleaned.trim().split("\\s+");
java.util.Map<String, Integer> freq = new java.util.HashMap<>();
int total = 0;
for (int i = 0; i < tokens.length; i = i + 1) {
String w = tokens[i];
if (w.length() == 0) continue;
total = total + 1;
Integer c = freq.get(w);
if (c == null) freq.put(w, 1);
else freq.put(w, c + 1);
}
// Print top 5 words using repeated selection (simple for small data)
int topN = 5;
for (int k = 0; k < topN; k = k + 1) {
String bestWord = null;
int bestCount = -1;
for (java.util.Map.Entry<String,Integer> e : freq.entrySet()) {
String word = e.getKey();
int count = e.getValue();
if (count > bestCount) {
bestCount = count;
bestWord = word;
}
}
if (bestWord == null || bestCount < 0) break;
System.out.println("#" + (k + 1) + " " + bestWord + " = " + bestCount);
// mark as used so it will not be picked again
freq.put(bestWord, -1000000);
}
System.out.println("Total words: " + total);
System.out.println("Unique words: " + (freq.size()));
}
}
Yhdenmukaisuuden tarkistus
Pikatarkistus: mikä vaihe on välttämätön, jotta laskenta pysyy yhdenmukaisena kirjainkoon ja välimerkkien vaihdellessa?
Kertaus
Kertaus: toteutitte käsittelyputken alusta loppuun. Seuraavaksi testaamme reunatapauksia ja pohdimme yksinkertaisia laajennuksia.
Opi Java tekoälytuutorin avulla — ilmaiseksi
Kirjoita ja suorita oikeaa koodia selaimessa, saa välitöntä apua tekoälytuutorilta ympäri vuorokauden ja jatka siitä, mihin jäit, verkossa tai sovelluksessa.
- Kurssit
- 104
- Oppitunnit
- 374
Usein kysytyt kysymykset
Onko oppitunti ”Toteutus” ilmainen?
Kyllä – oppitunnin ”Toteutus” koko tekstin voi lukea täällä verkossa ilmaiseksi. Jos haluat harjoitella interaktiivisesti sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla sekä avata koko Java Academy-kurssin, päivitä CoddyKit PROhon. Java Academy-kurssilla on yhteensä 3 oppituntia.
Mitä opin oppitunnilla ”Toteutus”?
Muutakaa suunnitelma koodiksi: normalisoikaa, tokenisoikaa, laskekaa ja tulostakaa tärkeimmät tulokset pienin, helposti luettavin askelin. Harjoittelet Java Academy-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.
Tarvitsenko kokemusta aloittaakseni Java Academy-opiskelun?
Aiempi kokemus ei ole tarpeen. CoddyKitin Java Academy-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 2/3.
Kuinka kauan ”Toteutus”-oppitunnin suorittaminen kestää?
Useimmat CoddyKitin oppitunnit kestävät noin 5–10 minuuttia. Jokainen oppitunti on lyhyt ja interaktiivinen, joten edistyt tasaisesti ja voit jatkaa siitä, mihin jäit – sekä verkossa että sovelluksessa.
Voinko kirjoittaa ja suorittaa koodia tällä Java Academy-oppitunnilla?
Kyllä. Jokainen Java Academy-oppitunti sisältää sisäänrakennetun koodieditorin, joten voit kirjoittaa ja suorittaa oikeaa koodia suoraan selaimessa ja saada välitöntä palautetta tekoälyltä – paikallista asennusta ei tarvita.