Analiza nastrojów: intuicja za analizą nastrojów w 2022 r.
Opublikowany: 2021-01-02Spis treści
Wstęp
Tekst jest dla człowieka najważniejszym środkiem odbierania informacji. Większość inteligencji zdobywanej przez ludzi to uczenie się i rozumienie znaczenia tekstów i zdań wokół nich. Po pewnym wieku ludzie rozwijają wewnętrzny odruch, aby zrozumieć wnioskowanie dowolnego słowa/tekstu, nawet nie wiedząc.
W przypadku maszyn to zadanie jest zupełnie inne. Aby przyswoić znaczenia tekstów i zdań, maszyny opierają się na podstawach przetwarzania języka naturalnego (NLP). Głębokie uczenie do przetwarzania języka naturalnego to rozpoznawanie wzorców stosowane do słów, zdań i akapitów, podobnie jak widzenie komputerowe jest rozpoznawaniem wzorców stosowanym do pikseli obrazu.
Żaden z tych modeli głębokiego uczenia się naprawdę nie rozumie tekstu w ludzkim sensie; modele te mogą raczej odwzorować strukturę statystyczną języka pisanego, co wystarcza do rozwiązania wielu prostych zadań tekstowych. Jednym z takich zadań jest analiza sentymentu, na przykład: klasyfikowanie sentymentu napisów lub recenzji filmów jako pozytywne lub negatywne.
Mają one również zastosowanie w przemyśle na dużą skalę. Na przykład: firma zajmująca się towarami i usługami chciałaby zebrać dane o liczbie pozytywnych i negatywnych recenzji, które otrzymała dla danego produktu, aby pracować nad cyklem życia produktu i poprawić wyniki sprzedaży oraz zebrać opinie klientów.
Ucz się online kursu uczenia maszynowego z najlepszych uniwersytetów na świecie. Zdobywaj programy Masters, Executive PGP lub Advanced Certificate Programy, aby przyspieszyć swoją karierę.
Przeczytaj: Pomysły na projekty uczenia maszynowego

Przetwarzanie wstępne
Zadanie analizy sentymentu można podzielić na prosty nadzorowany algorytm uczenia maszynowego, w którym zwykle mamy wejście X , które przechodzi do funkcji predykcyjnej, aby uzyskać Następnie porównujemy nasze przewidywanie z prawdziwą wartością Y . Daje nam to koszt, którego następnie używamy do aktualizacji parametrów Aby poradzić sobie z zadaniem wyodrębnienia sentymentów z wcześniej niewidzianego strumienia tekstów, podstawowym krokiem jest zebranie oznakowanego zestawu danych z oddzielnymi sentymentami pozytywnymi i negatywnymi. Tymi opiniami mogą być: dobra recenzja lub zła recenzja, sarkastyczna uwaga lub niesarkastyczna uwaga itp.
Następnym krokiem jest utworzenie wektora wymiaru V , gdzie Ten wektor słownictwa będzie zawierał każde słowo (żadne słowo się nie powtarza) obecne w naszym zbiorze danych i będzie działać jako leksykon dla naszej maszyny, do której może się odwoływać. Teraz wstępnie przetwarzamy wektor słownictwa, aby usunąć nadmiarowość. Wykonywane są następujące kroki:
- Eliminowanie adresów URL i innych nietrywialnych informacji (co nie pomaga w określeniu znaczenia zdania)
- Tokenizacja ciągu na słowa: załóżmy, że mamy ciąg „Uwielbiam uczenie maszynowe”, teraz poprzez tokenizację po prostu dzielimy zdanie na pojedyncze słowa i przechowujemy je na liście jako [I, love, machine, learning]
- Usuwanie słów stop, takich jak „i”, „jestem”, „lub”, „ja” itp.
- Pytanie: przekształcamy każde słowo w jego formę rdzenia. Słowa takie jak „dostrojenie”, „dostrojenie” i „dostrojenie” mają semantycznie to samo znaczenie, więc sprowadzenie ich do formy rdzenia, czyli „tun”, zmniejszy rozmiar słownictwa
- Konwersja wszystkich słów na małe litery
Aby podsumować etap przetwarzania wstępnego, spójrzmy na przykład: powiedzmy, że mamy pozytywny ciąg „Kocham nowy produkt na upGrad.com” . Końcowy wstępnie przetworzony ciąg jest uzyskiwany przez usunięcie adresu URL, tokenizację zdania na pojedynczą listę słów, usunięcie słów stop, takich jak „ja, jestem, the, at”, a następnie podzielenie słów „kocham” na „kocham” i „produkt” na „produ” i ostatecznie konwertując wszystko na małe litery, co daje w wyniku listę [lov, new, produ] .
Ekstrakcja funkcji
Po wstępnym przetworzeniu korpusu następnym krokiem byłoby wyodrębnienie cech z listy zdań. Podobnie jak wszystkie inne sieci neuronowe, modele uczenia głębokiego nie przyjmują jako wejściowego nieprzetworzonego tekstu: działają tylko z tensorami numerycznymi.

