İlk anahtar kelimelere dayalı olarak alakalı kelimelerin listesi nasıl büyütülür?


19

Kısa bir süre önce Google E-Tablolar'da sunulan harika bir özellik gördüm : ardışık hücrelere birkaç alakalı anahtar kelime yazarak başlayın, "mavi", "yeşil", "sarı" deyin ve otomatik olarak benzer anahtar kelimeler (bu durumda) oluşturur , diğer renkler). Bu YouTube videosunda daha fazla örneğe bakın .

Bunu kendi programımda çoğaltmak istiyorum. Freebase'i kullanmayı düşünüyorum ve sezgisel olarak şöyle çalışır:

  1. Freebase'de verilen kelimelerin listesini alın;
  2. "Ortak payda" larını bulun ve buna dayalı bir mesafe metriği oluşturun;
  3. Diğer kavramları orijinal anahtar kelimelere "mesafelerine" göre sıralayın;
  4. Bir sonraki en yakın kavramları görüntüler.

Bu bölgeye aşina olmadığım için sorularım:

  • Bunu yapmanın daha iyi bir yolu var mı?
  • Her adım için hangi araçlar mevcuttur?

Tahminimce bu, büyük bir gruptaki öğrenme konularına dayanıyor.
tchakravarty

Açıklamasını bulmak istiyorsanız, Google Sets adlı temel yöntemle ilgili bir makale olduğuna inanıyorum.
jamesmf

1
Bu soruna "sorgu genişletme" denir.
Emre

Yanıtlar:


15

Word2vec algoritma benzer kelimelerin listesi için daha fazla eleman almak için iyi bir yol olabilir. Daha önce Wikipedia tabanlı eğitim verileriyle gösterilen, denetlenmemiş bir "derin öğrenme" algoritmasıdır (yardımcı komut dosyaları Google kod sayfasında sağlanır).

Şu anda C ve Python uygulamaları var. Bu öğretici tarafından Radim Řehůřek , yazarı Gensim konu modelleme kütüphanesine , başlamak için mükemmel bir yerdir.

Eğiticideki "tek konu" gösterimi, benzer kelimeleri tek bir terime geri almaya iyi bir örnektir ('kırmızı' veya 'sarı' kelimeyi aramayı deneyin). Bir dizi girdi kelimesine genel olarak en büyük benzerliği olan kelimeleri bulmak için bu tekniği genişletmek mümkün olmalıdır.


5

Korpora'da basit kelime bir arada bulunmasından faydalanan frekans tabanlı bir yaklaşım düşündünüz mü? En azından, çoğu insanın bunun için kullandığını gördüm. Sanırım Manning ve Schütze'nin kitabında kısaca ele alınabilir ve böyle bir şeyi grad okulunda ödev olarak hatırlıyorum ...

Burada daha fazla arka plan: http://nlp.stanford.edu/IR-book/html/htmledition/automatic-thesaurus-generation-1.html

Bu adım için:

Diğer kavramları orijinal anahtar kelimelere "mesafelerine" göre sıralayın;

Bakabileceğiniz birkaç anlamsal benzerlik metriği vardır. : İşte WordNet bu benzerlik ölçütlerinin birkaç kullanarak bir sınıf projesi için bir araya koymak biraz resme bir bağlantı var http://www.eecis.udel.edu/~trnka/CISC889-11S/lectures/greenbacker-WordNet-Similarity. pdf


3

Bu, kapsamın bir ev ödevinden bir Google boyutu projesine değişebileceği hoş bir sorundur.

Gerçekten, kelimelerin birlikte ortaya çıkmasıyla başlayabilirsiniz (örneğin, koşullu olasılık). Çok popüler oldukları için, kelimelerin çoğuyla ilişkili olarak durdurma kelimelerinin listesini aldığını hızlı bir şekilde keşfedeceksiniz . Koşullu olasılığın yükselişini kullanmak durma kelimelerini dikkate alacak, ancak ilişkiyi az sayıda hataya eğilimli hale getirecektir (vakalarınızın çoğu). Jacard'ı deneyebilirsiniz, ancak simetrik olduğu için bulamayacağı birçok ilişki olacaktır.

O zaman temel kelimeden sadece kısa mesafede ortaya çıkan ilişkileri düşünebilirsiniz. İlişkilerin genel topluluk (örn. Wikipedia) ve kullanıcıya özgü (ör. E-postaları) temelini düşünebilir (ve düşünmelisiniz).

Çok kısa zamanda, tüm önlemler iyi olduğunda ve diğerlerine göre bazı avantajlara sahip olduğunuzda, çok sayıda ilişkili önleminiz olacaktır.

Bu tür önlemleri birleştirmek için, sorunu bir sınıflandırma problemine indirmeyi seviyorum.

Kelimelerin paris veri kümesini oluşturmalı ve bunları "ilişkili" olarak etiketlemelisiniz. Büyük bir etiketlenmiş veri kümesi oluşturmak için şunları yapabilirsiniz:

  • Pozitif değerler için bilinen ilgili kelimelerin kaynaklarını (ör. Eski eski Wikipedia kategorileri) kullanın
  • İlişkili olarak bilinmeyen kelimelerin çoğu birbiriyle ilişkili değildir.

Ardından, sahip olduğunuz tüm önlemleri çiftlerin özellikleri olarak kullanın. Şimdi denetimli sınıflandırma problemi alanındasınız. Veri kümesinde bir sınıflandırıcı oluşturun, ihtiyaçlarınıza göre değerlendirin ve ihtiyaçlarınıza uygun bir benzerlik ölçüsü alın.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.