Feedback

C# - Stopwörter in einem Text entfernen (Deutsch)

Veröffentlicht von am 30.07.2006
(2 Bewertungen)
Bei der Volltextsuche stören häufig Wörter wie "aber" oder "der", diese können mit dieser Funktion entfernt werden.

benötigte Namespaces:
System.Collections
System.Text.RegularExpressions
/// <summary>
/// Diese Funktion entfernt alle deutschen Stopworte aus dem übergebenen String.
/// </summary>
/// <param name="Orginaltext">der Orginaltext</param>
/// <returns>der Orginaltext ohne Stopworte und ohne satz- und sonderzeichen</returns>
private string StoppwörterEntfernen(string orginaltext)
{
    // dieses Array enthällt alle Stoppwörter
    string[] arrStopwörter = { "aber", "alle", "allen", "alles", "als", "also", "andere", "anderem", "anderer", "anderes", "anders", "auch", "auf", "aus", "ausser", "ausserdem", "bei", "beide", "beiden", "beides", "beim", "bereits", "bestehen", "besteht", "bevor", "bin", "bis", "bloss", "brauchen", "braucht", "dabei", "dadurch", "dagegen", "daher", "damit", "danach", "dann", "darf", "darueber", "darum", "darunter", "das", "dass", "davon", "dazu", "dem", "den", "denn", "der", "des", "deshalb", "dessen", "die", "dies", "diese", "diesem", "diesen", "dieser", "dieses", "doch", "dort", "duerfen", "durch", "durfte", "durften", "ebenfalls", "ebenso", "ein", "eine", "einem", "einen", "einer", "eines", "einige", "einiges", "einzig", "entweder", "erst", "erste", "ersten", "es", "etwa", "etwas", "falls", "fast", "ferner", "folgender", "folglich", "fuer", "ganz", "geben", "gegen", "gehabt", "gekonnt", "gemaess", "getan", "gewesen", "gewollt", "geworden", "gibt", "habe", "haben", "haette", "haetten", "hallo", "hat", "hatte", "hatten", "heraus", "herein", "hier", "hin", "hinein", "hinter", "ich", "in", "ihm", "ihn", "ihnen", "ihr", "ihre", "ihrem", "ihren", "ihres", "immer", "indem", "infolge", "innen", "innerhalb", "ins", "inzwischen", "irgend", "irgendwas", "irgendwen", "irgendwer", "irgendwie", "irgendwo", "ist", "jede", "jedem", "jeden", "jeder", "jedes", "jedoch", "jene", "jenem", "jenen", "jener", "jenes", "kann", "kein", "keine", "keinem", "keinen", "keiner", "keines", "koennen", "koennte", "koennten", "konnte", "konnten", "kuenftig", "leer", "machen", "macht", "machte", "machten", "man", "mehr", "mein", "meine", "meinen", "meinem", "meiner", "meist", "meiste", "meisten", "mich", "mit", "moechte", "moechten", "muessen", "muessten", "muss", "musste", "mussten", "nach", "nachdem", "nacher", "naemlich", "neben", "nein", "nicht", "nichts", "noch", "nuetzt", "nur", "nutzt", "ob", "obgleich", "obwohl", "oder", "ohne", "per", "pro", "rund", "schon", "sehr", "seid", "sein", "seine", "seinem", "seinen", "seiner", "seit", "seitdem", "seither", "selber", "sich", "sie", "siehe", "sind", "sobald", "solange", "solch", "solche", "solchem", "solchen", "solcher", "solches", "soll", "sollen", "sollte", "sollten", "somit", "sondern", "soweit", "sowie", "spaeter", "stets", "such", "ueber", "ums", "und", "uns", "unser", "unsere", "unserem", "unseren", "viel", "viele", "vollstaendig", "vom", "von", "vor", "vorbei", "vorher", "vorueber", "waehrend", "waere", "waeren", "wann", "war", "waren", "warum", "was", "wegen", "weil", "weiter", "weitere", "weiterem", "weiteren", "weiterer", "weiteres", "weiterhin", "welche", "welchem", "welchen", "welcher", "welches", "wem", "wen", "wenigstens", "wenn", "wenngleich", "wer", "werde", "werden", "weshalb", "wessen", "wie", "wieder", "will", "wir", "wird", "wodurch", "wohin", "wollen", "wollte", "wollten", "worin", "wuerde", "wuerden", "wurde", "wurden", "zufolge", "zum", "zusammen", "zur", "zwar", "zwischen" };

    // Dictionary anlegen
    Dictionary<string, bool> dicStöppwörter = new Dictionary<string, bool>();
    
    // Dictionary füllen
    foreach (string stoppwort in arrStopwörter)
        dicStöppwörter.Add(stoppwort, true);
 
    // String Array aus dem Orginaltext anlegen, alle "nicht - Wortzeichen" werden entfernt
    string[] arrOrginaltext = Regex.Split(orginaltext, @"\W+");

    // Stringbuilder für den Rückgabewert anlegen
    StringBuilder rückgabe = new StringBuilder();

    // nur alle nicht-Stoppwörter werden an den Rückgabestring angehängt
    foreach (string wort in arrOrginaltext)
        if (!dicStöppwörter.ContainsKey(wort.ToLower()))
            rückgabe.Append(wort + " ");

    return rückgabe.ToString();
}
Abgelegt unter Stopwort, Stopwörter, Suche, Volltextsuche.

Kommentare zum Snippet

 

Logge dich ein, um hier zu kommentieren!