Obecnie tworzę zabawny skrypt, który w zasadzie pasuje do podanych fraz i daje wstępnie zdefiniowaną odpowiedź na podstawie punktów dopasowania. Możesz poprosić go o pobranie niektórych informacji na podstawie kanałów na żywo, uruchamianie zadań, opowiadanie anegdot lub po prostu czatowanie z nią.
Mam już wbudowane wykrywanie złych słów, Caps Lock lub obu. Program ma na imię dziewczęce, a ja starałem się zbliżyć do bycia dziewczęcą dziewczyną na logicznych zasadach (na przykład: wszyscy wiedzą, że większość dziewczęcych dziewcząt potrzebuje 700 ms, aby odpowiedzieć na pytanie, oczywiście żartując). Oto mały przykład:
Klient: JAKI JEST TWÓJ PROBLEM?
Kiku: NIE UŻYWAJ TEGO TONU DO MNIE!
Klient: #### you
Kiku: dlaczego jesteś dla mnie taki wredny: /
Jednak naprawdę chciałbym dodać do niego funkcję sarkazmu. Więc jeśli napiszesz coś z sarkazmem, ona to wykryje i odpowiednio zareaguje. To trudna część. Jak uczysz scenariusz, czym jest sarkazm?
Dla mnie bardziej szczegółowe. Jakie są dziś najczęściej używane sarkastyczne słowa? Lub jak zdobyć tę statystykę? Jak sprawić, by skrypt zrozumiał kontekst podanej frazy?
AKTUALIZACJA
Ponieważ pytanie to zyskuje na popularności, myślę, że należy nieco wyjaśnić. Jest bardzo jasne, że wykonanie skryptu w pełni wykrywającym sarkazm jest w zasadzie niemożliwe. Przynajmniej w rozsądnej sprawie. Uważam jednak, że można wykryć pewną ilość możliwego sarkazmu.
Do tej pory doszedłem do tego, że mój skrypt może wykryć bardzo ograniczony sarkazm. Z góry zdefiniowałem kilka typowych sarkastycznych słów (jednak same są bezużyteczne). Na przykład: cokolwiek, tak, tak, dobrze i wspaniale. A potem najpierw pasuje, proste rzeczy, takie jak wielkie litery i cytowane: THANKS you are so smart
lub oh you are so "SMART"
.
Ponieważ główną funkcją skryptów jest wykonywanie zadań lub uzyskiwanie informacji, a posłowie pytają, czy o to ci chodziło. Potem pomyślałem, dodając „dzięki” jako specjalną zmienną. Tak yeah thanks
czy whatever thanks
wyzwoli możliwy sarkazm, a skrypt zapyta: „Czy wykryję sarkazm?” Najlepiej byłoby wtedy powiedzieć „przepraszam”, w przeciwnym razie doda punkt ostrzegawczy, a jeśli limit zostanie osiągnięty - zacznie cię ignorować.
Ponieważ wydaje się, że te bardzo proste algorytmy rzeczywiście działają, ten pomysł ma przyszłość, oczywiście po wielu modyfikacjach i poprawkach. Czy jednak ktoś mądrzejszy stworzyłby oprogramowanie typu open source z myślą o tym samym pomyśle. Następnie tę funkcję można podłączyć do wielu funkcji w sieci. Obsługa klienta prawdopodobnie przyniosłaby największe korzyści, jednak tego rodzaju oprogramowanie może być również wykorzystywane do wykrywania zawartości „oznaczalnej”.
źródło
Odpowiedzi:
Jeśli posiadasz pełny system przetwarzania języka naturalnego i bazę danych faktów, na przykład system IBM Watson, być może możesz oznaczyć niektóre stwierdzenia jako możliwe sarkazm. Na przykład: „Słyszałem, że twoja matka ma raka i właśnie cię zwolniono!” „Tak, życie nie jest cudowne!” można oznaczyć, ponieważ można uznać, że zachorowanie na raka i utrata pracy nie są ogólnie opisywane jako pozytywne doświadczenia.
Zakładam, że nie masz zasobów, aby stworzyć system ocen Watson. Możesz połączyć bazę danych często używanych sarkastycznych fraz, a następnie użyć pewnego rodzaju algorytmu dopasowywania tekstu między instrukcją docelową a bazą danych sarkazmu. Muszę zgadywać, że nie będzie to bardzo skuteczne, ponieważ wszystkie wyrażenia używane sarkastycznie są używane częściej. Na przykład „To niezły X”. jest zwykle używany szczerze, ale czasami jest stosowany sarkastycznie.
Sarkazm jest bardzo ściśle związany z oszustwem. Często zdarza się, że osoba stosująca sarkazm zaprzecza jej, gdy jest na nią rzucana, a dobór słów umożliwia zaprzeczenie. Podejrzewam, że oznacza to, że dobry detektor sarkazmu jest prawdopodobnie tak samo trudny jak program konwersacyjny, który pomyślnie przejdzie test Turinga.
źródło
<Sarkazm>
</Sarcasm>
Szczerze mówiąc, nie mam pojęcia, jak sobie z tym poradzić. Myślę, że tylko około 30% ludzi w prawdziwym życiu „dostaje” sarkazm, więc sprawienie, by komputer go rozpoznał i zrozumiał, brzmi jak bardzo trudne zadanie.
Edytuj Na podstawie komentarzy do mojego oryginalnego posta uważam, że doskonale zilustrowałem ekstremalną trudność zadawanego zadania. Tak, pierwsza połowa mojego postu była sarkastyczna. Podkreśliłem nawet ten fakt, używając gotowego znacznika. Publikując sarkastyczny komentarz na temat trywialnego rozwiązania wyjątkowo trudnego problemu, a sarkazm interpretowany jako „nieprzydatny” rodzi to pytanie:
Jeśli nie potrafisz rozpoznać pisanego sarkazmu, to jak zamierzasz napisać algorytm, który go rozpozna?
Aha, i Anna, jeśli ktoś w swoim zdaniu zawiera termin „myślę ...”, zwykle oznacza to, że jest to opinia, która jest wypowiadana, niekoniecznie badana twardym faktem.
źródło
Problem wykrywania sarkazmu jest otwartym problemem w lingwistyce obliczeniowej - lepiej byłoby, gdybyś szukał google scholar niż wymiany stosu na takie rzeczy. Poczyniono jednak pewne postępy w tej kwestii. W przypadku sarkazmu mówionego można zbudować solidny rozpoznawacz za pomocą „cech spektralnych i kontekstowych”, które (jak twierdzą autorzy) wykrywają sarkazm, a także człowieka jako adnotatora. Autorzy artykułu twierdzą, że surowy tekst nie jest zatem wystarczający do wykrycia sarkazmu - w rzeczywistości osiągnęli lepsze wyniki, ignorując wypowiedziane słowa.
Tsur i in. zgłosili także kilka interesujących wyników w wykrywaniu sarkazmu tekstowego w zeszłym roku dzięki swojemu algorytmowi SASI . W innym dokumencie podają także dodatkowe ustalenia .
W każdym razie jest to najnowocześniejsze badanie języka obliczeniowego; nie oczekuj, że ktoś poda ci libsarkazm na srebrnym talerzu. Będziesz potrzebował dużych zestawów danych szkoleniowych i dużo wolnego czasu, aby ulepszyć swój detektor sarkazmu - i nawet wtedy dokładność 77% (jak podano w artykule SASI) nie wystarcza, aby odrzucić post oparty wyłącznie na sarkazmie.
źródło
Nie sądzę, aby ta odpowiedź była bardzo realistyczną metodą, ale jeśli masz na to środki, uważam, że byłoby to możliwe. Zastanów się nad projektem Google reCaptcha, który używa ludzi do odszyfrowywania słów, których komputery nie potrafią odczytać ( „Dowiedz się więcej na stronie Recaptcha” ). Uważam, że problem jest podobny, ponieważ próbujesz zdobyć maszynę, aby dowiedzieć się czegoś, co ludzie są już co najmniej lepsi w robieniu.
Wyobraź sobie, że masz zasoby, aby poprosić miliony ludzi, aby zidentyfikowali sarkazm w kontekście konwersacji na maszynie. Wyobraź sobie, że możesz poprosić tylu ludzi, by podali ci dokładnie ten moment w rozmowie, kiedy urzeczywistniono sarkazm, i jak najmniejszą część rozmowy przed uświadomieniem sobie, że należałoby zaznaczyć tę identyfikację. Można to zapisać w bazie danych, powiedzmy, do której program miał dostęp. Następnie, gdy użytkownik pisał do Ciebie rozmowę, bazę danych można filtrować pod kątem „podobnych” rozmów.
O tym, jak ocenić podobieństwo, warto się zastanowić, ale moim zdaniem prawdopodobnie istnieją już badania. Uważam, że byłoby to bardzo podobne do teorii dotyczącej błędów ortograficznych. Tak czy inaczej, prawdopodobnie sprowadzałoby się to do probabilistycznej wartości, że wpisywana rozmowa jest w rzeczywistości sarkastyczna i w pewnym momencie należałoby podać próg.
Podoba mi się również twój pomysł przedstawienia pytania „Czy to był sarkazm?” do użytkownika, a następnie za pomocą jego odpowiedzi, aby podjąć bardziej trafną decyzję.
Mam nadzieję, że moja odpowiedź nie była kompletnym marnotrawstwem i życzę powodzenia w tym przedsięwzięciu.
-Asaf
źródło
Wykrywanie sarkazmu w językoznawstwie obliczeniowym (inaczej przetwarzanie języka naturalnego) jest niezwykle trudnym problemem samym w sobie. Jest to w zasadzie problem z klasyfikacją, w którym model musi zostać najpierw przeszkolony. Podobny problem znalezienia podwójnych entenders (plik PDF) został ostatnio badane i publikowane. Techniki obu problemów są porównywalne.
źródło
Moje 2 centy:
Zapytaj psychologa o to, jak rozpoznać sarkazm w zdaniach, dzięki tej informacji porównaj je z danymi wejściowymi.
Byłby to jednak naprawdę trudny projekt, przy takim wysiłku można na pewno wykonać najlepszy system operacyjny na świecie: P
źródło