Neuling :)

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.
BlackJack

@danbui: Das lässt sich nicht übersetzen -- da fehlt die Einrückung.

Dateien die man öffnet sollte man auch wieder schliessen.

Zeilen bitte nicht so lang werden lassen. Insbesondere könnte man die Anzahl der `replace()`\es entweder durch eine Schleife verringern oder mal die `translate()`-Methode auf Zeichenketten anschauen. Den Punkt braucht man auch nur einmal ersetzen. ;-) Eventuell wäre auch ein regulärer Ausruck, der auf "Worte" passt, nützlich. Dann braucht man keine Negativliste von allen "Sonderzeichen". '%' hast Du zum Beispiel nicht, es gibt aber 100%ig Texte in denen das Zeichen vorkommt. ;-)

`Lesen` ist kein guter Name für eine Liste. `word` ist kein guter Name für eine Zahl. `myLesen` ist kein guter Funktionsname. Und ob `count` ein guter Name für eine Liste ist…

Erklär doch mal in Worten was die Bedingung bei dem ``if`` beschreibt, und wann die wohl mal `False` ergibt.

Was Du "falsch" machst, hängt ganz davon ab was Du machen willst. Wenn das was da ausgegeben wird, dass ist was Du haben willst, dann machst Du alles richtig. Wenn nicht, dann solltest Du mal formulieren was Du von dem Quelltext erwartet hättest und wie das vom beobachteten Ergebnis abweicht.
danbui
User
Beiträge: 9
Registriert: Donnerstag 11. März 2010, 16:52

........wenn das Programm mal laufen sollte, dass folgendes steht :

1. kein, mein
2. taler, maler
usw.

-------Ich möchte alle Wörter aus dem Text extrahieren, und zwar
mit der besten Übereinstimmung.--------

:wink: :roll: :roll: :roll:
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

danbui hat geschrieben:........wenn das Programm mal laufen sollte, dass folgendes steht :

1. kein, mein
2. taler, maler
usw.

-------Ich möchte alle Wörter aus dem Text extrahieren, und zwar
mit der besten Übereinstimmung.--------

:wink: :roll: :roll: :roll:
Und wie schon zig mal erwähnt ist genau dieser Vergleich Dein algorithmisches Hauptproblem! Das Vergleichen über alle Wörter hinweg ist dann eher trivial.
http://paste.pocoo.org/show/188820/
derdon
User
Beiträge: 1316
Registriert: Freitag 24. Oktober 2008, 14:32

Hyperion: Die Funktion rhymes_with nimmt eine beliebige Anzahl an Parametern, es werden aber exakt 2 davon genutzt. Werden also weniger als 2 übergeben, gibt es einen IndexError; bei mehr als 2 übergebenen Argumenten gibt es gar keine Exception. Nicht das Verhalten, das ich von dieser Funktion erwarte. Warum nimmt sie nicht einfach zwei Argumente entegegen?
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

Ja, hast recht... könnte man auch direkt auf zwei beschränken; da man ja eh immer zwei Wörter miteinander vergleichen will.
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

danbui hat geschrieben:auf ähnliche Worte überprüfen
Hallo danbui!

http://pypi.python.org/pypi?%3Aaction=s ... mit=search

mfg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
ms4py
User
Beiträge: 1178
Registriert: Montag 19. Januar 2009, 09:37

gerold hat geschrieben:
danbui hat geschrieben:auf ähnliche Worte überprüfen
Hallo danbui!

http://pypi.python.org/pypi?%3Aaction=s ... mit=search
"Ähnliche Worte" bei einem Rap-Text beziehen sich allerdings nicht (nur) auf die Zeichendistanz zwischen zwei Strings. Das Beispiel von numerix ganz am Anfang ist da sehr anschaulich.

Ich werfe hier noch einmal das Stichwort "Kölner Phonetik" in den Raum. Hier gibts eine Implementierung:
http://www.python-forum.de/viewtopic.ph ... eef5787654

Ob das allerdings besser ist bei Rap-Texten als die Levenshtein-Distanz kann ich auch nicht beurteilen...
danbui
User
Beiträge: 9
Registriert: Donnerstag 11. März 2010, 16:52

. :roll:
Zuletzt geändert von danbui am Freitag 12. März 2010, 21:06, insgesamt 1-mal geändert.
danbui
User
Beiträge: 9
Registriert: Donnerstag 11. März 2010, 16:52

hi leute,

was macht (*args)?

ist das ein Zeiger, wie funktiniert das genau?

Ich habe gedacht args[0] bedeutet Programm Name
args[1]bedeutet erstes Argument.


hmmm..... ich habe immernoch keine wirkliche Lösung.
Benutzeravatar
cofi
Python-Forum Veteran
Beiträge: 4432
Registriert: Sonntag 30. März 2008, 04:16
Wohnort: RGFybXN0YWR0

danbui hat geschrieben:was macht (*args)?
http://tutorial.pocoo.org/controlflow.h ... -auspacken
danbui hat geschrieben:Ich habe gedacht args[0] bedeutet Programm args[1]bedeutet erstes Argument.
Du meinst `sys.argv`: http://docs.python.org/library/sys.html
ms4py
User
Beiträge: 1178
Registriert: Montag 19. Januar 2009, 09:37

danbui hat geschrieben:ich habe immernoch keine wirkliche Lösung.
Man lernt auch keine Programmiersprache von heute auf morgen.
Beschäftige dich ausführlich mit dem Tutorial, dann wird das auch was...
danbui
User
Beiträge: 9
Registriert: Donnerstag 11. März 2010, 16:52

Ist
read().strip().replace(".", "").replace(",", "").replace("!", "").replace("?", "").replace(":", "").replace(".", "").replace("\"", "").replace("\'", "").replace(";", "").replace("\n", " ").lower().split()

das gleiche wie = read().strip(".,!?:\\n;usw")


?? ;)
:?: :?: Danke :Ö)
CM
User
Beiträge: 2464
Registriert: Sonntag 29. August 2004, 19:47
Kontaktdaten:

1. Setze Code doch bitte in entsprechende Tags.
2. Ist eine der schönen Seiten von Python, daß man im Interpreter solche Dinge innerhalb von Sekunden selber testen kann.
3. Gibt man in der Regel Funktionen beschreibende Namen (siehe BlackJacks Post): Also, was meinst Du ist der Unterschied zwischen 'strip' und 'replace'? ;-)
fabi1511
User
Beiträge: 23
Registriert: Donnerstag 25. Juni 2009, 18:59

das mit dem zeiger tut weh :(
Das ist genau der Grund, warum ich Python und nicht C verwende...

zu deinem Problem:
lern erstmal die Grundlagen und mach dir dann klar, dass 'Wörter' wie "Ich" und "Ihh" für fast jeden algorithmus als "ähnlich" durchgehen, aber nie als Reim druchgehen würden...
um Phonetik kommst du nicht herum...
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

danbui hat geschrieben: hmmm..... ich habe immernoch keine wirkliche Lösung.
Wofür denn? Für das Vergleichen aller Elemente miteinander habe ich Dir etwas gepostet.

Wie schon ZIG MAL erwähnt, ist Dein Hauptproblem ja eben grad die "Ähnlichkeits"- / "Reim"-Funktion. Das ist aber ein von Python unabhängiges Problem! Dir wurden ja schon Tipps in div. Richtungen diesbezüglich gegeben.
Antworten