Initial commit of the source files.
This commit is contained in:
parent
82e54941ec
commit
1bb50ec2c3
|
@ -0,0 +1,97 @@
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.HashSet;
|
||||||
|
import java.util.Map.Entry;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Zaehlt die Anzahl Vorkommnisse von Woertern ueber mehrere Zeichenketten. Es
|
||||||
|
* lassen sich eine beliebige Anzahl an Zeichenketten uebergeben. Die Statistik
|
||||||
|
* wird fortlaufend gefuehrt. Die Wortzaehlung laesst sich jederzeit ausgeben.
|
||||||
|
* Die Satzeichen . , ? ! " : ; werden entfernt. Alle Buchstaben werden in
|
||||||
|
* Kleinbuchstaben umgewandelt um beispielsweise das Wort 'die' inmitten eines
|
||||||
|
* Satzes und das Wort 'Die' am Anfang eines Satzes als gleiches Wort werten zu
|
||||||
|
* koennen.
|
||||||
|
*
|
||||||
|
* @version 1.0
|
||||||
|
* @author tebe
|
||||||
|
*/
|
||||||
|
public class Worthaeufigkeitsanalyse {
|
||||||
|
|
||||||
|
private static HashSet<String> satzzeichen = new HashSet<String>();
|
||||||
|
static {
|
||||||
|
satzzeichen.add(".");
|
||||||
|
satzzeichen.add(",");
|
||||||
|
satzzeichen.add("?");
|
||||||
|
satzzeichen.add("!");
|
||||||
|
satzzeichen.add("''");
|
||||||
|
satzzeichen.add(":");
|
||||||
|
satzzeichen.add(";");
|
||||||
|
}
|
||||||
|
private HashMap<String, Integer> woerterHaeufigkeit = new HashMap<String, Integer>();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Nimmt die uebergebene Zeichenkette in die Worthaeufigkeitsanalyse auf.
|
||||||
|
*
|
||||||
|
* @param text zu verarbeitende Zeichenkette
|
||||||
|
*/
|
||||||
|
public void verarbeiteText(String text) {
|
||||||
|
String[] woerter = text.split(" ");
|
||||||
|
|
||||||
|
for (int i = 0; i < woerter.length; i++) {
|
||||||
|
String wort = woerter[i].trim();
|
||||||
|
wort = wort.toLowerCase();
|
||||||
|
wort = entferneSatzzeichen(wort);
|
||||||
|
|
||||||
|
if (!satzzeichen.contains(wort)) {
|
||||||
|
if (woerterHaeufigkeit.containsKey(wort)) {
|
||||||
|
Integer zaehler = woerterHaeufigkeit.get(wort);
|
||||||
|
woerterHaeufigkeit.put(wort, zaehler++);
|
||||||
|
} else {
|
||||||
|
woerterHaeufigkeit.put(wort, 1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private String entferneSatzzeichen(String wort) {
|
||||||
|
boolean satzzeichenGefunden;
|
||||||
|
|
||||||
|
do {
|
||||||
|
satzzeichenGefunden = false;
|
||||||
|
|
||||||
|
for (String zeichen : satzzeichen) {
|
||||||
|
if (wort.startsWith(zeichen)) {
|
||||||
|
satzzeichenGefunden = true;
|
||||||
|
wort = wort.substring(1, wort.length());
|
||||||
|
}
|
||||||
|
if (wort.endsWith(zeichen)) {
|
||||||
|
satzzeichenGefunden = true;
|
||||||
|
wort = wort.substring(0, wort.length() - 1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} while (satzzeichenGefunden);
|
||||||
|
|
||||||
|
return wort;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Ausgabe der Worthaeufigkeitsanalyse auf der Konsole.
|
||||||
|
*/
|
||||||
|
public void druckeStatistik() {
|
||||||
|
for (Entry<String, Integer> wortHaeufigkeit : woerterHaeufigkeit
|
||||||
|
.entrySet()) {
|
||||||
|
System.out.println(wortHaeufigkeit.getKey() + "\t"
|
||||||
|
+ wortHaeufigkeit.getValue());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void main(String[] args) {
|
||||||
|
Worthaeufigkeitsanalyse hauefigkeitsanalyse = new Worthaeufigkeitsanalyse();
|
||||||
|
hauefigkeitsanalyse
|
||||||
|
.verarbeiteText("Fritz sagt: \"Die Softwareentwicklung ist meine Leidenschaft!\"");
|
||||||
|
hauefigkeitsanalyse
|
||||||
|
.verarbeiteText("Hans meint, er teile die Leidenschaft mit Fritz.");
|
||||||
|
hauefigkeitsanalyse
|
||||||
|
.verarbeiteText("John fuegt hinzu, dass die Softwareentwicklung nicht nur aus Programmieren bestehe, sondern es sich dabei um einen komplexen Prozess, bestehend aus vielen kleinen Komponenten, handelt.\"");
|
||||||
|
hauefigkeitsanalyse.druckeStatistik();
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue