Mieten Sie unendlich viele Affen. Zusätzlich zu den vollständigen Werken von Shakespeare erhalten Sie unendlich viele Haikus.
Jon B
1
@ Jon B: Aber das würde unendlich lange dauern.
Bill the Lizard
+1 für die Frage und die bisherigen Kommentare.
Michael Haren
1
@ Bill, wenn du unendlich viel Zeit hättest, müsstest du nur einen sehr gesunden Affen mieten. Wenn Sie eine unendliche Anzahl von Affen einstellen, wird Ihre Literatur mit einer Geschwindigkeit produziert, die nur durch die Schreibgeschwindigkeit eines besonders brillanten Affen begrenzt ist.
Joeforker
1
@ Darknight, na ja, weil Haikus per Definition aus 17 Moras bestehen und die Anzahl der Moras (oder Ons) endlich ist. Daher ist die Anzahl der Kombinationen, die wohl geringer ist als die Anzahl der tatsächlichen Haikus, die Anzahl der Moras ^ 17. Dies betrifft nur die schriftliche Darstellung des Haiku, nicht seine Bedeutung. (Die Anzahl der Bedeutungen könnte tatsächlich unendlich sein, selbst für eine viel kleinere Anzahl von Haikus, es wurde jedoch nicht aufgefordert, ein Programm zu schreiben, das ein Haiku interpretiert, sondern nur schreibt.)
Unreason
Antworten:
19
Versuchen Sie
es nicht Poesie passt nicht gut
mit Metall und Bits
Im Ernst, beim guten Haiku (und sogar beim schlechten Haiku) geht es viel mehr darum, Bedeutung und Bildsprache zu verdichten, als Silben zu zählen. Es basiert in der Regel auch auf Themen aus der Natur. Durch zufällige Wortgenerierung und Silbenzählung erhalten Sie gemessenen Kauderwelsch, aber keine Poesie ...
Ich weiß es nicht. Die Suche nach Sinn in Zufälligkeit scheint zutiefst menschlich. Was ist ein Gedicht, dem keine Bedeutung beigemessen wurde, sondern nur die Bedeutung, die der Leser daraus gezogen hat? Ist es ein Modell des säkularen Humanismus?
Joeforker
"... Silbenzählung bringt dich dazu, Kauderwelsch zu messen, aber keine Poesie." ... Ich dachte, den Unterschied zu erkennen, war das, worum es beim "Lesen von Gedichten" ging.
Mizipzor
34
Silben messen
Semantischen Fluss verstehen
Ihr Ziel kann erreicht werden
Ohne Ihren Kommentar wäre es ach so viel besser gewesen . Das ist ein bisschen so, als würde man das Publikum daran erinnern, dass "der letzte Satz, weißt du, das war die Pointe. Hast du ihn verstanden?"
Mizipzor
ok, gut, ich werde den Kommentar löschen, wenn Sie Ihren löschen
Jason S
(FWIW meine war die erste kluge Antwort, also war ich vorsichtig, abgelehnt zu werden)
Jason S
9
Haikus sind einfach, ich werde feststellen, dass
Lösungen gut dokumentiert sind und funktionieren.
Sie sind übertrieben und kitschig.
Codierung viel zu einfach.
Codiere mir einen Limerick, dann werde ich abstimmen
bah! Zeitgenössisch-englisches Haiku? Was für ein Mist.
Kevin
5
In Haiku Village verfügen wir über die Technologie, um dies auf verschiedene Weise zu tun. Eine Idee ist, einfach den globalen Twitter-Feed zu lesen und unbeabsichtigte Haikus zu erkennen. Da das Backend auch ein Wörterbuch hat, wäre es möglich, fragwürdige Haikus zu produzieren, aber ich denke, die Qualität würde fehlen.
Ich denke, wenn wir ein Sternebewertungssystem hätten, dann könnte maschinelles Lernen verwendet werden, um zu entscheiden, was „gut“ ist.
@bobobobo - integriert, um die Endlosschleife zu lösen!
Fenton
2
"Es ist sehr schwierig, seine Stimmung in siebzehn Silben zu vermitteln." (Der großartige John Cooper Clarke Schauen Sie sich die Beasley Street an , einen meiner Favoriten)
Wie viel schwieriger für einen Computer? Logik kennt keine Stimmungen :)
Implementieren Sie einen genetischen Algorithmus, um Haikus aus einem Wörterbuch zu generieren, das mit Silbenzahlen versehen ist, und bezahlen Sie dann die Leute, um sie zu lesen und als Fitnessfunktion zu bewerten [mechanischer Türke würde helfen]. Im Laufe der Zeit sollte Ihr Programm einige gute entwickeln.
BEARBEITEN:
Ein GA, den Sie benötigen,
entwickelt sich mit CPU-Geschwindigkeit,
wenn Sie die Fitness beachten
Ich würde nach syntaktischer Programmierung und Sprache suchen und versuchen, Bibliotheken für die grammatikalische Struktur zu finden. Von dort aus sollte es ein einfacher Schritt sein, die Einschränkungen für die Wortanzahl und die Silbenanzahl hinzuzufügen.
Einige Leute hier schlugen vor, ein Wörterbuch zu verwenden und Wortsequenzen mit einer Markov-Kette zu generieren . Dies scheint eine theoretisch praktikable Lösung zu sein, insbesondere wenn Sie eine Markov-Kette höherer Ordnung verwenden (keine Bi- oder Trigramme).
Aber ich denke in der Praxis würde es besser funktionieren, wenn Sie eine Datenbank vorhandener Haikus sammeln und einzelne Wörter darin selektiv ändern könnten (z. B. ein bestimmtes Wort in ein anderes, semantisch verwandtes Wort ändern). Die vorhandenen Haikus geben Ihnen eine Art Struktur und Zusammenhalt, und Sie müssen nur kleine Teile in ihnen (austauschen), um ein neues Haiku zu erstellen (eine Variation des alten).
Natürlich werden sie mit dieser Methode keine völlig neuen Haikus sein, aber zumindest werden sie für die Leser etwas angenehm sein.
Analysieren Sie vorhandene Haikus in einer relationalen Reihenfolge, wie das Wort xx, das nach yy n-mal verwendet wird. Beim Erstellen besteht also die Möglichkeit, dass xx nach yy kommt (n / Summe der Anzahl aller nach yy verwendeten Wörter). Auf diese Weise wird es selektiv randomisiert und kann immer noch ein gültiges Haiku sein.
Das ist eine anständige Beschreibung der Idee hinter Markov-Ketten. Wenn das Wort y 75% der Zeit in der Quelle nach dem Wort x steht, wird y 75% der Zeit in der Ausgabe ausgewählt.
Joeforker
Es funktioniert jedoch besser mit Sätzen von drei Wörtern: Welches Wort folgt diesen beiden Wörtern?
NUR MEINE korrekte MEINUNG
1
Schreiben Sie Ihr Programm, um Haikus auf Japanisch zu generieren. Es wird viel einfacher sein, Ihre Silbenzahl zu messen, wenn Sie der Originalsprache der Poesie treu bleiben. Wenn Sie Flexibilität mit dem Projekt haben, warum nicht das ursprüngliche Japanisch erstellen - dann zeigen Sie die englische wörtliche Übersetzung Wort für Wort an ihrer Seite. Es wird, gelinde gesagt, mysteriös aussehen.
Wie auch immer, nur eine andere Sicht auf das Problem.
Meine haikuFunktion hier kann auf nur 2 Zeilen reduziert werden, ohne Importe.
PaulMcG
0
Ich würde mit einer Art Wörterbuchdatei beginnen, die eine Silbenzahl jedes Wortes enthält. Wählen Sie dann Wörter aus, die sich zu den erforderlichen Silben / Zeilen addieren
Ich habe keine Ahnung, was Poesie und nicht nur zufällige Worte angeht.
Verwenden Sie aus dem semantischen Bereich der Geschichte Sampling und Fourier-Transformation. Wählen Sie wichtige Teile einer detaillierten Beschreibung aus, die in einzelnen Worten reduziert ist, und überlassen Sie es einem Leser, Lücken mit ihrer eigenen Vorstellungskraft zu schließen
Bitte erläutern Sie, wie Sie eine Geschichte als Summe von Sinus- oder Cosinuswellen verschiedener Frequenzen dekonstruieren können.
Joeforker
Nun, was ist die Idee der Probenahme? Abtasten des Signals mit einer Frequenz, die mindestens doppelt so hoch ist wie die höchste Frequenz im interessierenden Bereich. Wenn Sie diskrete Informationen wie diese extrahiert haben, können Sie den Analogeingang ohne Verlust (im interessierten Bereich) rekonstruieren
Boris Pavlović
Analog dazu nehmen Sie wichtige Verben, Substantive und Adjektive auf, die in einigen Beschreibungen Eckpfeiler sind, und lassen alles andere übrig. Wenn Sie diese Wörter in aussagekräftigen Arrays zusammenstellen, erhalten Sie Haiku
Boris Pavlović
0
Der Algorithmus für die Ausgabe eines hochwertigen Haiku durch einen Computer funktioniert ungefähr so:
Einrichtungsphase
loop:
find the email address of a world-renowned writer of haiku
confirm that this person is willing to generate haiku on demand
until sucker^H^H^H^H^H^Hwriter is found
Ausführungsphase
loop:
wait for a haiku request
when a haiku request is received, email the previously-stored master and ask for a haiku
wait for the haiku to return by reply
output haiku
Es gibt natürlich verschiedene Verbesserungen, die an dieser grundlegenden Architektur vorgenommen werden können. Zum Beispiel kann die Einrichtungsphase erweitert werden, um einen Pool von Haiku-Experten einzurichten . Die Ausführungsphase kann verwendet werden, um Haiku während Leerlaufzeiten zu generieren und sie gegen zukünftige Anforderungen zwischenzuspeichern. Die Einzelheiten einer solchen Optimierung bleiben dem Schüler als Übung überlassen.
Ich liebe diese Frage. Es ist sehr einfallsreich. Antwort unten.
Viele Leute haben Markov-Ketten vorgeschlagen, aber ich glaube wirklich nicht, dass es möglich wäre. Sie müssen intelligent wissen, ob die Silbe ein PHONEM ist, dann müssen Sie wissen, wo die Silbe endet.
Wenn Sie dies jemals tun würden, wäre ich erstaunt.
Antworten:
Versuchen Sie
es nicht Poesie passt nicht gut
mit Metall und Bits
Im Ernst, beim guten Haiku (und sogar beim schlechten Haiku) geht es viel mehr darum, Bedeutung und Bildsprache zu verdichten, als Silben zu zählen. Es basiert in der Regel auch auf Themen aus der Natur. Durch zufällige Wortgenerierung und Silbenzählung erhalten Sie gemessenen Kauderwelsch, aber keine Poesie ...
quelle
Silben messen
Semantischen Fluss verstehen
Ihr Ziel kann erreicht werden
quelle
Erstens möchten Sie sich mit Markov-Ketten befassen , und zweitens gibt es ein Buch über computergenerierte Poesie namens Virtual Muse .
quelle
quelle
Haikus sind einfach, ich werde feststellen, dass
Lösungen gut dokumentiert sind und funktionieren.
Sie sind übertrieben und kitschig.
Codierung viel zu einfach.
Codiere mir einen Limerick, dann werde ich abstimmen
// Ich mag eigentlich Haikus
quelle
note
undvote
?Nicht alle Haikus haben die gleiche Anzahl von Silben, aber es ist ein Anfang.
In Bezug auf die tatsächliche Auswahl der Wörter denke ich, dass Teile der Sprache nicht der Ort sind, an dem ich anfangen würde. Stattdessen würde ich mir Markov-Ketten ansehen und Ihren Wortschatz auf vorhandenen Haikus trainieren.
quelle
In Haiku Village verfügen wir über die Technologie, um dies auf verschiedene Weise zu tun. Eine Idee ist, einfach den globalen Twitter-Feed zu lesen und unbeabsichtigte Haikus zu erkennen. Da das Backend auch ein Wörterbuch hat, wäre es möglich, fragwürdige Haikus zu produzieren, aber ich denke, die Qualität würde fehlen.
Ich denke, wenn wir ein Sternebewertungssystem hätten, dann könnte maschinelles Lernen verwendet werden, um zu entscheiden, was „gut“ ist.
quelle
quelle
"Es ist sehr schwierig, seine Stimmung in siebzehn Silben zu vermitteln." (Der großartige John Cooper Clarke Schauen Sie sich die Beasley Street an , einen meiner Favoriten)
Wie viel schwieriger für einen Computer? Logik kennt keine Stimmungen :)
quelle
Um es lesbar zu machen, trennen Sie das Wörterbuch in Substantive, Verben, Adjektive mit Silbenzahl.
Überlegen Sie sich einige Vorlagen des Formulars:
[Nomen] [Verb] "s"
[Verb] a (n) [Adjektiv] [Nomen]
[Adjektiv] [Substantiv]
und schneiden Sie Ihre Wörterbücher auf die schönen Wörter.
quelle
Implementieren Sie einen genetischen Algorithmus, um Haikus aus einem Wörterbuch zu generieren, das mit Silbenzahlen versehen ist, und bezahlen Sie dann die Leute, um sie zu lesen und als Fitnessfunktion zu bewerten [mechanischer Türke würde helfen]. Im Laufe der Zeit sollte Ihr Programm einige gute entwickeln.
BEARBEITEN:
Ein GA, den Sie benötigen,
entwickelt sich mit CPU-Geschwindigkeit,
wenn Sie die Fitness beachten
quelle
Ihr Programm muss
Metaphern und Bilder enthalten
und kreativ sein.
quelle
Ich würde nach syntaktischer Programmierung und Sprache suchen und versuchen, Bibliotheken für die grammatikalische Struktur zu finden. Von dort aus sollte es ein einfacher Schritt sein, die Einschränkungen für die Wortanzahl und die Silbenanzahl hinzuzufügen.
quelle
Einige Leute hier schlugen vor, ein Wörterbuch zu verwenden und Wortsequenzen mit einer Markov-Kette zu generieren . Dies scheint eine theoretisch praktikable Lösung zu sein, insbesondere wenn Sie eine Markov-Kette höherer Ordnung verwenden (keine Bi- oder Trigramme).
Aber ich denke in der Praxis würde es besser funktionieren, wenn Sie eine Datenbank vorhandener Haikus sammeln und einzelne Wörter darin selektiv ändern könnten (z. B. ein bestimmtes Wort in ein anderes, semantisch verwandtes Wort ändern). Die vorhandenen Haikus geben Ihnen eine Art Struktur und Zusammenhalt, und Sie müssen nur kleine Teile in ihnen (austauschen), um ein neues Haiku zu erstellen (eine Variation des alten).
Natürlich werden sie mit dieser Methode keine völlig neuen Haikus sein, aber zumindest werden sie für die Leser etwas angenehm sein.
quelle
Analysieren Sie vorhandene Haikus in einer relationalen Reihenfolge, wie das Wort xx, das nach yy n-mal verwendet wird. Beim Erstellen besteht also die Möglichkeit, dass xx nach yy kommt (n / Summe der Anzahl aller nach yy verwendeten Wörter). Auf diese Weise wird es selektiv randomisiert und kann immer noch ein gültiges Haiku sein.
quelle
Schreiben Sie Ihr Programm, um Haikus auf Japanisch zu generieren. Es wird viel einfacher sein, Ihre Silbenzahl zu messen, wenn Sie der Originalsprache der Poesie treu bleiben. Wenn Sie Flexibilität mit dem Projekt haben, warum nicht das ursprüngliche Japanisch erstellen - dann zeigen Sie die englische wörtliche Übersetzung Wort für Wort an ihrer Seite. Es wird, gelinde gesagt, mysteriös aussehen.
Wie auch immer, nur eine andere Sicht auf das Problem.
quelle
Markov-Sequenzen
Eine Silbendatenbank
Drei Python-Zeilen
quelle
haiku
Funktion hier kann auf nur 2 Zeilen reduziert werden, ohne Importe.Ich würde mit einer Art Wörterbuchdatei beginnen, die eine Silbenzahl jedes Wortes enthält. Wählen Sie dann Wörter aus, die sich zu den erforderlichen Silben / Zeilen addieren
Ich habe keine Ahnung, was Poesie und nicht nur zufällige Worte angeht.
quelle
Sie können nicht nur Ians Idee der Silbenzahl verwenden, sondern auch die Wörter nach einem Teil der Sprache kategorisieren und Phrasen generieren.
quelle
Verwenden Sie aus dem semantischen Bereich der Geschichte Sampling und Fourier-Transformation. Wählen Sie wichtige Teile einer detaillierten Beschreibung aus, die in einzelnen Worten reduziert ist, und überlassen Sie es einem Leser, Lücken mit ihrer eigenen Vorstellungskraft zu schließen
quelle
Der Algorithmus für die Ausgabe eines hochwertigen Haiku durch einen Computer funktioniert ungefähr so:
Einrichtungsphase
Ausführungsphase
Es gibt natürlich verschiedene Verbesserungen, die an dieser grundlegenden Architektur vorgenommen werden können. Zum Beispiel kann die Einrichtungsphase erweitert werden, um einen Pool von Haiku-Experten einzurichten . Die Ausführungsphase kann verwendet werden, um Haiku während Leerlaufzeiten zu generieren und sie gegen zukünftige Anforderungen zwischenzuspeichern. Die Einzelheiten einer solchen Optimierung bleiben dem Schüler als Übung überlassen.
quelle
Ich liebe diese Frage. Es ist sehr einfallsreich. Antwort unten.
Viele Leute haben Markov-Ketten vorgeschlagen, aber ich glaube wirklich nicht, dass es möglich wäre. Sie müssen intelligent wissen, ob die Silbe ein PHONEM ist, dann müssen Sie wissen, wo die Silbe endet.
Wenn Sie dies jemals tun würden, wäre ich erstaunt.
quelle