ภาพรวมโครงการ
เอนทิตี + ความคิดเห็น (แง่มุม) การสกัดจากการทบทวนการบริการลูกค้าควบคู่ไปกับการประเมินผลกับป้ายกำกับที่มีคำอธิบายประกอบที่แท้จริง
ชุดข้อมูล:
- คำอธิบาย: รีวิวร้านอาหารบริการลูกค้า Yelp
- ชื่อ:
train.csv - เนื้อหา: ไฟล์ CSV มีสองคอลัมน์ (รีวิว, ความเชื่อมั่น/ความคิดเห็น/ป้ายกำกับ)
- หมายเหตุ: มีการวิเคราะห์รีวิวดิบเท่านั้น ฉลากความเชื่อมั่น/ความคิดเห็นถูกมองข้ามเนื่องจากวัตถุประสงค์ของรหัสคือการหาวิธีที่ดีขึ้นในการแยกมัน
- หมายเหตุ: ไฟล์นี้ใช้เพื่อวัตถุประสงค์ EDA เท่านั้น
ฉลากที่แท้จริง
- ชุดข้อมูลไม่ได้รับคำอธิบายประกอบของมนุษย์สำหรับการสร้างฉลากที่แท้จริง
- ไฟล์
sample_review.csv (มีการตรวจสอบคำอธิบายประกอบเดียว) ถูกสร้างขึ้นสำหรับการเปรียบเทียบ POC ของฉลาก TRUE-VS-PRED
ชิ้นส่วนโครงการ:
ส่วนที่ 1 - eda
ส่วนที่สอง - การสกัดความคิดเห็นของเอนทิตี
โมดูลนี้เกี่ยวข้องกับการสกัดเอนทิตีที่ได้รับการตรวจสอบ (เช่น 'อาหาร') ควบคู่ไปกับความคิดเห็นของผู้ตรวจสอบที่เกี่ยวข้องกับเอนทิตี (เช่น 'ค่อนข้างอร่อย')
ส่วนที่สาม - การประเมินผล
โมดูลนี้เกี่ยวข้องกับการประเมินผลการสกัด tuple ของเอนทิตี-ตัวเลือกกับคำอธิบายประกอบความจริงภาคพื้นดิน
EDA: ข้อมูลเชิงลึกเริ่มต้นและทั่วไป
- รีวิวจำนวน: 1121
- ความเชื่อมั่น: ~ 60% (POS); ~ 20% (เป็นกลาง); ~ 20% (neg) คนส่วนใหญ่แสดงอารมณ์เชิงบวกเกี่ยวกับประสบการณ์การรับประทานอาหารของพวกเขา

- ความยาวของคำ: ประมาณ 50% ของบทวิจารณ์มีความยาว 6-15 โทเค็น คนส่วนใหญ่ไม่ใช้เวลาในการเขียนรีวิว“ ละเอียดมาก”

