วิธีการสอนสคริปต์เพื่อตรวจสอบการเสียดสี? [ปิด]


11

ขณะนี้ฉันกำลังสร้างสคริปต์ที่สนุกซึ่งโดยทั่วไปตรงกับวลีที่กำหนดและให้คำตอบที่กำหนดไว้ล่วงหน้าตามคะแนนการแข่งขัน คุณสามารถขอให้มันดึงข้อมูลบางอย่างจากฟีดสดเรียกใช้งานบอกเกร็ดเล็กเกร็ดน้อยหรือเพียงแค่พูดคุยกับเธอ

ฉันมีการตรวจจับในตัวสำหรับคำไม่ดีแคปล็อคหรือทั้งสองอย่าง โปรแกรมมีชื่อเด็กหญิงและฉันพยายามทำให้ใกล้เคียงกับการเป็นเด็กผู้หญิงมากที่สุดเท่าที่จะทำได้ในแง่ตรรกะ (ตัวอย่าง: ทุกคนรู้ว่าผู้หญิงส่วนใหญ่ใช้เวลา 700ms ในการตอบคำถามล้อเล่นแน่นอน) ดังนั้นนี่คือตัวอย่างเล็ก ๆ น้อย ๆ :

ลูกค้า: ปัญหาของคุณคืออะไร?
Kiku: อย่าใช้สิ่งนั้นกับฉัน!
ลูกค้า: #### คุณ
Kiku: ทำไมคุณถึงเป็นอย่างนั้นกับฉัน: /

อย่างไรก็ตามฉันอยากจะเพิ่มคุณสมบัติแดกดัน ดังนั้นถ้าคุณเขียนอะไรบางอย่างด้วยการเสียดสีเธอก็จะตรวจจับและตอบสนองตามนั้น ตอนนี้เป็นส่วนที่ยุ่งยากคุณจะสอนสคริปท์ได้อย่างไร?

ให้ฉันเจาะจงมากขึ้น คำเหน็บแนมที่ใช้กันมากที่สุดในทุกวันนี้คืออะไร? หรือวิธีรับสถิตินั้น ฉันจะทำให้สคริปต์เข้าใจบริบทของวลีที่กำหนดได้อย่างไร

UPDATE

เนื่องจากคำถามนี้กำลังได้รับความสนใจอย่างมากฉันคิดว่าสิ่งต่างๆควรถูกลบออกไปอีกเล็กน้อย มันชัดเจนมากว่าการทำให้สคริปต์ตรวจสอบการเสียดสีอย่างเต็มที่นั้นเป็นไปไม่ได้ อย่างน้อยก็ในเรื่องที่สมเหตุสมผล แต่ผมไม่เชื่อว่าปริมาณของบางอย่างที่เป็นไปได้ถากถางสามารถตรวจพบได้

ขณะนี้ฉันได้ทำให้มันจนสคริปต์ของฉันสามารถตรวจสอบการเสียดสีที่ จำกัด มาก ฉันกำหนดคำพูดประชดประชันบางอย่างไว้ล่วงหน้า (แต่เพียงอย่างเดียวพวกเขาไร้ประโยชน์) ตัวอย่างเช่น: อะไรก็ได้ใช่ถูกและยิ่งใหญ่ และจากนั้นก็ตรงกับครั้งแรกสิ่งที่ง่ายเช่นพิมพ์ใหญ่และยกมา: หรือTHANKS you are so smartoh you are so "SMART"

เนื่องจากหน้าที่หลักของสคริปต์คือการทำงานหรือดึงข้อมูลและ afterwords จะถามว่านั่นคือสิ่งที่คุณหมายถึงหรือไม่ จากนั้นฉันคิดว่าการเพิ่ม "ขอบคุณ" เป็นตัวแปรพิเศษ ดังนั้นyeah thanksหรือwhatever thanksจะกระตุ้นการเสียดสีที่เป็นไปได้และสคริปต์จะถามคุณว่า: "ฉันตรวจจับการเสียดสีได้หรือไม่" ทางออกที่ดีที่สุดของคุณคือการพูดคำว่า "ขอโทษ" มิฉะนั้นจะเพิ่มจุดเตือนและหากถึงขีด จำกัด แล้วมันจะเริ่มไม่สนใจคุณ

