Secara otomatis mengekstrak konsep dan kata kunci dari teks (Bagian II: pendekatan semantik)

Diterbitkan: 2022-09-20

Artikel ini adalah lanjutan dari bagian pertama tentang ekstraksi otomatis kata kunci dari sebuah teks. Artikel sebelumnya membahas apa yang disebut pendekatan "tradisional" untuk mengekstrak kata kunci dari teks: berbasis statistik atau berbasis grafik.

Di sini, kita akan mengeksplorasi metode dengan pendekatan yang lebih semantik . Pertama, kami akan memperkenalkan penyematan kata dan transformator , yaitu penyematan kontekstual. Kemudian kami akan membagikan contoh dengan teks yang sama tentang album John Coltrane, Impressions (sumber francemusique.fr) berdasarkan model BERT. Terakhir kami akan menyajikan beberapa metode evaluasi seperti P@k , f1-score serta benchmark dari state of the art terbaru.

Berbeda dengan pendekatan tradisional, pendekatan semantik memungkinkan Anda untuk menghubungkan kata-kata yang termasuk dalam bidang leksikal yang sama, meskipun berbeda. Ide di balik pendekatan ini adalah untuk menghilangkan perhitungan frekuensi kemunculan kata dalam teks untuk mengekstrak kata-kata yang paling masuk akal, dengan kata lain yang memberikan informasi paling relevan dalam kaitannya dengan teks.

Penyematan Kata

Metode ini dimulai pada tahun 2013 dengan diperkenalkannya model yang disebut word2vec. Ini adalah arsitektur jaringan saraf tiruan yang “sederhana” – tidak seperti arsitektur yang disebut “Deep Learning” – yang mengusulkan untuk merepresentasikan kumpulan kata dari kosa kata sebagai vektor. Dengan kata lain, setiap kata diwakili oleh deretan angka. Kumpulan vektor ini mewakili bidang semantik kosakata, dengan kemampuan untuk membandingkan vektor-vektor ini satu sama lain. Dengan mengukur jarak antara vektor-vektor ini, kita dapat mengetahui apakah kata-kata tersebut secara semantik serupa . Representasi kata-kata sebagai array angka disebut embeddings .

word2vec-embedding-example-en

embedding-contoh

Setelah Anda memiliki representasi vektor dari kumpulan kata Anda, Anda dapat membandingkan kata-kata ini satu sama lain. Dua kata akan memiliki arti yang dekat jika dua vektor memiliki sudut yang sangat kecil di antara mereka: ini adalah jarak semantik – nilai antara -1 dan 1. Semakin dekat nilainya dengan 1, semakin banyak kata tersebut memiliki "mirip" arti. Nilai yang mendekati -1 sebaliknya akan menunjukkan arti yang “berlawanan”, misalnya “baik” dan “buruk”.

Tujuan dari model ini adalah untuk "memproduksi" embeddings terkenal ini dari sejumlah dokumen teks yang tidak dapat diabaikan. Katakanlah Anda memiliki beberapa ratus ribu teks, model akan belajar memprediksi kata berdasarkan kata-kata yang mirip dengannya.

word2vec-window-en

kata-jendela

Model akan mengambil beberapa kelompok kata sebagai masukan – dengan ukuran 5 misalnya – dan mencoba mencari alternatif terbaik untuk <mask> . Di dalam korpus Anda, ada frasa atau kelompok kata yang serupa; kita akan dapat menemukan kata-kata: "jazz", "rock", "klasik" atau "reggae" misalnya. Dengan demikian, semua kata ini akan memiliki vektor yang sangat mirip. Dengan demikian, model dapat menyatukan konsep dan kata-kata yang berada dalam bidang leksikal yang serupa.

[Studi Kasus] Temukan dan perbaiki masalah pengindeksan

Dari nol lalu lintas hingga pertumbuhan eksponensial: temukan bagaimana GroupM Turkey menggunakan Oncrawl untuk menyelesaikan masalah pengindeksan Unilever.
Baca studi kasus

Di sisi lain, mungkin ada ambiguitas untuk sebuah kata yang memiliki ejaan yang sama tetapi tidak memiliki arti yang sama dalam konteksnya: ini adalah kata-kata homograf.

Sebagai contoh:

  1. Dia duduk di samping tepi sungai Seine.
  2. Dia menyimpan uangnya di bank Chase.

Ini adalah batasan dari model jenis ini: kata akan memiliki representasi vektor yang sama terlepas dari konteksnya.

Transformer

