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