Seite 2 von 2
Re: Anagramm-Generator
Verfasst: Freitag 3. Dezember 2010, 12:28
von Xynon1
Nein, nicht ganz.
Ich will das Wort/Satzt/Buchstabensalat teilen und sehen, ob andere Wörter rein passen.
Die Funktion soll nun nichts weiter machen als zu prüfen welche Wörter alle in meinen Buschstabensalat passen.
zB. bei dem Wort "Autogramm" würde es mir etwas in der Art ausgeben:
["Auto", "Amor", "Armut", "Gramm", "Ort", ...]
Dann natürlich dann aber klein und sortiert.
Bei der ".get(...)" Methode würde ich nur Wörter bekommen, die exakt die selben Buchstaben haben wie das Anagram.
Hier bekomm ich halt alle die "reinpassen".
Re: Anagramm-Generator
Verfasst: Freitag 3. Dezember 2010, 14:00
von EyDu
Noch zu "text_for_anagram":
Code: Alles auswählen
def text_for_anagram(anagram):
test = set(anagram).issuperset
for word in WORDS:
if test(set(word)):
yield word
Elemente aus einer Liste zu löschen, über welche du gerade iterierst, ist übrigens keine gute Idee

Re: Anagramm-Generator
Verfasst: Freitag 3. Dezember 2010, 14:19
von Xynon1
Da musst du dich verguckt haben, oder ich.
Denn ich lösche aus "chars", iterieren tue ich aber über "WORDS" und "anagram".
Bei deiner Lösung sehe ich auch ein Problem, werden bei "set"s nicht alle doppelten/dreifachen/... Buchstaben entfernt ?
Denn wenn dem so ist, gibt es das Problem, das zB in das Wort "an", "anna" reinpassen würde.
Umgekehrt kein Problem, aber so wäre das ein Fehler.
Re: Anagramm-Generator
Verfasst: Freitag 3. Dezember 2010, 20:53
von EyDu
Da habe ganz offensichtlich nicht richtig gelesen. Als Kur verschreibe ich mir mal mehr schlaf

Re: Anagramm-Generator
Verfasst: Freitag 3. Dezember 2010, 23:10
von derdon
Ich finds cool, dass dieser Thread so eine starke Resonanz hervorgerufen hat. Mit so vielen Antworten habe ich gar nicht gerechnet, finde sie alle sehr interessant!
Re: Anagramm-Generator
Verfasst: Montag 6. Dezember 2010, 09:39
von Xynon1
Keiner eine Idee, wie man das Kombinieren noch optimieren kann ?
Denn wenn man 3 Wörter sucht, dauert das eine Ewigkeit, bei 2 Wörtern ist das Tempo in Ordnung, aber 4 sind schon fast unmöglich.
Re: Anagramm-Generator
Verfasst: Montag 6. Dezember 2010, 09:52
von snafu
Das Kombinieren läuft bei mir bestimmt 20 Sekunden. Möchte mal behaupten, in dieser Form ist es eigentlich unverwendbar. Zudem sollten IMHO nur grammatisch sinnvolle Kombinationen ausgespuckt werden. Ich poste zur Veranschaulichung mal die Ausgabe:
Code: Alles auswählen
urx@murx:~$ python test.py
Antigone: ['Negation']
Fr. Inge C. Sonst, Rheine: ['Schornsteinfegerin']
Ich sollte ein Anagram sein.: Maschinerien Analogteils
allegorischem Asiatinnen
Samoainseln nachteiliger
Eismaschinen Alligatoren
allergisches Animationen
Italieners angolanischem
Anachronismen allseitige
Was hier beispielsweise ginge, wären Kombinationen aus "allseitige" und einer der Pluralformen. Nur muss man dabei natürlich wieder darauf achten, dass es mit den übriggebliebenen Buchstaben auch noch passt. Und ich möchte nicht wissen, was das alles an zusätzlicher Rechenzeit kosten wird...
Re: Anagramm-Generator
Verfasst: Montag 6. Dezember 2010, 10:38
von Xynon1
Bei mir sind es ziemlich genau 16 Sekunden.
Aber ja, das mit der "grammatisch sinnvolle Kombinationen", ist mir auch schon aufgefallen.
Es erinnert mich an ein lehrnfähiges Sprachprogramm welches ich vor ein paar Monaten ausprobiert habe.
Dafür wurde ein
BOMP verwendet, welches ein Wörterbuch Text-Ausprache ist und eine weiteres Wörterbuch, welches zur Zuordnung des Wortes in einer Satztstrucktur genutzt wurde.
Dann konnte man eine Liste an Satzstruckturen bilden und diese dann aus den Wörtern die einem Satztstruckturelement bestücken.
Was ich damit sagen will ist, das man für eine solche Komplexität eigentlich "nur" noch ein Wörterbuch braucht, welches ein Übersetzung Wort zu Satztstruckturelement macht, dann könnte man die Wörter auch in eine solche Strucktur pressen.
Die ja dann imho etwas weniger Rechenzeit erordern, weil ja nicht mehr Wahllos kombiniert werden muss.
Problem nur, ich habe kein Wörterbuch Wort-zu-Satztstruckturelemen, dieses musste man in dem Sprachprogramm auch selbst definieren.
Und für alle Wörter in dem "ngerman"-Wörterbuch, halte ich leider etwas zu aufwendig.
Kennt jemand zufällig ein Dictionary für solche Zwecke ?