Bir metinden kavramları ve anahtar kelimeleri otomatik olarak çıkarın (Bölüm II: anlamsal yaklaşım)

Yayınlanan: 2022-09-20

Bu makale, bir metinden anahtar kelimelerin otomatik olarak çıkarılmasıyla ilgili ilk bölümün devamı niteliğindedir. Önceki makale, bir metinden anahtar kelimeleri çıkarmak için sözde "geleneksel" yaklaşımla ilgiliydi: istatistik tabanlı veya grafik tabanlı.

Burada daha semantik bir yaklaşımla yöntemleri keşfedeceğiz. İlk olarak, kelime yerleştirmelerini ve dönüştürücülerini , yani bağlamsal yerleştirmeleri tanıtacağız. Daha sonra John Coltrane'in Impressions (source francemusique.fr) albümünden aynı metinle BERT modeline dayalı bir örnek paylaşacağız. Son olarak, P@k , f1-score gibi bazı değerlendirme yöntemlerinin yanı sıra en son teknolojiden alınan kıyaslamalar sunacağız.

Geleneksel yaklaşımın aksine semantik yaklaşım, benzer bir sözlük alanına ait kelimeleri farklı olsalar bile bağlamanıza olanak tanır. Bu yaklaşımın arkasındaki fikir, metinle ilgili olarak en anlamlı, diğer bir deyişle en uygun bilgiyi sağlayan kelimeleri çıkarmak için metindeki kelime oluşum sıklıklarının hesaplanmasından vazgeçmektir.

Kelime Gömmeleri

Bu yöntemin geçmişi, word2vec adlı bir modelin tanıtılmasıyla 2013 yılına dayanmaktadır. Sözde "Derin Öğrenme" mimarilerinden farklı olarak, bir kelime dağarcığının kelime kümesini vektörler olarak temsil etmeyi öneren "basit" bir yapay sinir ağı mimarisidir. Başka bir deyişle, her kelime bir sayı satırı ile temsil edilir. Bu vektör seti, bu vektörleri birbirleriyle karşılaştırma yeteneği ile birlikte, kelime dağarcığının anlamsal alanını temsil eder. Bu vektörler arasındaki mesafeyi ölçerek, kelimelerin anlamsal olarak benzer olup olmadığını anlayabiliriz. Sözcüklerin bir sayı dizisi olarak temsiline gömme denir.

word2vec-embedding-example-en

gömme-örnek

Kelime kümenizin vektör temsiline sahip olduğunuzda, bu kelimeleri birbirleriyle karşılaştırabilirsiniz. İki vektör arasında çok küçük bir açı varsa, iki kelime yakın bir anlama sahip olacaktır: bu semantik uzaklıktır – -1 ile 1 arasında bir değerdir. Değer 1'e ne kadar yakınsa, kelimeler o kadar "benzer" olur. anlam. -1'e yakın bir değer ise tam tersine “zıt” anlamları gösterecektir, örneğin “iyi” ve “kötü”.

Bu modelin amacı, bu ünlü gömmeleri ihmal edilemeyecek miktarda metin belgesinden “üretmektir”. Diyelim ki birkaç yüz bin metniniz var, model ona benzeyen kelimelere dayanarak bir kelimeyi tahmin etmeyi öğrenecek.

word2vec-window-en

kelimeler-pencere

Model girdi olarak birkaç kelime grubunu – örneğin 5 boyutunda – alır ve <mask> için en iyi alternatifleri bulmaya çalışır. Derleminizde benzer ifadeler veya kelime grupları vardır; örneğin "caz", "rock", "klasik" veya "reggae" kelimelerini bulabileceğiz. Böylece, tüm bu kelimeler oldukça benzer vektörlere sahip olacaktır. Böylece model, benzer sözlüksel alanda yer alan kavram ve kelimeleri bir araya getirebilmektedir.

[Örnek Olay] Dizine ekleme sorunlarını bulun ve düzeltin

Sıfır trafikten üstel büyümeye: GroupM Türkiye'nin Unilever'in endeksleme sorunlarını çözmek için Oncrawl'ı nasıl kullandığını keşfedin.
Örnek olayı okuyun

Öte yandan, aynı yazılışı olan ancak bağlamda aynı anlama gelmeyen bir kelime için belirsizlikler olabilir: bunlar homograf kelimelerdir.

Örneğin:

  1. Seine nehri kıyısına oturdu.
  2. Parayı Chase bankasına yatırdı.

Bu, bu tür bir modelin bir sınırlamasıdır: kelime, bağlamdan bağımsız olarak aynı vektör temsiline sahip olacaktır.

Transformatörler