เนื่องจากอัลกอริธึมที่ง่ายมาก ๆ เหล่านี้ดูเหมือนจะใช้งานได้จริงแล้วความคิดนี้มีอนาคตแน่นอนหลังจากปรับแต่งและปรับแต่งมากมาย อย่างไรก็ตามมีคนจำนวนมากที่ฉลาดกว่าที่จะทำซอฟต์แวร์โอเพนซอร์ซด้วยความคิดเดียวกัน จากนั้นคุณสมบัตินี้สามารถเชื่อมโยงกับฟังก์ชั่นมากมายบนเว็บ การดูแลลูกค้าอาจได้รับประโยชน์สูงสุดอย่างไรก็ตามซอฟต์แวร์ประเภทนี้สามารถใช้ตรวจหาเนื้อหา "ที่กำหนดธงได้"


14
จนกว่าสคริปต์ของคุณจะสามารถเข้าใจสิ่งที่พูดจริง ๆ(แทนที่จะเก็บคำหลัก) ฉันคิดว่ามันเป็นไปไม่ได้ที่จะจับสถานการณ์ถากถางมากที่สุด
Rob

26
@ Kalle มาทำความเข้าใจที่นี่กันเถอะ Sarcasm เป็นหนึ่งในอุปกรณ์ที่ล้ำยุคและทันสมัยที่สุดในภาษาพูด แม้ว่าคุณจะเป็นเจ้าของภาษาอังกฤษ แต่สามารถรับบทบรรยายย่อยได้อย่างสมบูรณ์เช่นน้ำเสียงและข้อมูลเชิงบริบทที่เกี่ยวข้องคุณจะไม่สามารถตรวจสอบการเสียดสีได้เป็นประจำ ผู้พูดที่ไม่ใช่เจ้าของภาษาแทบไม่มีโอกาสเลย นำไปใช้เป็นข้อความและแม้แต่เจ้าของภาษาก็แทบไม่มีโอกาสเลย และคุณต้องการคอมพิวเตอร์ที่ต่อสู้เพื่อเข้าใจแม้แต่ประโยคที่ง่ายที่สุดในการแก้ปัญหานี้? ปล่อยให้สิ่งนี้กับใครสักคนตลอดชีวิตในการวิเคราะห์คำพูดและข้อความ
doppelgreener

17
ทำให้สคริปต์รับรู้ถึงการเสียดสี? นั่นเป็นประโยชน์ reeeally;)
zenzelezz

12
มาเลย - แม้แต่เชลดอนคูเปอร์ก็ไม่สามารถตรวจจับการเสียดสี ...
พอล R

3
ฉันไม่คิดว่าคำถามนี้ควรถูกปิดโดยเฉพาะอย่างยิ่งไม่ใช่ว่า "ไม่สร้างสรรค์" ฉันจะเปิดการโหวตอีกครั้งในขณะนี้ถ้ามันไม่ได้ผูกพัน แต่ฉันคิดว่าคำถามนี้สมควรได้รับการโหวตอีกครั้งโดยเฉพาะอย่างยิ่งกับการแก้ไขล่าสุด
อดัมเลียร์

คำตอบ:


17

หากคุณมีระบบประมวลผลภาษาธรรมชาติที่สมบูรณ์และฐานข้อมูลของข้อเท็จจริงซึ่งเป็นระบบของ IBM Watson คุณอาจสามารถแฟล็กคำสั่งบางคำเป็นถ้อยคำที่เป็นไปได้ ตัวอย่างเช่น "ฉันได้ยินว่าคุณแม่เป็นมะเร็งและคุณเพิ่งถูกไล่ออก!" "ใช่ไม่ใช่ชีวิตที่ยอดเยี่ยม!" อาจถูกตั้งค่าสถานะเนื่องจากสามารถรับรู้ว่าการเป็นมะเร็งและการสูญเสียงานมักไม่ได้อธิบายว่าเป็นประสบการณ์เชิงบวก

ฉันคิดว่าคุณไม่มีทรัพยากรในการรวบรวมระบบคะแนนของ Watson คุณสามารถรวบรวมฐานข้อมูลของวลีประชดประชันที่ใช้กันทั่วไปแล้วใช้อัลกอริทึมการจับคู่ข้อความระหว่างคำสั่งเป้าหมายและฐานข้อมูลประชดประชัน ฉันต้องเดาว่ามันจะไม่ได้ผลมากเพราะวลีทั้งหมดที่ใช้ประชดประชันถูกนำมาใช้อย่างจริงใจบ่อยขึ้น ตัวอย่างเช่น "นั่นเป็น X ที่ดี" มักใช้อย่างจริงใจ แต่บางครั้งก็ใช้ประชดประชัน

