Feedback

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

Veröffentlicht von am 7/30/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!