2013-04-10 8 views
5

Pracuję nad problemem klasyfikacji tekstu za pomocą klasyfikatorów scikit-learn i ekstraktor funkcji tekstu, szczególnie klasy TfidfVectorizer.Jak przedłużyć Scipy Sparse Matrix zwrócone przez Sklearn TfIdfVectorizer do przechowywania więcej funkcji

Problem polega na tym, że mam dwa rodzaje funkcji, pierwsze są przechwytywane przez n-gramy uzyskane z TfidfVectorizer, a drugie są specyficzne dla domeny funkcje, które wydobywam z każdego dokumentu. Muszę połączyć obie funkcje w jednym wektorze funkcji dla każdego dokumentu; Aby to zrobić, muszę zaktualizować rzadką macierz scipy zwróconą przez TfidfVectorizer, dodając nowy wymiar w każdym wierszu z funkcją domeny dla tego dokumentu. Jednak nie mogę znaleźć na to sposobu, by schludnie to zrobić, to znaczy nie zamieniać rzadkiej matrycy w gęstą, ponieważ po prostu nie zmieści się w pamięci.

Prawdopodobnie brakuje mi funkcji w nauce scikit lub czegoś podobnego, ponieważ jestem początkującym uczniem zarówno scipy, jak i scikit.

Odpowiedz

5

Myślę, że najłatwiej byłoby utworzyć nową rzadką macierz z własnymi funkcjami, a następnie użyć scipy.sparse.hstack, aby rozmieścić funkcje. Możesz również odszukać "ElementUnion" z modułu potoku.

+0

Nie znalazłem "FeatureStacker", masz na myśli "FeatureUnion"? – iBrAaAa

+0

Przepraszam, tak, właśnie o to mi chodziło. –

+0

FeatureUnion działało, dziękuję! – iBrAaAa

Powiązane problemy