Also so wie ich dich verstehe hast Du eine liste von irrelevanten Wörtern und einen (mehrere) Text(e).
Ziel: Wort-Liste (vom Text) von dem keines ein irrelevantes Wort sein darf.
Das ist nicht schwierig:
Speichere alle irrelevanten Wörter in einem Set ab (HashSet ist hier vorteilhaft).
Um die Wort-Liste zu erstellen machst du zuerst eine LinkedList und iterierst durch alle Wörter im Text:
Set set = getIrrelevantWordSet(); // static wordSet
List list = new LinkedList();
String[] strArray = text.split("\s");
for (int i=0; i<strArray.length; i++) {
if (set.contains(strArray[i]) continue;
list.add(strArray[i];
}
Natürlich sollten die irrelevanten Wörter nur einmal für alle Texte kreiiert werden.
Hallo,
ich hätte mal gerne einen Vorschlag, wie man in JAVA folgenden Vorgang effizient abbilden könnte:
Ausgangspunkt: Eine Liste von Wörtern, die für die folgende Bearbeitung irrelevant ist (das werden viele, in dieser Klammer steht nicht viel, was nicht unter irrelevant fiele außer vielleicht Klammer/relevant/irrelevant...).
(Format beliebig: rel. Datenbank, Liste, ...)Ereignis: Einlesen eines Textes mit irrelevanten (s.o.) und relevanten Wörtern
Vorgang: Wandele den Text so um, dass lediglich die relevanten Wörter übrig bleiben.
Frage: Wie macht man das am Besten? Ich wäre ja "geneigt" (ist gelogen, mir gefällt die Lösung nicht wirklich, aber sie klingt auf den ersten Gedanken schnell) die irrelevanten Wörter in einer Tabelle unterzubringen, den neuen Text Wortweise in eine Tabelle zu bringen und anschließend eine Art
DELETE FROM texttab
WHERE ... NOT IN (SELECT ... FROM irrelevanttab)Es ist aber eigentlich VÖLLIG unsinnig, Wörter in eine Datenbank zu bringen um sie dann wieder zu löschen. Endergebnis des Vorganges ist in jedem Fall eine Speicherung der relevanten Wörter, d.h. nach diesem löschen wäre man quasi fertig.
Was sind jetzt die Alternativen? Ich kann mir nicht vorstellen, dass eine regular Expression x-Mal oder mit x Wörtern auszuführen noch sehr effizient möglich wäre.
Gibt es eine andere Möglichkeit (Array, Liste), diese Umsetzung vorzunehmen?MfG
Rouven