mustererkennung...

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
chocostick

hi,

soll n pythonprog schreibn das zur mustererkennung(suchen in texten) dient.
den grund aufbau hab ich shcon mal, aber soll jetzt einmal noch das prog so erweitern, dass das prog jedes muster aus dem text findet und dies dann auch dem benutzer zeigt (also print oder return... weiß es net so genau)
es soll dann dein Tupel mit allen positionen liefern...

außerdem außerdem soll das programm ein muster "zensieren" also wenn in einem wort wie arschaks das wort arsch steht soll das programm eine 0 wiedergeben (wenn es nicht enthalten is eine 1) hoffe ihr könnt mir wenigstens n bissle helfen...

hier is mein fertiger code zu einfachen mustererkennung:

Code: Alles auswählen

def suche(text,muster):
textlaenge = len(text)
musterlaenge = len(muster)
for index in range(0,textlaenge-musterlaenge+1,1):
if text[index:(index + musterlaenge)] == muster:
return index
return -1
t = "ersagteabernichtsaber"
m = "aber"
print suche(t,m)
thx schon mal

Edit (Leonidas): Code in Python-Tags gesetzt. Einrücken werde ich aber nicht.
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Warum denn so umständlich?
Den Code sieht so aus:

Code: Alles auswählen

def suche(text,muster):
    textlaenge = len(text)
    musterlaenge = len(muster)
    for index in range(0,textlaenge-musterlaenge+1,1):
        if text[index:(index + musterlaenge)] == muster:
            return index
    return -1
    
t = "ersagteabernichtsaber"
m = "aber"
print suche(t,m)
Aber man braucht doch nur so viel:

Code: Alles auswählen

t = "ersagteabernichtsaber"
m = "aber"
print t.index(m)
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
BlackJack

Das sieht so verdammt nach Hausaufgabe aus.
chocostick hat geschrieben:soll n pythonprog schreibn das zur mustererkennung(suchen in texten) dient.
den grund aufbau hab ich shcon mal, aber soll jetzt einmal noch das prog so erweitern, dass das prog jedes muster aus dem text findet und dies dann auch dem benutzer zeigt (also print oder return... weiß es net so genau)
Wenn Du es dem Benutzer zeigen sollst dann musst Du auf jeden Fall irgendwo ``print`` verwenden.
es soll dann dein Tupel mit allen positionen liefern...
Da würde ich eher eine Liste mit Positionen als Rückgabewert empfehlen.
außerdem außerdem soll das programm ein muster "zensieren" also wenn in einem wort wie arschaks das wort arsch steht soll das programm eine 0 wiedergeben (wenn es nicht enthalten is eine 1) hoffe ihr könnt mir wenigstens n bissle helfen...
Das allgemein hinzubekommen dürfte schwer sein weil der Computer ja nicht weiss was die "bösen" Worte sind. ;-)

@Leonidas: Das ist vielleicht so "umständlich" weil die in der Hausaufgabe lernen sollen wie man das Problem selbst löst. Das mit `re.findall()` zu lösen dürfte dann keine Punkte bringen. ;-)
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

BlackJack hat geschrieben:
außerdem außerdem soll das programm ein muster "zensieren" also wenn in einem wort wie arschaks das wort arsch steht soll das programm eine 0 wiedergeben (wenn es nicht enthalten is eine 1) hoffe ihr könnt mir wenigstens n bissle helfen...
Das allgemein hinzubekommen dürfte schwer sein weil der Computer ja nicht weiss was die "bösen" Worte sind. ;-)
Außerdem würde ich statt 0 und 1 die Werte True und False empfehlen, da sie meiner Meinung nach aussagekräftiger sind.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Antworten