Daha yeni bir yaklaşım, esas olarak 2017'de Google'ın Dikkat Edilmesi Gereken Tek Şeydir ile ortaya çıktı. Word2vec yöntemleri aynı anlama sahip olmayan iki özdeş kelimeyi temsil etmek için mücadele ederken, dönüştürücü tipi modeller bir kelimenin anlamını bağlamına göre ayırt edebilir. RNN'ler veya LSTM'ler gibi kelime dizilerini hesaba katabilen NLP modelleri de olduğunu unutmayın, ancak bu makalede bunlara değinmeyeceğiz.

Transformatörler , sinir ağı mimarisinde yeni bir kavramı popüler hale getirecek: dikkat mekanizması . Bu, örneğin bir cümle gibi bir sözcük dizisi içinde her bir sözcüğün diğerleriyle nasıl ilişkili olduğunu bulmanızı sağlar.

Google tarafından 2018 yılında oluşturulan BERT modeli, güçlü ve popüler bir modeldir. Bu dil modellerinin avantajı, önceden eğitilmiş bir modele dayalı olmalarıdır, yani model halihazırda İngilizce, Fransızca, vb. dillerdeki önemli miktarda metin üzerinde eğitilmiştir. daha detaylı analiz. Daha sonra metni karşılaştırmak, sorulardan cevaplar oluşturmak, duygu analizi yapmak, daha spesifik bir metin gövdesi üzerinde ince ayar yapmak vb. için olduğu gibi kullanmak mümkündür.

bert-attention-visualisation

Dikkat Görselleştirme

Görüntü, exBERT görselleştirme aracıyla oluşturuldu. Seçilen “para” kelimesinin “ yatırılan ” ve “ bankaile güçlü bir şekilde bağlantılı olduğunu görebiliriz . Bu durumda modelin bağlam sayesindebankakelimesindeki belirsizliği ortadan kaldırması daha kolaydır .

KeyBERT durumunda, cümleleri anlamsal olarak kolayca karşılaştırmamızı sağlayan Cümle-BERT adı verilen BERT'den türetilen bir modeldir.

Mevcut tüm açık kaynaklı ve önceden eğitilmiş modeller hakkında daha fazla bilgi edinmek istiyorsanız, NLP ile ilgili (ancak daha yakın zamanda ses ve görüntü ile ilgili) veri kümelerini ve modellerini depolama ve paylaşma konusunda uzmanlaşmış Huggingface merkezini ziyaret edebilirsiniz.

KeyBERT ile anahtar kelime çıkarma

Peki, bir metinden alakalı anahtar kelimeleri çıkarmak için dönüştürücüleri nasıl kullanabiliriz? KeyBERT: BERT modelini kullanan açık kaynaklı bir Python kitaplığı olan BERT ile minimum anahtar kelime çıkarma dahil olmak üzere birkaç proje var.

KeyBERT, varsayılan olarak, bir vektör olarak tek bir kelime yerine bir cümleyi temsil etmek için BERT tabanlı cümle dönüştürücülerini kullanır. Bu, cümleleri veya kelime gruplarını karşılaştırmanın çok etkili bir yoludur. KeyBERT algoritmasının prensibi oldukça basittir. Örnek bir metne bakalım, o zaman:

  1. Kod, metinden tüm benzersiz kelimeleri çıkaracaktır. Bu adımda, durma sözcükleri genellikle ortadan kaldırılır.
  2. Tüm metnin ve her kelimenin gömülmeleri hesaplanır.
  3. Daha sonra kelimelerden gelen vektörler ile metni bütünüyle temsil eden vektör arasındaki anlamsal uzaklığı hesaplayabiliriz.

Tüm mesafeler hesaplandıktan sonra, metnin genel anlamıyla yakından ilgili kelimeleri çıkarabiliriz: bunlar algoritma tarafından seçilen anahtar kelimeler olacaktır.

Ayrıca, KeyBERT size anahtar kelime öbeklerinin uzunluğunu seçme olanağı verir: aslında ya tekli sözcükleri, ya da çiftleri ve hatta üçlü sözcükleri alabiliriz. Ayrıca kod, sonuçların çeşitliliğini artırmak için “Maksimal Marjinal Uygunluk” (MMR) yöntemini uygulamak için bir yol sağlar. Bu, belgenin içeriğiyle ilgili olabilecek ancak sonuçlarda çok sık bulunan bir terimin tekrarından kaçınmanıza yardımcı olur, örneğin: "caz konseri", "caz müziği", "caz stili" , vb.

Sonuç olarak, spaCy veya yetenek modelleri gibi KeyBERT için diğer NLP modellerini kullanmak da mümkündür.

Bir önceki makalede olduğu gibi, KeyBERT'in John Coltrane'in Impressions albümüyle ilgili aynı makaleden çıkardığı anahtar kelimelere bir örnek:

“coltrane izlenimler”, “müzik dörtlüsü”, “caz hazinesi”, “john konseri”, “inci dizisi”, “graz repertuarı”, “tenor saksafon”

