Odnośnie użycia modelu Bigram (N-gram) do budowy wektora cech dla dokumentu tekstowego

10

Tradycyjne podejście do konstruowania obiektów do eksploracji tekstu jest oparte na zasadzie work-of-words i można je ulepszyć za pomocą tf-idf do konfigurowania wektora cech charakteryzującego dany dokument tekstowy. Obecnie próbuję użyć bi-gramowego modelu językowego lub (N-gram) do budowy wektora cech, ale nie bardzo wiesz, jak to zrobić? Czy możemy postępować zgodnie z podejściem work-of-words, tj. Obliczać liczbę częstotliwości w kategoriach bi-gram zamiast słów i ulepszać ją za pomocą schematu ważenia tf-idf?

użytkownik3125
źródło

Odpowiedzi:

4

Tak. Spowoduje to jednak wygenerowanie wielu innych funkcji: może być ważne zastosowanie pewnej wartości odcięcia (na przykład funkcji odrzucania, takich jak bi-gram lub słowa, które występują mniej niż 5 razy w zbiorze danych), aby nie zagłuszyć klasyfikatora zbyt dużą ilością hałasu funkcje.

ogrisel
źródło
Dzięki. Czy masz na myśli, że mój ogólny pomysł na obliczanie każdej wartości funkcji w kategoriach bigramu (N-gram) jest poprawny? Innymi słowy, nie ma dużej różnicy w obliczaniu wartości cech między workiem słów a modelem N-gram. Dziękuję za wyjaśnienie.
user3125
Tak, możesz używać zarówno wszystkich bigramów, jak i unigramów (słów) w dużej torbie funkcji (o ile przycinasz najmniej często z pewnym poziomem odcięcia).
ogrisel
3

Liczbę bigramów można zmniejszyć, wybierając tylko te z pozytywną wzajemną informacją.

Zrobiliśmy to, aby wygenerować torbę reprezentacji Bigrams na ścieżce INEX XML Mining, http://www.inex.otago.ac.nz/tracks/wiki-mine/wiki-mine.asp .

To, czego nie próbowaliśmy, to wykorzystanie wzajemnej informacji między warunkami do ważenia bi-gramów. Zobacz https://en.wikipedia.org/wiki/Pointwise_mutual_information , https://www.eecis.udel.edu/~trnka/CISC889-11S/lectures/philip-pmi.pdf i http: //www.nltk. org / howto / collocations.html dla lepszego wyjaśnienia punktowej wzajemnej informacji dla bigrams.

Zobacz /programming/20018730/computing-pointwise-mutual-information-of-a-text-document-using-python i /programming/22118350/python-sentiment-analysis -korzystanie-punkt-wzajemna-informacja dla innych pytań z tym związanych.

Chris de Vries
źródło
martwy link :-( ...
Renaud
1
@Renaud Links zostały zaktualizowane :-)
Chris de Vries
0

Wykorzystanie losowych rzutów w celu zmniejszenia wymiarów danych może okazać się przydatne w celu zmniejszenia przestrzeni wymaganej do przechowywania funkcji, https://en.wikipedia.org/wiki/Random_projection . Skaluje się bardzo dobrze i każdy przykład może być rzutowany do przestrzeni o niższych wymiarach niezależnie i bez żadnych bezpośrednich metod optymalizacji, takich jak PCA, SVD, Sammon Maps, NMF itp.

Chris de Vries
źródło