ฉันจะแสดงความสัมพันธ์ที่ลึกซึ้งในข้อมูลของฉันได้อย่างไร


20

"A" เกี่ยวข้องกับ "B" และ "C" ฉันจะแสดงให้เห็นว่า "B" และ "C" อาจเกี่ยวข้องกับบริบทนี้ได้อย่างไร

ตัวอย่าง:

นี่คือหัวข้อข่าวบางส่วนเกี่ยวกับละครบรอดเวย์ล่าสุด:

  1. Glengarry Glen Ross ของ David Mamet นำแสดงโดย Al Pacino เปิดบรอดเวย์
  2. Al Pacino ใน 'Glengarry Glen Ross': นักวิจารณ์คิดอย่างไร
  3. Al Pacino ได้รับบทวิจารณ์ที่ไม่สดใสสำหรับบทละครบรอดเวย์
  4. รีวิวโรงละคร: Glengarry Glen Ross กำลังขายดาวของมันอย่างหนัก
  5. Glengarry Glen Ross; เฮ้ใครฆ่าไฟ Klieg?

ปัญหา:

การเรียกใช้ฟัซซี่ - สตริงที่ตรงกันกับระเบียนเหล่านี้จะสร้างความสัมพันธ์บางอย่าง แต่ไม่ใช่อื่น ๆ แม้ว่าผู้อ่านของมนุษย์สามารถเลือกพวกเขาออกจากบริบทในชุดข้อมูลที่มีขนาดใหญ่กว่ามาก

ฉันจะค้นหาความสัมพันธ์ที่แนะนำ # 3 เกี่ยวข้องกับ # 4 ได้อย่างไร ทั้งคู่สามารถเชื่อมต่อกับ # 1 ได้อย่างง่ายดาย แต่ไม่สามารถเชื่อมต่อกันได้

มีชื่อ (Googlable) สำหรับข้อมูลหรือโครงสร้างประเภทนี้หรือไม่? ฉันกำลังมองหาอัลกอริทึมชนิดใด

เป้าหมาย:

เมื่อได้รับ 1,000 หัวข้อข่าวระบบที่แนะนำโดยอัตโนมัติว่ารายการทั้งห้านี้อาจเป็นเรื่องเดียวกัน

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

นี่เป็นโครงการส่วนบุคคลและฉันกำลังเขียนใน Python ขอบคุณล่วงหน้าสำหรับความช่วยเหลือคำแนะนำและตัวชี้!


1
เสียงเหมือนการแยกวิเคราะห์ภาษาธรรมชาติและ / หรือเทคนิคความน่าจะเป็นอื่น ๆ ที่จำเป็น
jk

2
นี่เป็นคำถามที่ยอดเยี่ยม!
Michael Brown

ฉันคิดว่าฉันเคยเห็นระบบที่สามารถใช้งานได้ใน Prolog
FrustratedWithFormsDesigner

1
@FrustratedWithFormsDesigner ฉันสงสัยว่าคุณกำลังคิดถึงการรวมกันในการเขียนโปรแกรมเชิงตรรกะ .. ?
Izkata

คำตอบ:


14

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


7

คุณกำลังเข้าสู่โลกแห่งความหมาย มีบริการสาธารณะที่จะแยกวิเคราะห์ข้อความและดึงแนวคิดหลักออกมา (การค้นหาอย่างรวดเร็วสำหรับSemantic API จะปรากฏขึ้นเล็กน้อย) ซึ่งจะแยกวิเคราะห์เอกสารในรูปแบบอิสระและส่งคืนหัวข้อสำคัญที่พบ ได้แก่ ผู้คนสถานที่สิ่งต่าง ๆ วันที่และแนวคิด . สิ่งที่ดีกว่าบางอย่างจะกลับมาในรูปแบบที่รู้จักในชื่อ [RDF]

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


4

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

ดังที่ได้กล่าวไว้ในคำตอบของ Karl Bielefeldt การจัดกลุ่มเป็นวิธีการที่ดี แต่ Devil อยู่ในรายละเอียด คุณไม่เพียงแค่ต้องเลือกวิธีการจัดกลุ่มที่เหมาะกับปัญหา / พื้นที่ผู้ใช้ของคุณเท่านั้นคุณต้องหาว่าคลัสเตอร์ใดบ้าง

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

อีเมลของฉันอยู่ในโปรไฟล์ของฉันหากคุณต้องการรับปัญหาเกี่ยวกับการสร้างเวกเตอร์ ฯลฯ

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