- Extended EDA - เทคนิค NLP เพิ่มเติมที่สามารถใช้สำหรับการได้รับข้อมูลเชิงลึก: แบบจำลองคำถามและคำ, WordCloud, จำนวนความถี่ N -GRAM (หลังจากการถอดคำหยุด), การจับคู่ฟัซซี่, การจับคู่ที่แน่นอน/บางส่วน ความแตกต่างในอาหาร/เครื่องดื่มความแตกต่างเป็นประเภทของมื้ออาหาร (อาหารเช้า, อาหารกลางวัน, อาหารเย็น), ความแตกต่างจากไบนารีตามโทเค็น (คำคุณศัพท์เทียบกับส่วนที่เหลือ), การวิเคราะห์ความเข้มของคำวิเศษณ์, การวิเคราะห์การพึ่งพา syntactic
รหัส
- eda - ดูไฟล์
EDA.ipynb - การสกัดความคิดเห็นของเอนทิตี + การประเมิน TRUE-VS-PRED - โครงการ (
.py โมดูล)
คำแนะนำ
เรียกใช้โมดูล main.py
หมายเหตุ:
- ตรวจสอบให้แน่ใจว่าได้สร้างไฟล์
.env สำหรับการจัดเก็บคีย์ OpenAI API ของคุณ - ใช้รูปแบบต่อไปนี้:
OPENAI_API_KEY = "your_openai_api_key"
การดำเนินการและทางเลือก:
เอ็กรา
วิธีการง่าย ๆ (รวดเร็วให้เพียงมุมมองมาโครเริ่มต้นของข้อมูล)
- การกระจายของจำนวนคำ (ทั้งแบบสัมบูรณ์และปกติ) เพื่อวัดความยาวโดยรวมของการทบทวน
- Word Cloud
ความเข้าใจในเชิงลึกมากขึ้น
การย้ายจาก lexicosyntactic ไปยังวิธีการเชื่อมต่อแบบ semantics-pragmatics
- การสร้างแบบจำลองหัวข้อด้วย bertopic
การสกัดเอนทิตี
- โมเดล NER ถูก จำกัด อยู่ในชุดของหน่วยงานที่ผ่านการฝึกอบรมซึ่งไม่ได้สะท้อนถึงสเปกตรัมทั้งหมดของหน่วยงานที่เป็นไปได้ในทุกโดเมน (เช่นบทวิจารณ์ร้านอาหาร) พวกเขาต้องการกระบวนการที่น่าเบื่อของคำอธิบายประกอบการตรวจสอบและการฝึกอบรม
- แบบจำลองคำถามและคำตอบส่วนใหญ่ได้รับการฝึกฝนเกี่ยวกับชุดคำถามและชุดข้อมูลเฉพาะและสามารถมีข้อผิดพลาดประเภท I และ II มากกว่า LLMS
วิศวกรรมที่รวดเร็ว
เน้นไปที่สิ่งต่อไปนี้:
- COT (ห่วงโซ่แห่งความคิด)
- การเรียนรู้ไม่กี่ครั้ง
- ความแตกต่างของระบบ/ผู้ใช้/ผู้ช่วย
- สร้างความมั่นใจให้กับโมเดล
วิธีการประเมินผล: การสกัด LLM กับคำอธิบายประกอบความจริงภาคพื้นดิน
Bert Sensent-Transformers สำหรับการวัดความคล้ายคลึงกันของข้อความความหมายโดยใช้ความคล้ายคลึงกันของโคไซน์
หลังจากทดสอบการเปลี่ยนแปลงทางภาษาศาสตร์ต่าง ๆ ของหน่วยงานและความคิดเห็นที่คาดการณ์ด้วย VS-VS (แง่มุม) นั้นมีการตั้งค่าเกณฑ์ 0.85 สำหรับการยอมรับการทำนายของแบบจำลองในการผลิต
ทางเลือกการประเมินผล
การเปลี่ยนประโยคควบคู่ไปกับการแก้ปัญหาตามกฎ
การรวมวิธีการที่ซับซ้อน (เช่นการเปลี่ยนประโยค) เข้ากับวิธีการแบบดั้งเดิมตามกฎเพื่อเสริมสร้างความถูกต้องของผลลัพธ์
ตัวอย่างเช่นโซลูชันที่ใช้หม้อแปลงรวมกับการแยกวิเคราะห์การพึ่งพาวากยสัมพันธ์ POS และ NER (คุณสมบัติทางภาษา) สามารถช่วยในการทำให้แน่ใจว่า "ร้านอาหาร" และ "ร้านอาหาร" ได้รับการยกย่องว่าเป็นตัวอย่างเดียวกัน
ตัวชี้วัดการจำแนกประเภทดั้งเดิม (การเรียกคืนความแม่นยำ, คะแนน F1, ความแม่นยำ)
ตัวชี้วัดการจำแนกประเภทแบบดั้งเดิมมากขึ้น (การเรียกคืนความแม่นยำ F1 คะแนนความแม่นยำ) มีความเกี่ยวข้องน้อยกว่าในกรณีนี้
ส่วนประกอบเมทริกซ์ความสับสนจำนวนมากไม่เกี่ยวข้องในงานการจำแนกแบบไบนารีของคำ/วลีเดียวจากการตรวจสอบทั้งหมด (ครั้งเดียวสำหรับการจดจำเอนทิตีและอีกครั้งสำหรับแง่มุม) สิ่งนี้ทำให้เป็นไปไม่ได้ที่จะคำนวณตัวชี้วัดเหล่านี้
นอกจากนี้ตัวชี้วัดเหล่านี้ไม่สามารถจับความหมายนาทีได้อย่างเต็มที่ได้รับอิทธิพลจากการรวม/การลบคำคุณศัพท์/คำนามตัวดัดแปลงและคำวิเศษณ์ ยกตัวอย่างเช่น“ อร่อย” เทียบกับ“ ค่อนข้างอร่อย”
ยิ่งกว่านั้นสิ่งนี้ทำให้เกิดคำถามว่าจะคำนึงถึงการไม่สนใจการจับคู่บางส่วนเช่นนี้เมื่อใช้การเรียกคืนความแม่นยำคะแนน F1 และความแม่นยำ
ตัวชี้วัดที่ใช้ N-GRAM แบบดั้งเดิม (ความคล้ายคลึงกันของ LexicoSyntactic)
อย่างไรก็ตามฉันเชื่อว่าตัวชี้วัดที่ใช้ N-Gram แบบดั้งเดิมสามารถใช้เพื่อสร้างพื้นฐาน:
- Bleu (เน้นความแม่นยำ)
- Rouge (เน้นการเรียกคืน)
- Meteor (คำนวณค่าเฉลี่ยฮาร์มอนิกของความแม่นยำและการเรียกคืนควบคู่ไปกับบทลงโทษสำหรับคำสั่งและความแตกต่างของวลี)
การแก้ปัญหาความมีชีวิตในการผลิต
แม้ว่าจะต้องมีการทดสอบอย่างละเอียดมากขึ้น แต่วิธีการที่คล้ายคลึงกันของโคไซน์ที่ใช้ในการวัดความคล้ายคลึงกันของข้อความความหมายระหว่างการฝังตัวของประโยคเบิร์ตที่ฝังอยู่ข้างๆเกณฑ์ที่ค่อนข้างเข้มงวด (ซึ่งส่วนใหญ่ควรคำนึงถึงการมี/ไม่มีคำคุณศัพท์/คำนาม
นอกจากนี้ยังมีข้อควรพิจารณาเพิ่มเติมเกี่ยวกับสภาพแวดล้อมการผลิตเช่นเวลาแฝงเวลาในการคำนวณโฮสติ้งโมเดลหนักบนเซิร์ฟเวอร์และค่าใช้จ่ายเพิ่มเติม