Sarcasm นั้นสัมพันธ์กับการหลอกลวงอย่างใกล้ชิด ไม่ใช่เรื่องแปลกสำหรับคนที่ใช้การเสียดสีเพื่อปฏิเสธเมื่อถูกท้าทายและการเลือกคำพูดของพวกเขาทำให้เกิดการปฏิเสธได้ ฉันสงสัยว่านี่หมายความว่าเครื่องตรวจจับการเสียดสีที่ดีอาจเป็นปัญหาอย่างหนักเหมือนโปรแกรมสนทนาที่ผ่านการทดสอบของทัวริง


1
ขอบคุณสำหรับคำตอบ. คำตอบนี้มีคุณภาพดีกว่าที่กล่าวไว้ข้างต้นอย่างแน่นอน ฉันคิดว่าการสร้างฐานข้อมูลของวลีจริงนั้นใหญ่เกินไป อย่างไรก็ตามฐานข้อมูลของคำ + วิธีอื่นอาจทำให้มันใช้งานได้จริง (ไม่ใช่ 100% แต่ไม่ใช่ 0% อีกครั้ง) ฉันวางแผนที่จะเพิ่มขั้นตอนการยืนยัน หากสคริปต์ตรวจพบการเสียดสีในระดับเล็กน้อยมันจะถามว่า: การเยาะเย้ยนั้นหรือไม่ หากคุณตอบว่า: "ไม่นะ" มันจะเป็นการยืนยันการเสียดสีและโกรธจริงและไม่สนใจคุณสักระยะหนึ่ง (เวลาจะถูกกำหนดโดยระดับของการประชดประชัน)
Kalle H. Väravas

3
ฉันคิดว่าคุณต้องการที่จะยึดติดกับวลีเพราะการเสียดสีเป็นเรื่องเกี่ยวกับบริบทและมีวลีอย่างน้อยสองสามประโยคที่มีแนวโน้มที่จะถูกนำไปใช้กับ sarcasticaly "ใช่" ไม่ใช่การประชดประชัน "ใช่" ไม่ใช่ประชดประชัน แต่ "ใช่เลย!" อาจถูกใช้บ่อยกว่าอย่างประชดประชันอย่างจริงใจ
Charles E. Grant

6
สำหรับคุณภาพของคำตอบที่นี่ฉันต้องบอกว่านี่เป็นความรับผิดชอบของคุณบางส่วน การประมวลผลภาษาธรรมชาติเป็นสาขาที่รู้จักกันดีซึ่งสามารถให้เทคนิคที่มีประโยชน์มากมายแก่คุณ แต่คุณไม่ได้ระบุว่าได้ทำการวิจัยเพื่อค้นหาวิธีการที่มีอยู่แล้ว มันเป็นปัญหาที่ยากและไม่ใช่สิ่งที่สามารถตอบได้อย่างเป็นประโยชน์โดยทั่วไปในโพสต์ SO หนังสือหลายเล่มได้รับการเติมลงในหัวข้อการประมวลผลภาษาธรรมชาติ
Charles E. Grant

43

<ถากถาง>

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

</ ถากถาง>

สุจริตฉันไม่รู้ว่าจะไปเกี่ยวกับเรื่องนี้ ฉันคิดว่าเพียง 30% ของผู้คนในชีวิตจริง "ได้รับ" การเสียดสีในตอนแรกดังนั้นการใช้คอมพิวเตอร์รับรู้และเข้าใจว่ามันเป็นงานที่ยากมาก

แก้ไข จากความคิดเห็นที่โพสต์ต้นฉบับของฉันฉันเชื่อว่าฉันได้แสดงความยากลำบากอย่างสมบูรณ์แบบของงานที่ถูกถาม ใช่ช่วงครึ่งแรกของโพสต์ของฉันเหน็บแนม ฉันยังเน้นข้อเท็จจริงที่ว่าโดยใช้แท็กมาร์กอัปที่ทำขึ้น โดยการโพสต์ความคิดเห็นประชดประชันเกี่ยวกับการแก้ปัญหาเล็กน้อยในปัญหาที่ยากเป็นพิเศษและการเสียดสีนั้นถูกตีความว่าเป็น "ไม่ช่วยเหลือ" ทำให้เกิดคำถามนี้ขึ้น:

หากคุณไม่สามารถจำคำพูดเขียนได้คุณจะเขียนอัลกอริทึมที่รับรู้ได้อย่างไร

โอ้และแอนนาถ้ามีคนใส่คำว่า "ฉันคิดว่า ... " ในประโยคของพวกเขามันมักจะบ่งบอกว่ามันเป็นความเห็นที่ถูกกล่าวถึงไม่จำเป็นต้องค้นคว้าข้อเท็จจริงอย่างหนัก


