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".
Anagramm-Generator
Noch zu "text_for_anagram":
Elemente aus einer Liste zu löschen, über welche du gerade iterierst, ist übrigens keine gute Idee 
Code: Alles auswählen
def text_for_anagram(anagram):
test = set(anagram).issuperset
for word in WORDS:
if test(set(word)):
yield word

Das Leben ist wie ein Tennisball.
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.
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.
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.
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.
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:
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...
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
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 ?
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 ?