Değerlendirme yöntemleri

​​Bu ve önceki makalede, bir belgeden anahtar kelimeleri çıkarmak için kullanılan birkaç yöntem sunduk: RAKE, Yake, TextRank ve KeyBERT. Ancak, bağlamınıza göre doğru olanı seçebilmek önemlidir.

Bu nedenle, bir yöntemin sonuçlarını diğeriyle karşılaştırmak için değerlendirme yöntemlerine bakmak önemlidir. Anahtar kelimelerin insanlar tarafından tanımlandığı ve doğrulandığı verilerden (document, keywords) bu “ gerçeklik ” ile bir modelin sonuçlarını karşılaştırmak mümkündür. Sınıflandırma problemlerinde sıklıkla kullanılan kesinlik, geri çağırma ve f1-skoru gibi metriklerimiz var. Bu nedenle, model tarafından çıkarılan belirli bir anahtar kelimenin gerçekten alakalı anahtar kelimeler listesinde olup olmadığını bilerek bir karışıklık matrisi oluşturabiliriz.

Modeller bir dizi anahtar kelimeyi çıkarabildiğinden, genellikle ilk k anahtar kelimeyi temel gerçekle karşılaştırırız. Karşılaştırmak istediğimiz anahtar kelime sayısına göre sonuçlar değişebileceğinden, modeli k değerine göre birkaç kez değerlendiriyoruz. Bu metriklere Precision@k adı verilir, bu şu anlama gelir: "Üst k'deki Kesinliği hesaplarım".

[Ebook] Dahili bağlantı şemanız Inrank'i nasıl etkiler?

Dahili bağlantı şemanızın Inrank kullanarak sayfalarınızın göreli önemini nasıl etkilediğini anlamak için Chris Green'in deneylerini izleyin.
Dahili bağlantı şemanız Inrank'i nasıl etkiler?

Kesinlik

Bu, tahmin edilen tüm anahtar kelimeler arasında ilk k'deki doğru anahtar kelimelerin sayısıdır.

Precision calculation

Hatırlamak

Bu, temel gerçeğin toplam anahtar kelimelerinden ilk k'deki doğru anahtar kelimelerin sayısıdır.

Recall calculation

f1-skoru

Bu, önceki iki ölçütün bir kombinasyonudur - veya başka bir deyişle, kesinlik ve geri çağırma arasında uyumlu bir ortalamadır:

F1 score calculation

HARİTA @ k

Ortalama Ortalama Hassasiyet

MAP'yi hesaplamanın ilk adımı, Ortalama Hassasiyeti hesaplamaktır. Model tarafından bulunan tüm anahtar kelimeleri alacağız ve model tarafından bulunan her ilgili anahtar kelime için P@k hesaplayacağız. Örnek olarak, önerilen 5 anahtar kelimeden 3'ü alakalı anahtar kelime ile AP@5 hesaplamak için:

 anahtar kelimeler: caz konseri müzik saksafon radyo
   ilgili: 1 0 1 1 0
   P@k: 1/1 2/3 3/4

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

Burada, alakalı anahtar kelimelerin konumunun önemli olduğunu not ediyoruz. Aslında, beş anahtar kelimeden ilk üçü alakalı değilse (ilgili) AP aynı puana sahip olmayacaktır.

Ardından, her (document, keywords) için, sonunda MAP'yi elde etmek için tüm AP'lerin ortalamasını hesaplayacağız .

Bu farklı metriklerin, sıralama modellerini veya yönlendirme sistemlerini değerlendirmek için de yaygın olarak kullanıldığını unutmayın.

Bu metriklerden bazılarına yönelik küçük bir eleştiri, veri kümesine ve belgeye göre değişebilen ilgili temel gerçek anahtar kelimelerinin sayısıyla ilgilidir.

  • Örneğin, recall@k : puan, temel gerçeğin ilgili anahtar kelimelerinin boyutuna çok bağlı olabilir. En fazla 20 alakalı anahtar kelimeniz varsa, bir recall@10 için bu 20 anahtar kelime setindeki ilk 10 anahtar kelimeyi karşılaştıracaksınız. En iyi durumda, model tarafından önerilen tüm anahtar kelimeler alakalıysa, hatırlama puanı 0,5'i geçmeyecektir.
  • Öte yandan, model tarafından önerilenlere kıyasla ilgili temel doğruluk anahtar kelimelerinin sayısı çok düşükse, iyi precision@k puanları elde edemezsiniz. Beş alakalı temel doğruluk anahtar kelimesi için precision@10 en iyi ihtimalle 0,5 puana sahip olacaktır, ancak daha fazla değil.

