W NLP zawsze jest tak, że rozmiar funkcji jest bardzo duży. Na przykład dla jednego projektu pod ręką wymiar funkcji wynosi prawie 20 tysięcy (p = 20 000), a każda funkcja jest liczbą całkowitą 0-1, aby pokazać, czy określone słowo lub dwumek jest przedstawione w dokumencie (jeden artykuł jest punktem danych $ x \ in R^{p} $).W przetwarzaniu języka naturalnego (NLP), jak skutecznie zmniejszyć wymiary?
Wiem, że redundancja między funkcjami jest ogromna, więc konieczne jest zmniejszenie wymiarów. Mam trzy pytania:
1) Mam 10 tysięcy punktów danych (n = 10 000), a każdy punkt danych ma 10 tysięcy funkcji (p = 10 000). Jaki jest skuteczny sposób przeprowadzenia redukcji wymiarów? Macierz $ X \ in R^{n \ times p} $ jest tak duża, że zarówno PCA (lub SVD, okrojona SVD jest w porządku, ale nie sądzę, że SVD jest dobrym sposobem na zmniejszenie wymiaru dla funkcji binarnych) i Torba słów (lub K-średnich) jest trudne do przeprowadzenia bezpośrednio na X $ (Oczywiście, jest skąpe). Nie mam serwera, po prostu używam mojego komputera :-(.
2) Jak ocenić podobieństwo lub odległość między dwoma punktami danych? Myślę, że odległość euklidesowa może nie działać dobrze dla funkcji binarnych. Co powiesz na normę L0? Czego używasz?
3) Jeśli chcę użyć maszyny SVM (lub innych metod jądra) do przeprowadzenia klasyfikacji, którego jądra powinienem użyć?
Wielkie dzięki!
wygląda dobre pytanie dla tej społeczności http://stats.stackexchange.com/ – Leo