W tym artykule zaprezentujemy prosty system do analizy satysfakcji klientów, oparty na ekspolaracji recenzji. Jego celem jest automatyczna analiza opinii wystawianych przez odwiedzających a następnie generowanie raportów oraz wizualizacja.
Jak zmierzyć zadowolenie klienta przez analizę sentymentu
Rozwój technik uczenia maszynowego, które pozawają na „rozumienie” języka naturalnego nie tylko pozwala na przetwarzanie tysięcy czy milionów recenzji w sekundy. Recenzje, w przeciwieństwie do np ankiet, które wpływają na repondenta poprzez pytania i sposób, w jaki je stawiamy, są bardzo autentycznym źródłem informacji. Możliwość wykrycia tematów które klienci poruszają w swoich komentarzach, zyskujemy unikalne spojrzenie na to jak konsumenci widza nasz produkt/usługę. Wraz ze wzrostem popularności stron z recenzjami, staje się to źródłem marketingowej czy biznesowej wiedzy, której nie można nie docenić.
Case study
Aktualnie w internecie można umieścić opinie niemalże o wszystkim - lokalnym sklepie spożywczym, fryzjerze, marce papierosów czy wakacyjnej destynacji. Na potrzeby naszego studium przypadku użyjemy zbioru danych recenzji hoteli.
Wstęp do analizy
Przed rozpoczęciem pracy zapoznajmy się wybiórczo z elementami analizowanego tekstu. Przede wszystkim, w porównaniu do tekstu w postaci recenzji lub artykułu teksty są krótkie oraz możemy spodziewać się w nich “szumu” w postaci na przykład błędów ortograficznych. Przygotowanie pipeline do analizy rozpoczynamy od oczyszczenia danych. Stosujemy typowy mechanizm: usunięcie znaków interpunkcyjnych i specjalnych, zmiana wszystkich dużych liter na małe oraz wyrzucenie stopwords.
Sentyment
Tak przygotowany tekst zamieniany na features za pomocą tf-idfa. Odrzucamy przy tym słowa pojawiające się co najwyżej dwa razy w celu redukcji wymiarowości problemu. Tak przygotowane dane użyte zostały do wytrenowania klasyfikatora opartego o SVC. Dostrojenie wybranych parametrów wykonane zostało za pomocą metody opartej o regularną siatkę parametrów. Osiągnięto dzięki temu accuracy na poziomie 86% na danych testowych. Dane testowe pochodzą z tego samego zbioru co dane uczące, jednak nie zostały użyte w procesie uczenia klasyfikatora.
Sentyment może być wskaźnikiem ogólnego zadowolenia konsumentów, żeby jednak wyciągać właściwe wnioski z jego wartości, potrzebujemy punktu odniesienia. Jeśli użyjemy do reprezentacji szeregu czasowego, możemy śledzić zmiany naszego wskaźnika w czasie
Po dokonaniu analizy sentymentu skupiliśmy się na analizie treści wystawianych opinii. W tym przypadku pracujemy już na innym zbiorze danych, który to dotyczy jednego wybranego hotelu. Zrobiliśmy to na trzy sposoby: stworzyliśmy chmurę tagów, generator streszczeń oraz ekstraktor tematów.
Chmura tagów
W pierwszym kroku wykorzystaliśmy stworzony pipeline do preprocesowania tekstu z nowego zbioru a następnie za pomocą wytrenowanego klasyfikatora podzieliliśmy je na pozytywne i negatywne. Dla każdej z grup stworzyliśmy chmury tagów.
Co klienci oceniali pozytywnie
A co negatywnie
Jak widać, najczęściej podróżni narzekają na łazienki oraz śniadanie a takżę budowę ktora zapewne ma miejsce w okolicy. Chwalą za to lokalizację oraz obsługę hotelu.
W drugiej części analizy stworzyliśmy algorytm, który spośród komentarzy zaklasyfikowanych do danej kategorii wybiera te niosące najwięcej treści. Wykorzystana została do tego reprezentacja w postaci macierzy tf-idf. Każdy komentarz dostał ocenę równą sumie wartości tf-idf słów w nim zawartych podzieloną przez ilość słów. Dzięki temu stworzyliśmy miarę “gęstości informacji” zawartej w komentarzu. Bazując na tej ocenie możemy wybrać z około 400 komentarzy kilka najbardziej interesujących.
Ekstrakcja tematów
W ostatnim kroku znaleźliśmy tematy poruszane w komentarzach za pomocą kolejnej metody - Non-Negative Matrix Factorization.
Dla każdej z grup przedstawiono słowa kluczowe najlepiej opisujące dany temat. Oczywiście w przeciwieństwie do klasteryzacji jedna opinia może mieć więcej niż jeden temat. Poniżej przedstawiono słowa kluczowe opisujące tematy ocenione jako pozytywne.
Topic 0:
room bed hotel comfy comfortable clean building park big modern
Topic 1:
positive wouldn fault experience extra extremely fab fabulous facility fact
Topic 2:
helpful staff breakfast bar extremely restaurant kind hotel food decor
Topic 3:
location park hotel building room staff centre tram view outside
Widzimy, że użytkownicy chwalą: pokoje, personel i restaurację oraz lokalizację. Grupa pierwsza składa się z ogólnych pochwał. Sprawdźmy więc jak rozkładają się tematy pośród komentarzy.
Jak widzimy, najwięcej pochwał otrzymują pracownicy i restauracja. Drugą liczną grupę stanowią ogólne pochwały.
Podsumowanie
Podsumowując, we wpisie tym pokazaliśmy użycie NLP w celu automatyzacji działania systemu zbierania opinii klientów. Potrafimy znaleźć sentyment a następnie zwizualizować opinie, wybrać najciekawsze oraz wyznaczyć tematykę komentarzy. System ten można rozszerzyć na przykład poprzez uwzględnienie daty wystawienia opinii.