Tinjauan Proyek
Ekstraksi entitas + opini (aspek) dari ulasan layanan pelanggan di samping evaluasi terhadap label beranotasi sejati.
Dataset:
- Deskripsi: Ulasan Restoran Layanan Pelanggan Yelp
- Nama:
train.csv - Konten: File CSV berisi dua kolom (Tinjauan, Sentimen/Opini/Label Aspek)
- Catatan: Hanya ulasan mentah yang dianalisis. Label sentimen/opini diabaikan karena tujuan kode adalah untuk menemukan cara yang lebih baik untuk mengekstraksinya.
- Catatan: File ini hanya digunakan untuk tujuan EDA.
Label sejati
- Dataset tidak menjalani anotasi manusia untuk menghasilkan label sejati.
- File
sample_review.csv (berisi ulasan beranotasi tunggal) dibuat untuk perbandingan POC label True-VS-Pred.
Bagian Proyek:
Bagian I - EDA
Bagian II - Opini Entitas Ekstraksi tuple
Modul ini berkaitan dengan mengekstraksi entitas yang ditinjau (misalnya, 'makanan') bersama pendapat pengulas tentang entitas (misalnya, 'agak lezat').
Bagian III - Evaluasi
Modul ini berkaitan dengan evaluasi ekstraksi tuple entitas-opinion terhadap anotasi kebenaran dasar.
EDA: Wawasan Awal dan Umum
- Jumlah Ulasan: 1121
- Sentimen: ~ 60% (POS); ~ 20% (netral); ~ 20% (neg) Kebanyakan orang menunjukkan emosi positif mengenai pengalaman bersantap mereka.

- Panjang kata: kira -kira. 50% dari ulasan panjangnya 6-15 token. Kebanyakan orang tidak meluangkan waktu untuk menulis ulasan "sangat menyeluruh".

- Extended EDA - Additional NLP techniques that can be used for gaining insights: Q&A model, WordCloud, N-gram frequency count (after stopwords removal), fuzzy matching, exact/partial matching (stopwords, morphological prefixes and suffixes), clustering algorithms (lexicosyntactic, semantic), sentiment, polarity, aspect and sentiment combined, NER, distinction ke dalam makanan/minuman, perbedaan menjadi jenis makanan (sarapan, makan siang, makan malam), perbedaan token berbasis POS (kata sifat vs istirahat), analisis intensifier adverbial, analisis ketergantungan sintaksis, distribusi tanda waktu (jenis, biner, kombinasi dengan sentimen).
Kode
- EDA - Lihat file
EDA.ipynb - Ekstraksi Opini Entitas + True-VS-Pred Eval. - Proyek (Modul
.py )
Instruksi
Jalankan Modul main.py
Catatan:
- Pastikan untuk membuat file
.env untuk menyimpan kunci API openai Anda. - Gunakan format berikut:
OPENAI_API_KEY = "your_openai_api_key"
Implementasi dan alternatif:
Eda
Pendekatan sederhana (cepat, berikan hanya tampilan makro awal dari data)
- Distribusi jumlah kata (keduanya absolut dan dinormalisasi) untuk mengukur panjang keseluruhan ulasan.
- Kata cloud
Pemahaman yang lebih mendalam
Pindah dari leksikosintaksis ke pendekatan antarmuka semantik-pragmatik
- Pemodelan topik dengan Bertopic
Ekstraksi entitas-opinion
- Model NER terbatas pada serangkaian entitas terlatih yang tidak mencerminkan spektrum penuh entitas yang mungkin di semua domain (misalnya, ulasan restoran). Mereka membutuhkan proses anotasi, peninjauan dan pelatihan yang membosankan.
- Model T&J sebagian besar dilatih pada serangkaian pertanyaan dan set data tertentu dan dapat memiliki lebih banyak kesalahan tipe I dan II daripada LLMS.
Teknik yang cepat
Penekanan ditempatkan pada yang berikut:
- COT (rantai pemikiran)
- Pembelajaran beberapa shot
- Perbedaan Peran Sistem/Pengguna/Asisten
- Meyakinkan model
Pendekatan Evaluasi: Ekstraksi LLM terhadap Anotasi Kebenaran Dasar
Bert kalimat-transformer untuk mengukur kesamaan tekstual semantik menggunakan kesamaan cosinus.
Setelah menguji berbagai variasi linguistik dari entitas dan opini (aspek) yang diprediksi-VS, ambang batas 0,85 ditetapkan untuk menerima prediksi model dalam produksi.
Alternatif evaluasi
Transformer kalimat bersama solusi berbasis aturan
Menggabungkan pendekatan canggih (seperti kalimat kalimat) dengan pendekatan tradisional berbasis aturan untuk memperkuat validitas hasil.
Sebagai contoh, solusi berbasis transformator yang dikombinasikan dengan penguraian ketergantungan sintaksis, POS dan NER (fitur linguistik) dapat membantu memastikan bahwa "restoran" dan "restoran" dianggap sama (tanpa/keluar dari penentu) sebagai lawan dari contoh "The Tasty" dan "SyMathat Tasty" dari atas.
Metrik klasifikasi tradisional (recall, precision, f1-score, akurasi)
Metrik klasifikasi yang lebih tradisional (recall, precision, f1-score, akurasi) kurang relevan dalam kasus ini.
Banyak komponen matriks kebingungan tidak relevan dalam tugas klasifikasi biner hanya satu kata/frasa dari seluruh ulasan (sekali untuk pengakuan entitas dan sekali untuk aspek). Ini membuat tidak mungkin untuk menghitung beberapa metrik ini.
Selain itu, metrik ini gagal untuk sepenuhnya menangkap semantik menit yang dipengaruhi oleh inklusi/penghapusan pengubah kata sifat/kata benda dan intensifier adverbial. Ambil contoh, "lezat" vs "agak lezat".
Selain itu, ini menimbulkan pertanyaan apakah akan memperhitungkan vs mengabaikan kecocokan parsial seperti ini saat menggunakan penarikan, presisi, skor F1, dan akurasi.
Metrik berbasis N-gram tradisional (kesamaan leksikosyntactic)
Saya percaya, bagaimanapun, bahwa metrik berbasis N-gram tradisional dapat digunakan untuk membangun garis dasar:
- Bleu (fokus presisi)
- Rouge (fokus ingat)
- Meteor (menghitung rata -rata harmonik dari presisi dan penarikan bersama hukuman untuk perbedaan urutan kata dan frasa)
Viabilitas solusi dalam produksi
Meskipun memang membutuhkan pengujian yang lebih menyeluruh, pendekatan kesamaan cosinus yang digunakan untuk mengukur kesamaan tekstual semantik antara embedding transformer kalimat Bert di samping ambang batas yang relatif ketat (yang sebagian besar harus mempertimbangkan ada/tidak adanya pengubah kata sifat/kata benda dan penasihat intensifier), dapat bekerja di lingkungan produksi.
Ada juga pertimbangan tambahan untuk lingkungan produksi, seperti latensi, waktu perhitungan, hosting model berat pada server, dan biaya tambahan.