Sonuçları değerlendirmek için kullanılan metrikler ne olursa olsun, anahtar kelimelerin daha önce insanlar (metin yazarları, okuyucular, editörler vb.) tarafından tanımlandığı bir veri setine (metin, anahtar kelimeler) sahip olmak gerekir. İngilizce ve farklı konularda: bilimsel makaleler, özetler, haberler, BT, vb. Örneğin, burada yaklaşık yirmi veri kümesini listeleyen Github KeywordExtractor-Datasets deposu.

Kıyaslamalar

Çeşitli değerlendirme yöntemlerinin bu sunumunun ötesinde, size karşılaştırmalı değerlendirmeler öneren bazı araştırma makalelerinin bir “özetini” de sunmak istiyorum .

İlki Yake'yi uygulayan araştırmacılar tarafından! kağıttaki yöntem, “YAKE! Birden çok yerel özellik kullanarak tek bir belgeden anahtar kelime çıkarma“. Yöntemlerini yaklaşık yirmi farklı veri kümesi üzerinde analiz ettiler: En iyi bilinenleri için PubMed, WikiNews, SemEval2010 ve KDD, yukarıda açıklanan metriklerin çoğunu kullanarak: P@k , recall@k , vb. Yake! Rake, Text Rank, vb. dahil olmak üzere yaklaşık on başka yöntemle karşılaştırılacaktır. Mevcut tüm veri kümelerini birleştirerek ve hesaplama hassasiyeti ve geri çağırma ile Yake! yöntem ya daha iyidir ya da son teknoloji yöntemlere çok yakındır. Örneğin, f1@10 için:

veri kümesi Yak! En iyi veya 2.
WikiHaberler 0,450 0,337
KDD 0.156 0.115
İncele 0.316 0,378

Yak! genellikle %50-100'e kadar daha iyidir, bu da önde gelen yönteme yakındır.

Daha yakın tarihli bir başka makalede “TNT-KID: Anahtar kelime tanımlama için Transformer tabanlı nöral etiketleyici” de geleneksel ve Transformer tabanlı yöntemleri karşılaştırıyoruz. Transformers kullanarak çıkarma yöntemleri daha iyi performans gösterir. Yine de dikkatli olun, çünkü bunlar Rake, KeyBERT ve Yake'den farklı olarak sözde "denetimli" yöntemlerdir ve sonuç üretmek için bir veri gövdesi üzerinde eğitilmeleri gerekmez.

Son olarak, diğer iki kritere bir göz atalım:

  • Cümle Gömmelerini kullanan Basit Denetimsiz Anahtar Sözcük Çıkarımı, sözcük yerleştirmelerini kullanır ve Inspec ve DUC gibi veri kümelerinde TextRank ile karşılaştırıldığında iyi performans gösterir.
  • 7 algoritmayı karşılaştıran bir blog yazısı (Python'da): Anahtar Kelime Çıkarma — Python'da 7 Algoritmanın Kıyaslaması. Yazar, performansı KeyBERT, RAKE, Yake yöntemlerinin yanı sıra her yöntemin çıkarabileceği ilgili kelime sayısı arasındaki hesaplama süresi açısından karşılaştırır.

Çözüm

Bu iki makale boyunca gördüğünüz gibi, bir metinden alakalı anahtar kelimeleri çıkarmanın gerçekten çok sayıda farklı yolu vardır. Farklı kıyaslamalara baktığınızda, metrikler açısından diğerlerini gerçekten aşan bir ölçüt olmadığını fark etmişsinizdir. Metne ve içeriğe bağlı olacaktır. Ayrıca, 7 çıkarma algoritmasıyla ilgili blog makalesinin yazarının da belirttiği gibi, uzun bir metinle karşılaştığımızda bir algoritmanın işlem süresine de güvenebiliriz.

Bu sefer, bir algoritmayı harekete geçirmek ve yüz binlerce belgeyi işlemek söz konusu olduğunda kesinlikle bir faktör olacaktır. KeyBERT söz konusu olduğunda, işlem süresini önemli ölçüde artırmak için GPU'lu bir altyapı düşünmelisiniz. Aslında bu yöntem, çok fazla bilgi işlem gerektiren Derin Öğrenme mimarisine sahip Transformatörlere dayanır.

Bir seçim yapmam gerekse kesinlikle KeyBERT ve Yake arasında olurdum. Birincisi transformatörler ve anlamsal yön için, ikincisi verimliliği ve yürütme hızı için.

Bibliyografik referanslar

  • Dikkat, ihtiyacınız olan tek şey, 2017
  • BERT: Dil Anlama için Derin Çift Yönlü Transformatörlerin Ön Eğitimi, 2019
  • Kendi Kendini Etiketleme ile Kendinden Denetimli Bağlamsal Anahtar Kelime ve Anahtar Kelime Alma. Sharma P. ve Li Y. (2019)
  • Farklı Anahtar Kelime Çıkarıcıları Keşfetmek — Değerlendirme Metrikleri ve Stratejileri