풍자를 감지하는 스크립트를 가르치는 방법? [닫은]


11

현재 재미있는 스크립트를 작성 중입니다. 기본적으로 주어진 문구와 일치하고 일치점을 기반으로 미리 정의 된 응답을 제공합니다. 라이브 피드를 기반으로 정보를 검색하거나, 작업을 실행하거나, 일화를 말하거나, 그녀와 채팅 할 수 있습니다.

이미 badwords, caps lock 또는 둘 다에 대한 감지 기능이 내장되어 있습니다. 이 프로그램에는 소녀 이름이 있으며 논리적 인 용어로 가능한 한 소녀 소녀에 가깝게 만들려고했습니다 (예 : 모든 소녀 소녀는 질문에 응답하는 데 700ms가 걸린다는 것을 알고 있습니다. 물론 농담). 여기 작은 예가 있습니다 :

클라이언트 : 당신의 문제는 무엇입니까?
Kiku : 나와 함께 그 말을 사용하지 마십시오!
클라이언트 : #### 당신
Kiku : 왜 그렇게 나에게 의미 있는가 : /

그러나 나는 진심으로 풍자 특징을 추가하고 싶습니다. 그래서 당신이 풍자에 무언가를 쓰면, 그녀는 그것을 감지하고 그에 따라 반응합니다. 이제 이것은 까다로운 부분입니다. 어떻게 스크립트를 가르치십니까?

좀 더 구체적으로. 오늘날 가장 많이 사용되는 비꼬는 말은 무엇입니까? 아니면 통계를 얻는 방법? 스크립트가 주어진 문구의 문맥을 이해하도록하려면 어떻게해야합니까?

최신 정보

이 질문이 과대 광고되고 있기 때문에 상황을 좀 더 정리해야한다고 생각합니다. 스크립트가 풍자를 완벽하게 감지하는 것은 기본적으로 불가능하다는 것은 매우 분명합니다. 적어도 합리적인 문제에서. 그러나 나는 가능한 많은 양의 풍자가 감지 될 수 있다고 생각합니다 .

나는 지금까지 그것을 내 스크립트가 매우 제한된 풍자를 감지 할 수 있도록 만들었습니다. 나는 예를 들어 일반적인 비꼬는-단어 (. 그러나 혼자가 쓸모를) 미리 정의 : 같은, 바로 큰 무엇이든, 그래. 그리고 그 첫 번째 경기, 간단한 일처럼 대문자와 인용 THANKS you are so smart또는 oh you are so "SMART".

스크립트의 주요 기능은 작업을 수행하거나 정보를 검색하는 것입니다. 그런 다음 "감사"를 특수 변수로 추가했습니다. 그래서 yeah thankswhatever thanks가능한 풍자를 트리거,하고 스크립트가 묻습니다 : "나는 풍자를 감지 마십시오" 가장 좋은 방법은 "죄송합니다"라고 말하고 그렇지 않으면 경고 지점을 추가하고 한도에 도달하면 무시하는 것입니다.

이 매우 간단한 알고리즘이 실제로 작동하는 것처럼 보이므로이 아이디어는 물론 많은 조정 및 조정 후에 미래가 있습니다. 그러나 누군가가 더 똑똑하면 동일한 아이디어를 염두에두고 오픈 소스 소프트웨어를 만들 것입니다. 그런 다음이 기능을 웹의 많은 기능에 연결할 수 있습니다. 고객 지원은 아마도 가장 큰 이익이 될 것입니다. 그러나 이러한 종류의 소프트웨어는 "플래그 블"컨텐츠를 탐지하는 데 사용될 수도 있습니다.


14
스크립트가 키워드를 선택하지 않고 말하는 내용을 실제로 이해할 수있을 때까지 대부분의 풍자적 시나리오를 포착하는 것이 불가능하다고 생각합니다.
Rob