Pendekatan yang lebih baru muncul terutama pada tahun 2017 dengan Google's Attention Is All You Need. Dimana metode word2vec berjuang untuk mewakili dua kata identik yang tidak memiliki arti yang sama, model tipe transformer mampu membedakan arti sebuah kata berdasarkan konteksnya . Perhatikan bahwa ada juga model NLP yang mampu memperhitungkan urutan kata seperti RNN atau LSTM, tetapi kami tidak akan membahasnya dalam artikel ini.

Transformers akan mempopulerkan konsep baru dalam arsitektur jaringan saraf: mekanisme perhatian . Hal ini memungkinkan Anda untuk menemukan, dalam urutan kata misalnya kalimat, bagaimana setiap kata terkait dengan yang lain.

Model BERT, yang dibuat oleh Google pada tahun 2018, adalah model yang kuat dan populer. Keuntungan dari model bahasa ini adalah bahwa mereka didasarkan pada model yang telah dilatih sebelumnya , yaitu model tersebut telah dilatih pada sejumlah besar teks dalam bahasa Inggris, Prancis, dll. Kemudian dimungkinkan untuk menggunakannya atas dasar analisis yang lebih detail. Kemudian dimungkinkan untuk menggunakannya sebagaimana adanya untuk membandingkan teks, menghasilkan jawaban dari pertanyaan, melakukan analisis sentimen, melakukan penyetelan halus pada badan teks yang lebih spesifik, dll.

bert-attention-visualisation

Visualisasi Perhatian

Gambar dihasilkan dengan alat visualisasi exBERT . Kita dapat melihat bahwa kata “uang” yang dipilih sangat terkait dengan “ deposito ” dan “ bank ”. Model tersebut kemudian lebih mudah untuk menghilangkan ambiguitas pada kata “ bank ” berkat konteksnya.

Dalam kasus KeyBERT, ini adalah model yang diturunkan dari BERT yang disebut Kalimat-BERT yang memungkinkan kita untuk dengan mudah membandingkan kalimat secara semantik.

Jika Anda ingin mengetahui lebih lanjut tentang semua model open source dan pra-terlatih yang tersedia, Anda dapat mengunjungi hub Huggingface yang berspesialisasi dalam menyimpan dan berbagi kumpulan data dan model yang terkait dengan NLP (tetapi juga baru-baru ini untuk audio dan gambar).

Ekstraksi kata kunci dengan KeyBERT

Jadi, bagaimana kita bisa menggunakan transformer untuk mengekstrak kata kunci yang relevan dari sebuah teks? Ada beberapa proyek termasuk KeyBERT: Ekstraksi kata kunci minimal dengan BERT, pustaka Python open source yang menggunakan model BERT.

KeyBERT akan, secara default, menggunakan pengubah kalimat berbasis BERT untuk mewakili sebuah kalimat, bukan satu kata, sebagai vektor. Ini adalah cara yang sangat efisien untuk membandingkan kalimat atau kelompok kata. Prinsip dari algoritma KeyBERT cukup sederhana. Mari kita lihat contoh teks, lalu:

  1. Kode akan mengekstrak semua kata unik dari teks. Pada langkah ini, stopword sering dihilangkan.
  2. Embeddings dari seluruh teks dan setiap kata dihitung.
  3. Kami kemudian dapat menghitung jarak semantik antara vektor yang berasal dari kata-kata dan vektor yang mewakili teks secara keseluruhan.

Setelah semua jarak dihitung, kita dapat mengekstrak kata-kata yang terkait erat dengan makna keseluruhan teks: ini akan menjadi kata kunci yang dipilih oleh algoritme.

Selain itu, KeyBERT memberi Anda kemampuan untuk memilih panjang frasa kunci: kami sebenarnya dapat mengambil kata tunggal, atau berpasangan atau bahkan tiga kali lipat kata. Selanjutnya, kode tersebut menyediakan cara untuk menerapkan metode “Maximal Marginal Relevance” (MMR) untuk meningkatkan keragaman hasil. Ini membantu Anda menghindari pengulangan istilah, yang mungkin relevan dengan konten dokumen, tetapi terlalu sering muncul dalam hasil, misalnya: "konser jazz", "musik jazz", "gaya jazz" , dll.

Sebagai kesimpulan, juga dimungkinkan untuk menggunakan model NLP lain untuk KeyBERT seperti model dari spaCy atau flair.

Seperti pada artikel sebelumnya, berikut adalah contoh kata kunci yang diekstrak oleh KeyBERT dari artikel yang sama tentang album John Coltrane, Impressions:

