6

NLP'de, özelliklerin boyutunun çok büyük olması her zaman geçerlidir. Örneğin, eldeki bir proje için, özelliklerin boyutu neredeyse 20 bindir (p = 20,000) ve her bir özellik, belirli bir kelime veya bi gramın bir kağıda sunulup sunulmadığını göstermek için 0-1 tamsayıdır (bir kağıt bir veri noktası $ x \ R^{p} $).Doğal dil işlemede (NLP), etkili bir boyut küçültme nasıl yapılır?

Özelliklerin arasında fazlalık olduğunu biliyorum, bu nedenle boyut küçültme gerekli. Üç sorum var:

1) 10 bin veri noktam var (n = 10.000) ve her veri noktası 10 bin özelliğe sahip (p = 10.000). Boyut küçültmeyi gerçekleştirmenin etkili yolu nedir? R^{n \ times p} $ cinsinden $ X \ matrisi, hem PCA'nın (hem de SVD'nin kesilmiş SVD'sinin tamam olduğunu, ancak SVD'nin ikili özellikler için büyüklükleri azaltmanın iyi bir yolu olduğunu sanmıyorum) ve Çanta için çok büyüktür. Kelimeler (veya K-anlamına gelir) doğrudan doğruya $ X $ üzerinden gerçekleştirilebilir (Elbette, seyrek). Bir sunucum yok, sadece bilgisayarımı kullanıyorum :-(.

2) İki veri noktası arasındaki benzerlik veya uzaklık nasıl değerlendirilir? Öklid mesafesinin ikili özellikler için iyi çalışmayabileceğini düşünüyorum. L0 normuna ne dersin? Ne kullaniyorsun?

3) Sınıflandırma yapmak için SVM makinesini (veya diğer çekirdek yöntemlerini) kullanmak istersem, hangi çekirdeği kullanmalıyım?

Çok teşekkürler!

+3

bu toplum için iyi bir soru gibi görünüyor http://stats.stackexchange.com/:

burada piton böyle sınıflandırma yapmak için nasıl bir iyi dersler var – Leo

cevap

2

1) Boyutsal küçültmeye ihtiyacınız yoktur. Gerçekten istiyorsanız, en yararlı özelliklere indirmek için bir L1 cezalandırılmış doğrusal sınıflandırıcı kullanabilirsiniz. 2) Kosinüs benzerliği sıklıkla, TFIDF ile yeniden boyutlandırılmış vektörlerin kosinüs benzerliği veya sıklığı kullanılır.

3) Doğrusal SVM'ler bu kadar çok özellik ile en iyi şekilde çalışır. http://scikit-learn.org/dev/tutorial/text_analytics/working_with_text_data.html