Wort zählen in einem String
Verfasst: Donnerstag 15. Dezember 2005, 20:44
hallo welt!
(in diesem fall kann ich nicht auf regexp verzichten, da das ganze noch erweitert wird...falls Ihr mich davon abbringen wollt...)
zum ermitteln aller wörter verwende ich: re.compile('[\wäüöÄÜÖ]+',re.I)
das klappt auch bestens. doch wie kann ich nun noch die anzahl eines jeden wortes ermitteln.
hab hier mal eine funktion gebastelt, welche einfach die häufigkeit der buchstabenfolge angibt; also ohne berücksichtigung, ob es teil eines wortes ist oder ob es ein ganzes wort ist(strenge=0). wird bei dieser funktion stattdessen verlangt, die tatsächliche anzahl von vorkommnissen dieses wortes, zu ermitteln(streng=1), fehlt mir der passende regexp.
entscheidend ist eben, dass im prinzip ja alles außer \wäüöÄÜÖ bzw. alles außer gültigen Buchstaben vor und auch nach dem wort kommen dürfen. und das ist nicht NUR auf leerzeichen und punk, komma, etc bezogen.
dann hoff ich mal auf Eure hilfe.
danke schonmal
schönen tag noch
Edit (Leonidas): Code in Python-Tags gesetzt.
(in diesem fall kann ich nicht auf regexp verzichten, da das ganze noch erweitert wird...falls Ihr mich davon abbringen wollt...)
zum ermitteln aller wörter verwende ich: re.compile('[\wäüöÄÜÖ]+',re.I)
das klappt auch bestens. doch wie kann ich nun noch die anzahl eines jeden wortes ermitteln.
hab hier mal eine funktion gebastelt, welche einfach die häufigkeit der buchstabenfolge angibt; also ohne berücksichtigung, ob es teil eines wortes ist oder ob es ein ganzes wort ist(strenge=0). wird bei dieser funktion stattdessen verlangt, die tatsächliche anzahl von vorkommnissen dieses wortes, zu ermitteln(streng=1), fehlt mir der passende regexp.
Code: Alles auswählen
def wort_zaehlen(wort_x,txt,streng=0):
if(streng==0):
wort=re.compile(wort_x+'+',re.I)
#if(streng==1):
#wort=re.compile('[\wäüöÄÜÖ]+'wort_x+'+',re.I)
woerter=wort.findall(txt)
return len(woerter)
dann hoff ich mal auf Eure hilfe.
danke schonmal
schönen tag noch
Edit (Leonidas): Code in Python-Tags gesetzt.