Analiza nastrojów: intuicja za analizą nastrojów w 2022 r.

Opublikowany: 2021-01-02

Spis 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:

  1. Eliminowanie adresów URL i innych nietrywialnych informacji (co nie pomaga w określeniu znaczenia zdania)
  2. 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]
  3. Usuwanie słów stop, takich jak „i”, „jestem”, „lub”, „ja” itp.
  4. 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
  5. 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
  • Cieszę się, bo uczę się NLP
  • jestem szczęśliwy
  • jest mi smutno, nie uczę się NLP
  • jestem smutna

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.

Poprowadź rewolucję technologiczną napędzaną sztuczną inteligencją

Złóż wniosek o zaawansowany program certyfikacji w zakresie uczenia maszynowego i głębokiego uczenia się z IIITB