3
-1 ฉันขอโทษฉันไม่แน่ใจว่าทำไมคำตอบนี้จึงเพิ่มขึ้น รหัสที่ให้นั้นไม่เกี่ยวข้องกับคำถาม 100% และส่วนที่สองของคำตอบที่คุณพูดว่า "ฉันไม่รู้" คำตอบของคุณคือ 30% ในหัวข้อและไม่ได้ช่วยหรือให้ทิศทางที่ดี
Kalle H. Väravas

18
มันได้รับการโหวตเพราะผู้โพสต์ชี้ให้เห็นว่าไม่มีวิธีการทำเช่นนี้ เนื่องจากมนุษย์มักจะไม่สามารถตรวจจับการเสียดสีดังนั้นจึงไม่มีทางที่คุณจะสามารถสอนเครื่องจักรได้ นอกจากนี้การเสียดสีมักสื่อด้วยน้ำเสียงและด้วยเหตุนี้มักจะเข้าใจผิดในการสื่อสารออนไลน์
Andy Waite

1
@Andy Waite ใช่แน่นอนคุณถูกต้อง อย่างที่ฉันบอกนะว่าคำตอบคือ 30% ในหัวข้อ (แม้คิดว่าเขาเริ่มรับ upvotes เมื่อไม่มีข้อความเพิ่มเติม) ถึงกระนั้นฉันก็จะไม่ยอมรับคำตอบนั้นเพราะ .. แน่นอนคุณไม่สามารถได้รับ 100% ตรงกับ .. แต่ถึงแมตช์ 50%? คำตอบนี้โดยทั่วไปแล้วพูดว่า "ฉันไม่เข้าใจคำถามของคุณฉันคิดว่ามันเป็นไปไม่ได้ฟังยากเลิกแค่!" ผมส่วนใหญ่จะได้รับเหล่านี้ประเภทของคำตอบในการเขียนโปรแกรมถัดไป .. "ทำไมคุณทำเช่นนี้ใช้กรอบ?!"
Kalle เอชVäravas