"tayangan coltrane", "kuartet musik", "harta karun jazz", "konser john", "urutan mutiara", "repertoar graz", "saksofon tenor"

Metode evaluasi

​​Pada artikel ini dan sebelumnya, kami menyajikan beberapa metode yang digunakan untuk mengekstrak kata kunci dari dokumen: RAKE, Yake, TextRank, dan KeyBERT. Namun, penting untuk dapat memilih yang tepat sesuai dengan konteks Anda.

Oleh karena itu relevan untuk melihat metode evaluasi untuk membandingkan hasil dari satu metode dengan yang lain. Dari data (document, keywords) yang kata kuncinya telah ditentukan dan divalidasi oleh manusia, dimungkinkan untuk membandingkan hasil dari model dengan " kenyataan " ini. Kami memiliki metrik seperti presisi, recall dan f1-score yang sering digunakan dalam masalah klasifikasi . Oleh karena itu, kita dapat membangun matriks kebingungan dengan mengetahui apakah kata kunci tertentu yang diekstraksi oleh model memang ada dalam daftar kata kunci yang relevan.

Karena model dapat mengekstrak serangkaian kata kunci, kami sering membandingkan k kata kunci pertama dengan kebenaran dasar . Karena hasilnya dapat bervariasi sesuai dengan jumlah kata kunci yang ingin kami bandingkan, kami mengevaluasi model beberapa kali sesuai dengan nilai k . Metrik ini disebut Precision@k yang artinya: “Saya menghitung Presisi di atas-k”.

[Ebook] Bagaimana skema penautan internal Anda memengaruhi Inrank

Ikuti eksperimen Chris Green untuk memahami bagaimana skema penautan internal Anda memengaruhi kepentingan relatif halaman Anda menggunakan Inrank.
Bagaimana skema penautan internal Anda memengaruhi Inrank

presisi

Ini adalah jumlah kata kunci yang benar di k teratas dari semua kata kunci yang diprediksi .

Precision calculation

Mengingat

Ini adalah jumlah kata kunci yang benar di atas-k dari total kata kunci kebenaran dasar.

Recall calculation

f1-skor

Ini adalah kombinasi dari dua metrik sebelumnya – atau dengan kata lain rata-rata yang harmonis antara presisi dan ingatan:

F1 score calculation

PETA @ k

Rata-rata Presisi Rata-rata

Langkah pertama untuk menghitung MAP adalah menghitung Average Precision. Kami akan mengambil semua kata kunci yang ditemukan oleh model dan menghitung P@k untuk setiap kata kunci relevan yang ditemukan oleh model. Sebagai contoh, untuk menghitung AP@5 dengan 3 kata kunci yang relevan dari 5 yang diusulkan:

 kata kunci: radio saksofon musik konser jazz
   relevan: 1 0 1 1 0
   P@k: 1/1 2/3 3/4

   AP: 1/3 (1 + 2/3 + 3/4) ~= 0.80

Kami mencatat di sini bahwa posisi kata kunci yang relevan adalah penting. Faktanya, AP tidak akan memiliki skor yang sama jika tiga kata kunci pertama dari lima tidak relevan (resp. relevan).

Kemudian, untuk masing-masing (document, keywords) , kami akan menghitung rata-rata semua AP untuk akhirnya mendapatkan MAP.

Perhatikan bahwa metrik yang berbeda ini juga banyak digunakan untuk mengevaluasi model peringkat atau sistem rujukan.

Satu kritik kecil terhadap beberapa metrik ini menyangkut jumlah kata kunci kebenaran dasar yang relevan, yang dapat bervariasi per kumpulan data dan per dokumen.

  • Misalnya recall@k : skor dapat sangat bergantung pada ukuran kata kunci yang relevan dari kebenaran dasar. Jika Anda memiliki hingga 20 kata kunci yang relevan, untuk recall@10 Anda akan membandingkan 10 kata kunci pertama dalam kumpulan 20 kata kunci ini. Dalam kasus terbaik, jika semua kata kunci yang diusulkan oleh model relevan, skor recall tidak akan melebihi 0,5.
  • Di sisi lain, jika jumlah kata kunci kebenaran dasar yang relevan sangat rendah dibandingkan dengan yang diusulkan oleh model, Anda tidak akan dapat memperoleh skor precision@k yang baik. Untuk lima kata kunci kebenaran dasar yang relevan, precision@10 paling baik memiliki skor 0,5 tetapi tidak lebih.

