Wie erzeugen persönliche Assistenten normalerweise Sätze?

8

Dies ist eine Art Antwort auf diese Frage nach den Forschungsrichtungen der NLG im Bereich der Linguistik.

Wie führen persönliche Assistententools wie Siri, Google Now oder Cortana die Natural Language Generation (NLG) durch? Insbesondere der Satztextgenerierungsteil . Ich interessiere mich nicht für den Text-zu-Sprache-Teil, sondern nur für den Textgenerierungsteil.

Ich suche nicht genau, wie jeder es tut, da diese Informationen wahrscheinlich nicht verfügbar sind.

Ich frage mich, welches Setup erforderlich ist, um die Satzgenerierung dieser Qualität zu implementieren.

  • Welche Art von Daten würden Sie in einer Datenbank benötigen (auf hoher Ebene)?
    • Benötigt es ein Wörterbuch für jedes mögliche Wort und seine Bedeutung sowie viele Bücher / Korpora, die kommentiert und statistisch analysiert wurden?
    • Erfordert es tatsächlich, dass Menschen auf natürliche Weise sprechen (z. B. aus Fernsehsendungen oder Podcasts), sie in Text umschreiben und diese dann irgendwie zu ihrem "System" hinzufügen? (um wirklich "menschliche" Sätze zu bekommen)
    • Oder gibt es nur einfache syntaxbasierte Satzmuster, die sie verwenden, ohne gigantische semantische "Bedeutungs" -Datenbank? Wo jemand gerade ein paar reguläre Ausdrücke geschrieben hat, schreibe etwas.
  • Welche Algorithmen werden für solche natürlich geschriebenen menschenähnlichen Sätze verwendet?

Ein Grund für die Frage ist, dass das NLG-Feld anscheinend weit davon entfernt ist, das zu tun, was Siri, Google Now und andere leisten. Also, was für Sachen machen sie? (Nur für den Teil der Satztextgenerierung).

Lance Pollard
quelle
1
Es gibt wahrscheinlich eine Vielzahl von Ansätzen, aber ich glaube, einer davon ist zumindest eine Kombination aus einem regelbasierten System und einem statistisch basierten System. Google verfügt offensichtlich über viele Textbeispiele. Wenn Sie also "Ich möchte schwenken" eingeben, werden diese Beispiele angezeigt und Sie erhalten "Schwimmen" und "Schwingen an einem Baum", da dies am häufigsten vorkommt. Das regelbasierte System kann es Google ermöglichen, auch nach Beispielen mit derselben Grammatikstruktur, aber unterschiedlichen Inhalten zu suchen (z. B. "Wir wollten schwimmen"). Das ist jedoch nur ein Ansatz von vielen.
Jeroen Vannevel
Die Frage hat wahrscheinlich zwei sehr unterschiedliche Seiten: Erstellen korrekter Sätze und natürlich klingender Text-to-Speach. Vielleicht möchten Sie klären, an welcher Seite Sie am meisten interessiert sind.
Bart van Ingen Schenau
3
Normalerweise werden diese Sätze nicht generiert, sondern aus dem grenzenlosen Korpus abgerufen , den das Internet jetzt bildet. Peter Norvig hat einen schönen Artikel in Beautiful Code, der zeigt, wie sich einige NLP-Probleme im Grunde selbst lösen, wenn Sie Zugriff auf einen Korpus mit Billionen Wörtern haben. Wir glauben gerne, dass die nützliche Satzgenerierung auf einem völlig anderen Schwierigkeitsgrad liegt als die offensichtliche Segmentierung oder Silbentrennung, aber das ist nicht wirklich so. nicht, wenn Sie so viele Beispieldaten zur Auswahl haben.
Kilian Foth
@BartvanIngenSchenau aktualisiert, ich interessiere mich nicht für den Text-zu-Sprache-Teil, sondern nur dafür, wie man auf natürliche Weise Textsätze konstruiert.
Lance Pollard
@ KilianFoth ah das ist sehr interessant, danke für den Einblick. Ich werde mehr darüber nachdenken ( ich schätze, es ist das norvig.com/ngrams ). Wollen Sie damit sagen, dass es sich heutzutage nicht lohnt, andere Methoden auszuprobieren?
Lance Pollard

Antworten:

3

Siri "generiert" normalerweise keine Sätze. Sie analysiert, was Sie sagen, und "erkennt" bestimmte Schlüsselwörter, sicher, und für allgemeine Antworten verwendet sie eine Vorlage wie I found [N] restaurants fairly close to youoderI couldn't find [X] in your music, [Username].

Die meisten ihrer Antworten werden jedoch abhängig von ihrer Interpretation Ihrer Rede gespeichert, zusätzlich zu einem Zufallszahlengenerator, mit dem Sie eine kreative Antwort auf eine flippige Frage auswählen können. Einfach Siri fragen "Wie viel Holz kann ein Holzfutterfutter?" oder "Was ist der Sinn des Lebens?" generiert eine Vielzahl von Antworten. Es sind zahlreiche kulturelle Referenzen und Witze eingebaut (und wörtlich wiederholt), die mit relativer Sicherheit beweisen, dass Siri den größten Teil ihres Textes nicht nur spontan generiert, sondern aus einer Datenbank zieht. Es ist wahrscheinlich, dass eingehende Fragen auf einem zentralen Server gespeichert werden, auf dem Apple-Mitarbeiter neue Antworten auf diese Fragen erstellen können, damit Siri "lernen" kann.

Ihr Text-zu-Sprache-Teil ist jedoch gut genug, dass es manchmal so aussieht, als würden die Antworten generiert ...

Ayelis
quelle
1

Wenn Sie eine sogenannte tiefe syntaktische Darstellung dessen haben, was Sie generieren möchten, wie z. B. Lesen (er, Buch) , ist es relativ einfach, die lineare Darstellung zu generieren. Man braucht eine formale Grammatik, die die Syntax der Sprache beschreibt, und ein morphologisches Lexikon für gebogene Formen. Die Erzeugung ist eine Größenordnung einfacher als die Analyse (da man "Mehrdeutigkeiten erzeugt" und nicht auflöst).

Wenn Sie nur eine logische Darstellung haben (z. B. in der Logik erster Ordnung), werden die Dinge komplizierter. Nehmen wir an, Sie haben gekauft (John, Buch) ∧ gelesen (John, Buch) . Man könnte zwei Sätze erzeugen, als hätte John ein Buch gekauft. John hat ein Buch gelesen, aber es fühlt sich unnatürlich an. Eine bessere Ausgabe wäre, wenn John ein Buch gekauft hätte. Er las es. Noch besser wäre es, einen zusammengesetzten Satz mit und zu generieren . Die logische Darstellung mag der obigen tiefen syntaktischen Darstellung ähnlich sein, aber es gibt keine Pronomen, keine Klauselgrenzen usw. Die Phase der Übersetzung einer rein logischen Darstellung dessen, was man in etwas "menschlicheres" vermitteln möchte, wird "Sprache" genannt Planung "oder" Satzplanung "und ist die schwierigere Aufgabe im Prozess.

Atamiri
quelle