4
@ Kalle ฉันเห็นด้วยกับคุณ คำตอบนี้เป็นคำพูดประชดประชันส่วน "ฉันไม่รู้" และการคาดเดาส่วนหนึ่ง (30% จริงเหรอ? มันไม่ได้ช่วยอะไรเลยและควรเป็นความเห็นที่ดีที่สุด
อดัมเลียร์

3
หัวข้อความคิดเห็นที่น่าสนใจ - เห็นได้ชัดว่าแม้แต่มนุษย์ก็ไม่สามารถตรวจจับการเสียดสี (หรือขาดได้) อย่างน่าเชื่อถือ
Piskvor ออกจากอาคาร

11

ปัญหาของการตรวจจับการเสียดสีเป็นปัญหาเปิดในภาษาศาสตร์คอมพิวเตอร์ - คุณจะได้รับการบริการที่ดีขึ้นโดยการค้นหาgoogle scholarกว่า stackexchange สำหรับสิ่งต่าง ๆ อย่างไรก็ตามมีความคืบหน้าเกี่ยวกับเรื่องนี้บ้าง สำหรับการพูดประชดประชันผู้รู้จำที่แข็งแกร่งสามารถสร้างขึ้นได้โดยใช้ "ลักษณะทางสเปกตรัมและบริบท"ที่ (ผู้เขียนอ้างว่า) ตรวจจับการเสียดสีเช่นเดียวกับคำอธิบายประกอบของมนุษย์ ผู้เขียนบทความอ้างว่าข้อความดิบจึงไม่เพียงพอที่จะตรวจจับการเสียดสี - แน่นอนว่าพวกเขาได้ผลลัพธ์ที่ดีขึ้นโดยไม่สนใจคำที่ถูกพูดจริง

Tsur et al. ยังได้รายงานผลประกอบการที่น่าสนใจบางอย่างในต้นฉบับเดิมถากถางการตรวจสอบเพียงปีที่ผ่านมาพวกเขาด้วยอัลกอริทึมศศิ พวกเขายังรายงานผลการติดตามเพิ่มเติมเพิ่มเติมในบทความอื่น

ไม่ว่าในกรณีใดนี่คือความล้ำสมัยของการวิจัยภาษาคอมพิวเตอร์ อย่าคาดหวังว่าทุกคนจะส่ง libsarcasm ให้คุณบนแผ่นเงิน คุณจะต้องใช้ชุดข้อมูลการฝึกอบรมขนาดใหญ่และมีเวลาว่างมากมายในการปรับแต่งเครื่องตรวจจับการเสียดสีของคุณ - และถึงตอนนั้นความแม่นยำ 77% (ตามที่รายงานไว้ในกระดาษ SASI) นั้นไม่เพียงพอที่จะปฏิเสธการโพสต์


อืม 77%? ที่ดูเหมือนว่าจะดีกว่ามากที่สุดคน (ไม่มีการประชดประชัน)
Piskvor ออกจากอาคาร

@Piskvor อาจเป็นไปได้ แต่ฉันไม่มีสถิติเกี่ยวกับเรื่องนี้ มันมีความแม่นยำดีกว่าเสียงอย่างน้อย
bdonlan

2

ฉันไม่คิดว่าคำตอบนี้เป็นวิธีการที่สมจริงมาก แต่ถ้าคุณมีทรัพยากรที่จะทำฉันเชื่อว่ามันจะเป็นไปได้ พิจารณาโครงการ reCaptcha ของ google ซึ่งใช้มนุษย์ในการถอดรหัสคำที่คอมพิวเตอร์ไม่สามารถอ่านได้ ( "เรียนรู้เพิ่มเติมหน้า Retaptcha" ) ฉันเชื่อว่าปัญหาคล้ายกันคือคุณกำลังพยายามทำให้เครื่องจักรหาสิ่งที่มนุษย์ทำมาแล้วอย่างน้อยก็ทำได้ดีกว่า

ลองนึกภาพคุณมีทรัพยากรที่จะขอให้ผู้คนนับล้านระบุการเสียดสีกับคุณในบริบทการสนทนาที่พิมพ์ออกมา ลองนึกภาพว่าคุณสามารถขอให้คนจำนวนมากส่งช่วงเวลาที่แน่นอนในการสนทนาเมื่อการพูดประชดประชันเป็นจริงและเป็นบทสนทนาเล็กน้อยก่อนที่จะตระหนักว่าใครจะต้องทำเครื่องหมายประจำตัวนั้น สิ่งนี้สามารถเก็บไว้ในฐานข้อมูลสมมติว่าโปรแกรมของคุณมีการเข้าถึง จากนั้นในขณะที่ผู้ใช้กำลังพิมพ์การสนทนากับคุณฐานข้อมูลอาจถูกกรองสำหรับการสนทนา "ที่คล้ายกัน"

วิธีการประเมินความคล้ายคลึงกันเป็นสิ่งที่คิด แต่สิ่งที่ฉันเชื่อว่าอาจมีงานวิจัยสำหรับการดำรงอยู่แล้ว ฉันเชื่อว่ามันจะเป็นเหมือนทฤษฎีที่อยู่เบื้องหลังการแก้ไขข้อผิดพลาดในการสะกดคำ ไม่ว่าจะด้วยวิธีใดก็ตามอาจเป็นไปได้ว่าคุณค่าความน่าจะเป็นที่การสนทนาที่พิมพ์ไว้นั้นเป็นความจริงอย่างเหน็บแนมและในบางครั้งจะต้องมีการกำหนดเกณฑ์

ฉันชอบความคิดของคุณในการนำเสนอคำถามว่า ให้กับผู้ใช้และจากนั้นใช้การตอบสนองของพวกเขาเพื่อให้ได้การตัดสินใจที่แม่นยำยิ่งขึ้น

ฉันหวังว่าคำตอบของฉันจะไม่สิ้นเปลืองและฉันขอให้คุณโชคดีในความพยายามนี้

-Asaf


1

การตรวจจับ Sarcasm ในภาษาศาสตร์คอมพิวเตอร์ (หรือที่เรียกว่าการประมวลผลภาษาธรรมชาติ) เป็นปัญหาที่ยากมากในสิทธิของตนเอง มันเป็นปัญหาการจำแนกที่ต้องฝึกอบรมแบบแรก ปัญหาที่คล้ายกันในการหาคู่-แง่ (ไฟล์ PDF) ได้รับการวิจัยและเผยแพร่เมื่อเร็ว ๆ นี้ เทคนิคสำหรับปัญหาทั้งสองนี้เปรียบได้


1

2 เซนต์ของฉัน:

ถามนักจิตวิทยาเกี่ยวกับวิธีจดจำการเสียดสีในวลีด้วยข้อมูลนั้นเปรียบเทียบกับอินพุต

แต่มันจะเป็นโครงการที่ยากจริงๆด้วยความพยายามที่ใช้ในการนั้นคุณสามารถทำระบบปฏิบัติการที่ดีที่สุดในโลกได้อย่างแน่นอน: P

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.