Apapun metrik yang digunakan untuk mengevaluasi hasil, perlu untuk memiliki kumpulan data (teks, kata kunci) di mana kata kunci telah ditentukan sebelumnya oleh orang – penulis teks, pembaca, editor, dll. Ada beberapa kumpulan data, terutama di Bahasa Inggris dan topik yang berbeda: artikel ilmiah, abstrak, berita, IT, dll. Misalnya, ini adalah repositori Github KeywordExtractor-Datasets yang mencantumkan sekitar dua puluh kumpulan data.

Tolak ukur

Di luar presentasi berbagai metode evaluasi ini, saya juga ingin memberi Anda "intisari" dari beberapa makalah penelitian yang mengusulkan tolok ukur.

Yang pertama adalah oleh para peneliti yang mengimplementasikan Yake! metode di kertas, “YAKE! Ekstraksi kata kunci dari satu dokumen menggunakan beberapa fitur lokal“. Mereka menganalisis metode mereka pada sekitar dua puluh kumpulan data yang berbeda: PubMed, WikiNews, SemEval2010, dan KDD untuk yang paling terkenal, menggunakan sebagian besar metrik yang dijelaskan di atas: P@k , recall@k , dll. Yake! akan dibandingkan dengan sekitar sepuluh metode lain termasuk Rake, Text Rank, dll. Dengan menggabungkan semua dataset yang tersedia dan menghitung presisi dan recall , Yake! metode ini lebih baik atau sangat dekat dengan metode mutakhir. Misalnya, untuk f1@10 :

Himpunan data Ya! Terbaik atau kedua
WikiNews 0,450 0,337
KDD 0,156 0,115
Inspeksi 0,316 0,378

Ya! sering sampai 50-100% lebih baik, yang dekat dengan metode terkemuka.

Dalam makalah lain yang lebih baru “TNT-KID: penanda saraf berbasis Transformer untuk identifikasi kata kunci” kami juga membandingkan metode tradisional dan berbasis Transformer . Metode ekstraksi menggunakan Transformers berkinerja lebih baik. Namun berhati-hatilah, karena ini disebut metode "terawasi" tidak seperti Rake, KeyBERT, dan Yake yang tidak perlu dilatih pada kumpulan data untuk menghasilkan hasil.

Akhirnya, mari kita lihat dua tolok ukur lainnya:

  • Ekstraksi Kata Kunci Sederhana Tanpa Pengawasan menggunakan Penyematan Kalimat menggunakan penyematan kata dan berkinerja baik dibandingkan dengan TextRank pada kumpulan data seperti Inspec dan DUC.
  • Posting blog yang membandingkan 7 algoritma (dalam Python): Ekstraksi Kata Kunci — Tolok Ukur dari 7 Algoritma dengan Python. Penulis membandingkan kinerja dalam hal waktu komputasi di seluruh metode KeyBERT, RAKE, Yake serta jumlah kata relevan yang dapat diekstraksi oleh setiap metode.

Kesimpulan

Seperti yang telah Anda lihat di kedua artikel ini, sebenarnya ada banyak cara yang sangat berbeda untuk mengekstrak kata kunci yang relevan dari sebuah teks. Melihat tolok ukur yang berbeda, Anda akan memperhatikan bahwa tidak ada satu pun yang benar-benar melebihi semua yang lain dalam hal metrik. Itu akan tergantung pada teks dan konteksnya. Selain itu, seperti yang ditunjukkan oleh penulis artikel blog tentang 7 algoritma ekstraksi, kita juga dapat mengandalkan waktu pemrosesan suatu algoritma ketika dihadapkan dengan teks yang panjang.

Kali ini tentu akan menjadi faktor dalam menerapkan algoritme ke dalam tindakan dan memproses ratusan ribu dokumen. Dalam kasus KeyBERT, Anda harus mempertimbangkan infrastruktur dengan GPU untuk meningkatkan waktu pemrosesan secara radikal. Padahal, metode ini mengandalkan Transformers yang memiliki arsitektur Deep Learning yang membutuhkan banyak komputasi.

Jika saya harus membuat pilihan, itu pasti antara KeyBERT dan Yake. Yang pertama untuk transformator dan aspek semantik , yang terakhir untuk efisiensi dan kecepatan eksekusi.

Referensi bibliografi

  • Perhatian adalah semua yang Anda butuhkan, 2017
  • BERT: Pra-pelatihan Deep Bidirectional Transformers untuk Pemahaman Bahasa, 2019
  • Self-Supervised Kontekstual Kata Kunci dan Pengambilan Kata Kunci dengan Self-Labeling. Sharma P. & Li Y. (2019)
  • Menjelajahi Berbagai Pengekstrak Kata Kunci — Metrik dan Strategi Evaluasi