26
@Kalle 여기서 명확하게합시다. Sarcasm은 구어체에서 가장 미묘하고 진보 된 장치 중 하나입니다. 영어를 모국어로 사용하는 경우에도 음성 톤 및 관련 상황 정보와 같은 미묘한 부분을 완벽하게 파악할 수 있지만 정기적으로 풍자를 감지하지 못합니다. 비 원어민은 거의 우연이 아닙니다. 텍스트로 가져 가면 원어민조차 거의 우연이 아닙니다. 가장 간단한 문장조차도 어둡게 이해하기 어려운 컴퓨터가이 문제를 해결하기를 원하십니까? 평생 언어로 말하고 텍스트를 분석하는 사람에게 맡기십시오.
doppelgreener

17
스크립트가 풍자를 인식하게 하시겠습니까? 그것은 reeeally 유용합니다;)
zenzelezz

12
쉘든 쿠퍼조차도 풍자를 감지 할 수 없습니다.
Paul R

3
나는이 질문이 특히 "건설적이지 않은"것으로 닫혀서는 안된다고 생각한다. 구속력이 없다면 지금 재개 투표를했지만,이 질문은 특히 최신 편집에서 재개 투표를 할 가치가 있다고 생각합니다.
Adam Lear

답변:


17

완전한 자연어 처리 시스템과 IBM Watson 시스템과 같은 사실의 데이터베이스가있는 경우 일부 문장을 가능한 풍자적으로 표시 할 수 있습니다. 예를 들어 "어머니가 암에 걸렸다는 소식을 들었습니다!" "그래, 인생은 멋지지 않아!" 암에 걸리고 직업을 잃는 것이 일반적으로 긍정적 인 경험으로 묘사되지 않는다는 것을 인식 할 수 있기 때문에 신고 될 수 있습니다.

Watson 등급 시스템을 구성 할 수있는 리소스가 없다고 가정합니다. 일반적으로 사용되는 냉소적 문구 데이터베이스를 구성한 다음 대상 명령문과 풍자 데이터베이스간에 일종의 텍스트 일치 알고리즘을 사용할 수 있습니다. 냉소적으로 사용되는 모든 문구가 진지하게 더 자주 사용되기 때문에 그것이 효과적이지 않을 것이라고 추측해야합니다. 예를 들어 "좋은 X입니다." 보통 진심으로 사용되지만 때로는 냉소적으로 사용됩니다.

Sarcasm은기만과 밀접한 관련이 있습니다. 풍자에 도전 할 때 풍자를 사용하는 사람이이를 거부하는 것은 드문 일이 아니며, 단어 선택은 거부를 가능하게합니다. 나는 이것이 좋은 풍자 탐지기가 튜링 테스트를 통과하는 대화 프로그램만큼 어려운 문제 일 것입니다.


1
답변 주셔서 감사합니다. 이것은 품질이 위의 것보다 확실히 좋습니다. 실제 문구 데이터베이스를 만드는 것이 너무 커질 것이라고 생각합니다. 그러나 단어 데이터베이스 + 다른 방법으로 실제로 작동시킬 수 있습니다 (100 %가 아니라 다시 0 %가 아닙니다). 확인 단계를 추가 할 계획입니다. 스크립트가 약간의 풍격을 감지하면 다음과 같이 묻습니다. 당신이 "OH NO"라고 대답하면, 그것은 풍자를 확인하고 실제로 화를 내고 잠시 동안 당신을 무시합니다 (시간은 풍자의 수준에 의해 결정됩니다).
Kalle H. Väravas

3
sarcasm은 문맥에 관한 것이기 때문에 구절을 고수하고 싶다고 생각합니다. "그래"는 냉소적이지 않습니다. "오른쪽"은 냉소적이지 않지만 "그렇습니다!" 아마도 냉소적으로 더 자주 냉정하게 사용됩니다.
Charles E. Grant

6
여기서 답변의 품질에 관해서는 이것이 부분적으로 귀하의 책임이라고 말해야합니다. 자연어 처리는 몇 가지 유용한 기술을 제공 할 수있는 잘 알려진 분야이지만 기존 방법을 찾기 위해 연구를 수행 한 흔적은 없습니다. 그것은 어려운 문제이며 SO 게시물에서 일반적으로 유용하게 대답 할 수있는 것이 아닙니다. 자연어 처리에 관한 많은 책들이 많이 있습니다.
찰스 E. 그랜트

