Ich baue gerade ein lustiges Skript, das im Wesentlichen mit bestimmten Phrasen übereinstimmt und eine vordefinierte Antwort basierend auf den Übereinstimmungspunkten gibt. Sie können ihn bitten, einige Informationen basierend auf Live-Feeds abzurufen, Aufgaben auszuführen, Anekdoten zu erzählen oder einfach mit ihr zu chatten.
Ich habe bereits eine integrierte Erkennung für Badwords, Feststelltaste oder beides. Das Programm hat einen Mädchennamen und ich habe versucht, logischerweise so nah wie möglich an ein Mädchen heranzukommen (zum Beispiel: Jeder weiß, dass die meisten Mädchen 700 ms brauchen, um auf eine Frage zu antworten, natürlich im Scherz). Hier ist ein kleines Beispiel:
Kunde: WAS IST IHR PROBLEM?
Kiku: Benutze diesen Ton nicht mit mir!
Kunde: #### du
Kiku: warum bist du so gemein zu mir: /
Ich möchte jedoch wirklich eine Sarkasmus-Funktion hinzufügen. Wenn Sie also etwas in Sarkasmus schreiben, wird sie es erkennen und entsprechend reagieren. Das ist ein kniffliger Teil. Wie bringt man ein Drehbuch bei, was ist Sarkasmus?
Für mich genauer. Was sind die heute am häufigsten verwendeten sarkastischen Wörter? Oder wie bekommt man diese Statistik? Wie kann ich dem Skript den Kontext der angegebenen Phrase verständlich machen?
AKTUALISIEREN
Da diese Frage viel Hype bekommt, denke ich, dass die Dinge ein bisschen mehr geklärt werden sollten. Es ist sehr klar, dass es grundsätzlich unmöglich ist, ein Skript dazu zu bringen, Sarkasmus vollständig zu erkennen. Zumindest in vernünftiger Angelegenheit. Ich glaube jedoch, dass ein gewisses Maß an möglichem Sarkasmus festgestellt werden könnte.
Ich habe es derzeit so weit gebracht, dass mein Skript einen sehr begrenzten Sarkasmus erkennen kann. Ich habe einige gebräuchliche sarkastische Wörter vordefiniert (allein sind sie jedoch nutzlos). Zum Beispiel: wie, was auch immer, ja, richtig und großartig. Und dann passt es zuerst zu den einfachen Dingen, wie Großbuchstaben und zitiert: THANKS you are so smart
oder oh you are so "SMART"
.
Da die Hauptfunktion des Skripts darin besteht, Aufgaben zu erledigen oder Informationen und Nachworte abzurufen, werden Sie gefragt, ob Sie dies gemeint haben. Dann dachte ich und fügte "Danke" als spezielle Variable hinzu. Also yeah thanks
oder whatever thanks
wird der mögliche Sarkasmus ausgelöst, und das Skript wird Sie fragen: "Erkenne ich Sarkasmus?" Am besten sagen Sie dann "Entschuldigung", sonst wird ein Warnpunkt hinzugefügt, und wenn das Limit erreicht ist, werden Sie ignoriert.
Da diese sehr sehr einfachen Algorithmen tatsächlich zu funktionieren scheinen, hat diese Idee eine Zukunft, natürlich nach vielen Optimierungen und Optimierungen. Ist jedoch jemand, der viel schlauer ist, würde er eine Open-Source-Software mit der gleichen Idee entwickeln. Dann könnte diese Funktion mit vielen Funktionen im Web verknüpft werden. Die Kundenbetreuung würde wahrscheinlich am meisten davon profitieren, diese Art von Software könnte jedoch auch zur Erkennung von "Flaggable" -Inhalten verwendet werden.
quelle
Antworten:
Wenn Sie über ein vollständiges Verarbeitungssystem für natürliche Sprachen und eine Datenbank mit Fakten wie das IBM Watson-System verfügen, können Sie möglicherweise einige Aussagen als möglichen Sarkasmus kennzeichnen. Zum Beispiel: "Ich habe gehört, deine Mutter hat Krebs und du wurdest gerade gefeuert!" "Ja, ist das Leben nicht wunderbar!" könnte markiert werden, weil es erkennen könnte, dass Krebserkrankungen und der Verlust eines Arbeitsplatzes im Allgemeinen nicht als positive Erfahrungen beschrieben werden.
Ich gehe davon aus, dass Sie nicht über die Ressourcen verfügen, um ein Watson-Notensystem zusammenzustellen. Sie könnten eine Datenbank mit häufig verwendeten sarkastischen Phrasen zusammenstellen und dann eine Art Textabgleichalgorithmus zwischen der Zielanweisung und der Sarkasmusdatenbank verwenden. Ich muss vermuten, dass es nicht sehr effektiv ist, weil alle Sätze, die sarkastisch verwendet werden, aufrichtig häufiger verwendet werden. Zum Beispiel "Das ist ein schönes X." wird normalerweise aufrichtig verwendet, wird aber manchmal sarkastisch verwendet.
Sarkasmus ist sehr eng mit Täuschung verbunden. Es ist nicht ungewöhnlich, dass eine Person, die Sarkasmus verwendet, dies leugnet, wenn sie dazu aufgefordert wird, und ihre Wortwahl ermöglicht die Verweigerung. Ich vermute, dies bedeutet, dass ein guter Sarkasmusdetektor wahrscheinlich genauso schwierig ist wie ein Konversationsprogramm, das den Turing-Test besteht.
quelle
<Sarkasmus>
</ Sarkasmus>
Ehrlich gesagt habe ich keine Ahnung, wie ich das anstellen soll. Ich denke, nur etwa 30% der Menschen im wirklichen Leben "bekommen" Sarkasmus. Es klingt also nach einer sehr schwierigen Aufgabe, einen Computer dazu zu bringen, ihn zu erkennen und zu verstehen.
Bearbeiten Aufgrund der Kommentare zu meinem ursprünglichen Beitrag glaube ich, dass ich die extreme Schwierigkeit der gestellten Aufgabe perfekt dargestellt habe. Ja, die erste Hälfte meines Beitrags war sarkastisch. Ich habe diese Tatsache sogar durch die Verwendung eines erfundenen Markup-Tags betont. Durch die Veröffentlichung eines sarkastischen Kommentars über eine triviale Lösung eines außergewöhnlich schwierigen Problems und die Interpretation dieses Sarkasmus als "nicht hilfreich" wird folgende Frage aufgeworfen:
Wenn Sie geschriebenen Sarkasmus nicht erkennen können, wie werden Sie dann einen Algorithmus schreiben, der ihn erkennt?
Oh, und Anna, wenn jemand den Begriff "Ich denke ..." in seinen Satz aufnimmt, deutet dies normalerweise darauf hin, dass es sich um eine Meinung handelt, die angegeben wird, nicht unbedingt um eine harte Tatsache.
quelle
Das Problem der Sarkasmuserkennung ist ein offenes Problem in der Computerlinguistik. Wenn Sie Google Scholar besser durchsuchen als den Stapelaustausch, sollten Sie nach solchen Dingen suchen . In diesem Bereich wurden jedoch einige Fortschritte erzielt. Für gesprochenen Sarkasmus kann ein robuster Erkenner unter Verwendung von "spektralen und kontextuellen Merkmalen" erstellt werden , die (die Autoren behaupten) Sarkasmus sowie einen menschlichen Annotator erkennen. Die Autoren des Papiers behaupten, dass der Rohtext daher nicht ausreicht, um Sarkasmus zu erkennen - tatsächlich haben sie bessere Ergebnisse erzielt, indem sie die tatsächlich gesprochenen Wörter ignoriert haben .
Tsur et al. haben erst letztes Jahr mit ihrem SASI-Algorithmus einige interessante Ergebnisse bei der Erkennung von Textsarkasmus gemeldet . Sie berichten auch über einige zusätzliche Follow-up-Ergebnisse in einem anderen Artikel.
In jedem Fall ist dies der neueste Stand der rechnergestützten Sprachforschung. Erwarten Sie nicht, dass Ihnen jemand einen Libsarkasmus auf einem Silbertablett gibt. Sie benötigen große Trainingsdatensätze und viel Freizeit, um Ihren Sarkasmusdetektor zu optimieren - und selbst dann reicht eine Genauigkeit von 77% (wie im SASI-Papier angegeben) nicht aus, um einen Beitrag abzulehnen, der ausschließlich auf einem Sarkasmus-Flag basiert.
quelle
Ich denke nicht, dass diese Antwort eine sehr realistische Methode ist, aber wenn Sie die Ressourcen dazu hätten, glaube ich, dass es möglich wäre. Betrachten Sie das reCaptcha-Projekt von Google, bei dem Menschen Wörter entschlüsseln, die Computer nicht lesen können ( "Weitere Informationen zur Recaptcha-Seite" ). Ich glaube, das Problem ist insofern ähnlich, als Sie versuchen, eine Maschine dazu zu bringen, etwas herauszufinden, was Menschen zumindest schon besser können .
Stellen Sie sich vor, Sie hätten die Ressourcen, um Millionen von Menschen zu bitten, Sarkasmus in einem typisierten Konversationskontext für Sie zu identifizieren. Stellen Sie sich vor, Sie könnten so viele Leute bitten, sich genau zu dem Zeitpunkt im Gespräch zu melden, an dem Sarkasmus erkannt wurde, und ebenso wenig von dem Gespräch vor der Erkenntnis, dass man diese Identifikation markieren müsste. Dies könnte in einer Datenbank gespeichert werden, auf die Ihr Programm Zugriff hatte. Während der Benutzer die Konversation für Sie eingab, konnte die Datenbank nach "ähnlichen" Konversationen gefiltert werden.
Wie man Ähnlichkeit bewertet, ist etwas, über das man nachdenken muss, aber eines, von dem ich glaube, dass es wahrscheinlich bereits Forschung gibt. Ich glaube, es würde der Theorie hinter Rechtschreibfehlerkorrekturen sehr ähnlich sein. In beiden Fällen würde es wahrscheinlich zu einem probabilistischen Wert kommen, dass das getippte Gespräch tatsächlich sarkastisch ist und irgendwann ein Schwellenwert angegeben werden müsste.
Ich mag auch Ihre Idee, die Frage "War das Sarkasmus?" an den Benutzer und verwenden dann ihre Antwort, um eine genauere Entscheidung zu treffen.
Ich hoffe, meine Antwort war keine völlige Verschwendung und ich wünsche Ihnen viel Glück bei diesem Unterfangen.
-Asaf
quelle
Die Erkennung von Sarkasmus in der Computerlinguistik (auch bekannt als Verarbeitung natürlicher Sprache) ist ein äußerst schwieriges Problem. Grundsätzlich handelt es sich um ein Klassifizierungsproblem, bei dem ein Modell zuerst trainiert werden muss. Ein ähnliches Problem bei der Suche nach Doppeldeutigkeiten (PDF-Datei) wurde kürzlich untersucht und veröffentlicht. Die Techniken für beide Probleme sind vergleichbar.
quelle
Meine 2 Cent:
Fragen Sie einen Psychologen, wie man Sarkasmus in Phrasen erkennt. Vergleichen Sie diese Informationen mit den Eingaben.
Aber es wäre ein wirklich schwieriges Projekt, mit dem Aufwand könnten Sie mit Sicherheit das beste Betriebssystem der Welt machen: P.
quelle