Wstępnie przetworzona lista słów musi zatem zostać przekonwertowana na wartości liczbowe. Można to zrobić w następujący sposób. Załóżmy, że podaliśmy kompilację ciągów z ciągami dodatnimi i ujemnymi, takimi jak (przyjmijmy to jako zbiór danych) :
Dodatnie ciągi | Negatywne struny |
|
|
Teraz, aby przekonwertować każdy z tych ciągów na wektor numeryczny o wymiarze 3, tworzymy słownik, aby odwzorować słowo i klasę, w której się pojawiło (dodatnią lub ujemną) na liczbę wystąpień tego słowa w odpowiadającej mu klasie.
Słownictwo | Dodatnia częstotliwość | Ujemna częstotliwość |
i | 3 | 3 |
jestem | 3 | 3 |
szczęśliwy | 2 | 0 |
dlatego | 1 | 0 |
uczenie się | 1 | 1 |
NLP | 1 | 1 |
smutny | 0 | 2 |
nie | 0 | 1 |
Po wygenerowaniu w/w słownika patrzymy na każdy z ciągów z osobna, a następnie sumujemy liczbę dodatnią i ujemną częstości występowania słów występujących w ciągu pozostawiając słowa, które w ciągu nie występują. Weźmy ciąg „Jestem smutny, nie uczę się NLP” i wygenerujmy wektor wymiaru 3.
„Jestem smutny, nie uczę się NLP”
Słownictwo | Dodatnia częstotliwość | Ujemna częstotliwość |
i | 3 | 3 |
jestem | 3 | 3 |
szczęśliwy | 2 | 0 |
dlatego | 1 | 0 |
uczenie się | 1 | 1 |
NLP | 1 | 1 |
smutny | 0 | 2 |
nie | 0 | 1 |
Suma = 8 | Suma = 11 |
Widzimy, że dla ciągu „jest mi smutno, nie uczę się NLP” tylko dwa słowa „szczęśliwy, bo” nie są zawarte w słowniku, teraz aby wyodrębnić cechy i stworzyć wspomniany wektor, sumujemy częstotliwość dodatnią i ujemną kolumny osobno pomijając numer częstotliwości słów, które nie występują w ciągu, w tym przypadku zostawiamy „szczęśliwy, ponieważ”. Otrzymujemy sumę jako 8 dla częstotliwości dodatniej i 9 dla częstotliwości ujemnej.

Stąd ciąg „Jestem smutny, nie uczę się NLP” można przedstawić jako wektor Liczba „1” obecna w indeksie 0 jest jednostką odchylenia, która pozostanie „1” dla wszystkich przyszłych ciągów, a liczby „8”, „11” reprezentują odpowiednio sumę częstotliwości dodatnich i ujemnych.
W podobny sposób wszystkie łańcuchy w zbiorze danych można wygodnie przekonwertować na wektor o wymiarze 3.
Przeczytaj także: Wyjaśnienie modeli uczenia maszynowego
Stosowanie regresji logistycznej
Wyodrębnianie cech ułatwia zrozumienie istoty zdania, ale maszyny nadal potrzebują bardziej wyrazistego sposobu oznaczania niewidocznego ciągu jako dodatniego lub ujemnego. Tutaj w grę wchodzi regresja logistyczna, która wykorzystuje funkcję sigmoidalną, która wyprowadza prawdopodobieństwo od 0 do 1 dla każdego zwektoryzowanego łańcucha.
Końcowe przemyślenia
Ponadto, jeśli chcesz dowiedzieć się więcej o uczeniu maszynowym, sprawdź program PG dla kadry kierowniczej IIIT-B i upGrad w uczeniu maszynowym i sztucznej inteligencji, który jest przeznaczony dla pracujących profesjonalistów i oferuje ponad 450 godzin rygorystycznego szkolenia, ponad 30 studiów przypadków i zadań , status absolwentów IIIT-B, ponad 5 praktycznych praktycznych projektów zwieńczenia i pomoc w pracy z najlepszymi firmami.