43

<사카 심>

if(string.Contains("<Sarcasm>")) containsSarcasm = true;

</ Sarcasm>

솔직히, 나는 이것에 대해 어떻게 해야할지 모른다. 나는 실생활에서 약 30 %의 사람들 만이 처음부터 풍자를 "사라"고 생각하기 때문에 컴퓨터가 그것을 인식하고 이해하는 것은 매우 어려운 일처럼 들린다.

편집 원래 게시물에 대한 의견을 바탕으로 요청되는 작업의 극도의 어려움을 완벽하게 설명했다고 생각합니다. 예, 내 게시물의 전반부는 냉소적이었습니다. 심지어 메이크업 마크 업 태그를 사용하여 그 사실을 강조했습니다. 매우 어려운 문제에 대한 사소한 해결책에 대한 냉담한 의견을 게시하고 "비 유용한"것으로 해석되는 풍자는이 질문을 불러옵니다.

작성된 풍자를 인식 할 수 없다면이를 인식하는 알고리즘을 어떻게 작성할 것입니까?

아, 그리고 누군가 누군가가 그들의 문장에 "내 생각에는 ..."이라는 용어가 포함되어 있다면, 그것은 보통 그것이 사실이라고 연구 된 것이 아니라 반드시 언급되고있는 의견이라는 것을 나타냅니다.


3
-1 죄송합니다. 왜이 답변이 투표를 받는지 잘 모르겠습니다. 제공된 코드는 당면한 질문과 100 % 관련이 없으며 답변의 두 번째 부분은 "모름이 없다"는 것입니다. 귀하의 답변은 주제에 대해 30 %이며 실제로 도움이되지 않습니다.
Kalle H. Väravas

18
포스터가 이것을 할 실제적인 방법이 없다는 것을 지적했기 때문에 불쾌감을 얻었습니다. 인간은 종종 풍자를 감지 할 수 없기 때문에 기계를 가르 칠 수있는 방법이 없습니다. 또한 풍자 만화는 종종 음성 톤으로 전달되므로 온라인 통신에서 종종 오해됩니다.
Andy Waite

1
@Andy Waite 네, 맞습니다. 내가 말했듯이 대답은 주제에 대해 30 %입니다 (심지어 추가 텍스트가 없을 때 공감하기 시작했습니다.) 그래도 나는 그 대답을 받아들이지 않을 것입니다. 물론 그렇습니다. 물론 100 % 일치 할 수는 없습니다. 그러나 심지어 50 % 일치? 이 답변은 기본적으로 "귀하의 질문을 이해하지 못합니다. 그럴 수 없다고 생각합니다. 힘들게 들리시오." 나는 "이러한 이유는 무엇입니까? 프레임 워크를 사용하십시오!"옆의 프로그래머들에게만 이러한 유형의 답변을 얻습니다 ..
Kalle H. Väravas

4
@Kalle 나는 당신에 동의합니다. 이 답변은 풍자적 부분, "모름", 부분 추측입니다 (30 %? 정말? 다시 백업 할 수 있습니까?). 그것은 전적으로 도움이되지 않으며 기껏해야 의견이었습니다.
Adam Lear

3
재미있는 주석 스레드-분명히 인간조차도 풍자 (또는 그 부족)를 안정적으로 감지 할 수 없습니다.
Piskvor는 건물을 떠나

11

풍자 탐지의 문제는 계산 언어학에서 공개적인 문제입니다 . 이러한 것들에 대한 스택 교환보다 Google 학자 를 검색하는 것이 더 좋습니다 . 그러나이 문제에 대한 진전이있었습니다. 들어 음성 풍자, 강력한 인식기는 "스펙트럼 및 상황에 맞는 기능"을 사용하여 구축 할 수 있습니다 뿐만 아니라 인간의 주석 자로서 (저자가 주장) 검출 풍자 있음을. 이 논문의 저자는 원시 텍스트가 풍자를 감지하기에 충분하지 않다고 주장합니다. 실제로 실제 단어 를 무시 함으로써 더 나은 결과를 얻었습니다 .

