Klasyfikacja recenzji filmowych. Porównanie sieci rekurencyjnych


Klasyfikator binarny do oceny czy dana recenzja filmu jest pozytywna czy negatywna. Działa w oparciu o sieci rekurencyjne, których w celu lepszej demonstracji stworzyłem trzy różne warianty.


Program zaczyna swoje działanie od wektoryzacji tekstu, ponieważ nie możemy tak po prostu wstawić danych tekstowych do sieci. Muszą one zostać najpierw przetworzone na ciąg liczb. Korzysta w tym celu z biblioteki Keras.

W programie zostało użyte kodowanie one-hot, które polega na zakodowaniu każdego słowa jako liczby całkowitej. Dla każdego z 10 tysięcy słów najczęściej pojawiających się w języku angielskim została przypisana liczba tym większa im rzadziej pojawia się ono w przykładach ze zbioru testowego.

Dla lepszego zobrazowania działania sieci rekurencyjnych, stworzyłem trzy modele sieci o identycznej strukturze z wyjątkiem zastosowanych komórek rekurencyjnych. Pierwszy z nich używa neuronów SRU, co jest skrótem od Simple Recurrent Unit. W drugiej zastosowałem zaprojektowane specjalnie pod kątem przetwarzania tekstu komórki LSTM (long short-term memory). Trzeci z kolei model opiera swoje działanie o komórki GRU (Gated Recurrent Unit).

Kod programu na GitHub: https://github.com/PsorTheDoctor/Sekcja-SI/blob/master/neural_networks/RNN/review_classifier.ipynb

Komentarze