Tsur et al. 또한 작년에 SASI 알고리즘을 사용하여 텍스트 문자 유포 탐지에서 흥미로운 결과를보고했습니다 . 그들은 또 다른 논문 에서 몇 가지 추가 조사 결과를보고 합니다.

어쨌든 이것은 계산 언어 연구의 최첨단입니다. 누구든지 은판 위에 당신에게 성찬을 넘길 것을 기대하지 마십시오. sarcasm detector를 조정하려면 많은 훈련 데이터 세트와 많은 자유 시간이 필요합니다. 그럼에도 불구하고 SASI 논문에보고 된 바와 같이 77 %의 정확도로는 sarcasm 플래그를 기반으로 한 게시물을 거부하기에 충분하지 않습니다.


흠, 77 %? 그것은 대부분의 사람들 보다 나은 것 같습니다 . (비꼬는 의도 없음)
Piskvor는 건물을 떠나

@Piskvor, 아마도 가능하지만 통계는 없습니다. 적어도 오디오보다 정확도가 좋습니다.
bdonlan

2

나는이 답변이 매우 현실적인 접근 방법이라고 생각하지 않지만, 할 수있는 리소스가 있다면 가능할 것이라고 생각합니다. 인간을 사용하여 컴퓨터가 읽을 수없는 단어를 해독하는 Google의 reCaptcha 프로젝트 ( "자세히 알아보기 Recaptcha 페이지" )를 고려하십시오. 나는 인간이 적어도 이미 잘하는 것을 알아 내기 위해 기계를 얻으려고한다는 점에서 문제가 비슷하다고 생각합니다 .

형식화 된 대화 컨텍스트 내에서 수백만의 사람들에게 풍자에 대해 이야기하도록 요청하는 자원이 있다고 상상해보십시오. 풍자가 실현되었을 때 많은 사람들이 대화에서 정확한 순간을 제출하고 그 식별을 표시해야한다는 사실을 깨닫기 전에는 거의 대화하지 말라고 요청할 수 있다고 상상해보십시오. 이것은 프로그램에 액세스 할 수있는 데이터베이스에 저장 될 수 있습니다. 그런 다음 사용자가 대화를 입력 할 때 "유사한"대화를 위해 데이터베이스를 필터링 할 수 있습니다.

유사성을 평가하는 방법은 고려해야 할 사항이지만 이미 존재하는 연구가 있다고 생각합니다. 철자 오류 수정의 이론과 매우 유사하다고 생각합니다. 어떤 방식 으로든 입력되는 대화가 실제로 냉소적이며, 어느 시점에서 임계 값을 제공해야하는 확률 적 가치로 귀결 될 수 있습니다.

나는 또한 "비꼬는가?"라는 질문을 제시하려는 당신의 생각을 좋아합니다. 더 정확한 결정에 도달하기 위해 사용자에게 응답 한 다음 응답을 사용합니다.

나는 나의 대답이 완전한 낭비가 아니기를 바란다. 나는이 노력에 행운이 있기를 바란다.

-아사 프


1

컴퓨터 언어학 (일명 자연어 처리)에서의 풍자 탐지는 그 자체로는 극히 어려운 문제입니다. 기본적으로 모델을 먼저 훈련시켜야하는 분류 문제입니다. 더블 entenders 찾는 비슷한 문제 (PDF 파일)는 최근 연구되고 출판되었다. 두 문제에 대한 기술은 비슷합니다.


1

내 2 센트 :

심리학자에게 비유 어를 구절로 인식하는 방법에 대해 물어 보면 입력 된 정보와 비교합니다.

그러나 그것은 정말 어려운 프로젝트 일 것입니다. 그 노력을 사용하면 세계 최고의 OS를 확실히 할 수 있습니다 : P

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.