Analiza języka naturalnego

28
NLP w praktyce Applica Sp. z o.o., ul. Wiślana 8, 00-317 Warszawa, Tel. +48 22 486 31 56, Fax. +48 22 486 31 92 www.applica.pl Spotkanie Data Science Warsaw

Transcript of Analiza języka naturalnego

Page 1: Analiza języka naturalnego

NLP w praktyce

Applica Sp. z o.o., ul. Wiślana 8, 00-317 Warszawa, Tel. +48 22 486 31 56, Fax. +48 22 486 31 92 www.applica.pl

Spotkanie Data Science Warsaw

Page 2: Analiza języka naturalnego

Agenda spotkania

www.applica.pl

Wstęp do NLP • Kilka słów o procesie przetwarzania języka • Jakie narzędzia ma do dyspozycji Data Scientist, który zajmuje się przetwarzaniem języka

Najbardziej popularne zastosowania praktyczne NLP • Klasyfikacja dokumentów i ekstrakcja informacji – jak sobie poradzić gdy dostajesz kilka tysięcy

wiadomości dziennie? • Moderacja treści – czy NLP może pomóc w walce z hejtem w Internecie? • Głęboki wydźwięk – czy jesteśmy w stanie nauczyć komputer rozpoznawać ironię?

Page 3: Analiza języka naturalnego

O Applica

www.applica.pl

Applica automatyzuje procesy związane z analizą semantyczną i przetwarzaniem danych tekstowych w języku polskim. Produkty Applica zastępują człowieka w realizacji zadań wymagających analizy dużych wolumenów danych, krótkich czasów reakcji czy też powtarzalności uzyskiwanych wyników. Dzięki wykorzystaniu unikalnych algorytmów z domeny lingwistyki komputerowej trafność oraz zakres oferowanych przez Applica analiz semantycznych znacznie przewyższa jakoś obecnych na rynku rozwiązań konkurencyjnych.

• Natywne wsparcie języka polskiego wraz z polską fleksją, strukturą składniową oraz specyficznymi fenomenami językowymi

• Algorytmy do analizy składniowej wypracowane w oparciu o wyniki badań Instytutu Podstaw Informatyki PAN

• Własne, zaawansowane algorytmy z zakresu analizy semantycznej • Zespół złożony z pracowników naukowych PAN • Partnerstwo z firmami IBM i Oracle w zakresie analizy języka naturalnego

Page 4: Analiza języka naturalnego

Proces przetwarzania języka

www.applica.pl

Page 5: Analiza języka naturalnego

Proces przetwarzania języka naturalnego

www.applica.pl

W odróżnieniu od produktów firm konkurencyjnych działających na polskim rynku, które do przetwarzania języka wykorzystują metody czysto statystyczne („worek słów”), rozwiązanie Applica stosuje zaawansowane metody lingwistyczne w pełnym procesie analizy morfologicznej i płytkiej analizie syntaktycznej tekstu Tekst źródłowy poddawany jest segmentacji, najmniejsze jednostki składowe analizowane są pod kątem morfologicznym, następnie

ujednoznaczniane i sprowadzane do form podstawowych. Powierzchniowa analiza syntaktyczna pozwala na wyróżnienie nie tylko pojedynczych słów, lecz również bardziej złożonych konstrukcji językowych. Proces analizy semantycznej tekstu odbywa się zarówno na poziomie wyodrębnionych segmentów, bardziej złożonych konstrukcji

językowych, jak i zdań. Na każdym z poziomów wykonywana jest głęboka analiza wydźwięku, w wyniku której oznaczana jest zawartość emocjonalna tekstu. Przy oznaczaniu brana jest pod uwagę złożoność polskiej gramatyki: takie fenomeny językowe jak np. wykorzystanie podwójnego zaprzeczenia, zdań przeciwstawnych, powtórzeń itp. W ramach analizy semantycznej tekstu wykonywana jest także kategoryzacja tematyczna tekstu odzwierciedlająca specyfikę

zastosowań biznesowych analizy.

Segmentacja Analiza morfologiczna

Dezambiguacja Analiza syntaktyczna

Analiza semantyczna

Przygotowanie danych

Page 6: Analiza języka naturalnego

Warstwy analizowanego tekstu

www.applica.pl

Wynikiem analizy jest zbiór ustrukturyzowanych danych opisujących cechy każdej z warstw analizowanego tekstu źródłowego: warstwy segmentów, słów składniowych, grup składniowych, zdań, bloków oraz całego tekstu. Rozwiązanie pozwala na zebranie kompletnej informacji na temat

analizowanego tekstu w następujących kategoriach: Cechy ilościowe tekstu np. o częstości segmentów lub grup składniowych, bogactwie użytego słownictwa Cechy jakościowe tekstu np. oznaczenie rodzaju używanego języka: potoczny, fachowy, korzyści Cechy opisujące kategorie tematyczne poszczególnych bloków np. oznaczające kategorię produktową (karta kredytowa, ubezpieczenie na życie, abonament telefoniczny) oraz proces biznesowy (sprzedaż, reklamacja, windykacja) Cechy opisujące zawartość emocjonalną tekstu np. oznaczające takie emocje jak: zadowolenie, złość, zniecierpliwienie itp. Cechy opisujące autora tekstu oraz okoliczności powstania analizowanego tekstu.

Page 7: Analiza języka naturalnego

Wynik segmentacji – podział tekstu na zdania i segmenty

Wynik analizy morfosyntaktycznej: identyfikacja wyrazów z informacją o części mowy i wartościach kategorii

morfologicznych (np. przypadek, osoba), jeden wyraz może mieć wiele interpretacji. Wynik dezambiguacji: ujednoznacznienie interpretacji morfologicznej uzyskanej w poprzednim etapie analizy,

jednoznaczne przypisanie części mowy i wartości kategorii morfologicznych.

Wynik analizy składniowej: wyróżnienie grup składniowych

Warstwy – przykład wyników przetwarzania

www.applica.pl

Page 8: Analiza języka naturalnego

Wyniki przetwarzania NLP

www.applica.pl

W odróżnieniu od metody „worka słów” w rozwiązaniu Mindbox Applica zastosowano innowacyjną metodę wielowarstwowej analizy tekstu z wykorzystaniem bardzo bogatych zasobów językowych: słowników oraz modelu gramatyki, co pozwala na zaadresowanie niedoskonałości metod statystycznych poprawiając znacząco jakość wyników analizy. Dzięki zastosowaniu metod lingwistycznych punktem wyjścia do dalszej analizy tekstu są dane językowe przygotowane w następujący

sposób: Tekst podzielony jest na zdania, wyrazy, wyrazy składniowe oraz grupy składniowe Wyrazy oraz grupy składniowe są ujednoznacznione w odniesieniu do kontekstu, w jakim są użyte Każdy wyraz ma jednoznacznie przypisaną część mowy oraz kategorię morfologiczną Każdy wyraz oraz grupa składniowa sprowadzona jest do formy podstawowej

Przedmiotem dalszej analizy są nie tylko pojedyncze wyrazy, ale bardziej złożone konstrukcje językowe, wyróżnione nie w wyniku bezkontekstowej analizy statystycznej, tylko w wyniku analizy lingwistycznej. Zastosowanie analizy lingwistycznej pozwala także na identyfikację relacji pomiędzy poszczególnymi wyrazami oraz grupami

składniowymi, które niosą niezwykle istotne informacje na temat treści analizowanego tekstu: Relacje czasownik-rzeczownik (np. proces biznesowy - produkt) Relacje rzeczownik-przymiotnik (np. produkt – atrybut produktu)

Funkcjonalność narzędzi do analizy języka pozwala na ich elastyczne i precyzyjne dostosowanie do identyfikacji wybranych fenomenów językowych, które dodatkowo wzbogacają wyniki analizy (np. podwójne zaprzeczenie, zdania przeciwstawne, tryb warunkowy itp.)

Page 9: Analiza języka naturalnego

Wyniki przetwarzania NLP

www.applica.pl

Panie prezydencie, Polacy interesują się teraz polityką tak, jak już dawno tego nie było, więc proszę się martwić, że obrady

sejmu zniechęcają do polityki. Obrady sejmu otworzyły wreszcie oczy dużej części społeczeństwa, tej części, która naiwnie

ufała partii prezesa K (inni zawsze mieli świadomość makiawelicznego, cynicznego charakteru tego pana). Dziwne, jakimi

krętymi drogami pełzały myśli pana prezydenta, żeby przekonać siebie samego, że dobrze czyni. Niestety, czyni źle i wbrew

prawu. Jeśli nie ma tego świadomości, to jakim cudem był wykładowcą na najzacniejszej polskiej uczelni?

<group id="a4d8dd" rule="NGs: (Noun,voc) + n-(Noun,voc)" type="NGs" synh="a4d8d5" semh="a4d8d5">

<syntok id="a4d8d5" rule="(subst)|(depr)|(ger) -&gt; (Noun)">

<orth>Panie</orth>

<lex disamb="1"><base>pan</base><ctag>Noun:sg:voc:m1</ctag></lex>

<tok id="a4d89e">

<orth>Panie</orth>

<lex disamb_sh="0"><base>pan</base><ctag>subst:sg:loc:m1</ctag></lex>

<lex disamb="1"><base>pan</base><ctag>subst:sg:voc:m1</ctag></lex>

<lex disamb_sh="0"><base>pani</base><ctag>subst:pl:acc:f</ctag></lex>

<lex disamb_sh="0"><base>pani</base><ctag>subst:pl:nom:f</ctag></lex>

<lex disamb_sh="0"><base>pani</base><ctag>subst:pl:voc:f</ctag></lex>

<lex disamb_sh="0"><base>panie</base><ctag>interj</ctag></lex>

</tok>

</syntok>

<syntok id="a4d8d6" rule="(subst)|(depr)|(ger) -&gt; (Noun)">

<orth>prezydencie</orth>

<lex disamb="1"><base>prezydent</base><ctag>Noun:sg:voc:m1</ctag></lex>

<tok id="a4d89f">

<orth>prezydencie</orth>

<lex disamb_sh="0"><base>prezydent</base><ctag>subst:sg:loc:m1</ctag></lex>

<lex disamb="1"><base>prezydent</base><ctag>subst:sg:voc:m1</ctag></lex>

</tok>

</syntok>

</group>

<group id="a4d99b" rule="NGa: 2*(Adj) + (Noun)" type="NGa" synh="a4d99a" semh="a4d99a">

<syntok id="a4d992" rule="(adj) -&gt; (Adj)">

<orth>najzacniejszej</orth>

<lex disamb="1"><base>zacny</base><ctag>Adj:sg:loc:f:sup</ctag></lex>

<tok id="a4d987">

<orth>najzacniejszej</orth>

<lex disamb_sh="0"><base>zacny</base><ctag>adj:sg:dat:f:sup</ctag></lex>

<lex disamb_sh="0"><base>zacny</base><ctag>adj:sg:gen:f:sup</ctag></lex>

<lex disamb="1"><base>zacny</base><ctag>adj:sg:loc:f:sup</ctag></lex>

</tok>

</syntok>

<syntok id="a4d993" rule="(adj) -&gt; (Adj)">

<orth>polskiej</orth>

<lex disamb="1"><base>polski</base><ctag>Adj:sg:loc:f:pos</ctag></lex>

<tok id="a4d988">

<orth>polskiej</orth>

<lex disamb_sh="0"><base>polski</base><ctag>adj:sg:dat:f:pos</ctag></lex>

<lex disamb_sh="0"><base>polski</base><ctag>adj:sg:gen:f:pos</ctag></lex>

<lex disamb="1"><base>polski</base><ctag>adj:sg:loc:f:pos</ctag></lex>

</tok>

</syntok>

<syntok id="a4d99a" rule="(subst)|(depr)|(ger) -&gt; (Noun)">

<orth>uczelni</orth>

<lex disamb="1"><base>uczelnia</base><ctag>Noun:sg:loc:f</ctag></lex>

<tok id="a4d989">

<orth>uczelni</orth>

<lex disamb_sh="0"><base>uczelnia</base><ctag>subst:pl:gen:f</ctag></lex>

<lex disamb_sh="0"><base>uczelnia</base><ctag>subst:sg:dat:f</ctag></lex>

<lex disamb_sh="0"><base>uczelnia</base><ctag>subst:sg:gen:f</ctag></lex>

<lex disamb="1"><base>uczelnia</base><ctag>subst:sg:loc:f</ctag></lex>

</tok>

</syntok>

</group>

Page 10: Analiza języka naturalnego

wyrażenie wyrażenie

Wyniki przetwarzania NLP

www.applica.pl

Typ grupy składniowej

Negacja

wyrażenie

Zwrotność

Czas i tryb

Przypadek

Część mowy

Gerundium

Stopień

Zdania przeciwstawne

Podwójne zaprzeczenie

Różne formy negacji

Tryb warunkowy

Wzmocnienia i osłabienia

Wyrażenia regularne

Page 11: Analiza języka naturalnego

Warstwy – przykład wyników przetwarzania

www.applica.pl

Proces: utrzymanie

klienta

Klient: Hubert Tkaczyk

Kontekst biznesowy

Produkt: rachunek Efekt:

rezygnacja

Cel biznesowy

Przyczyna: koszty

prowadzenia rachunku

Produkt/usługa

Firma: Alior

Firma

Atrybuty: opłaty i

prowizje

Wydźwięk: rezygnacja,

złość

Wydźwięk

Klient

analiza tekstu i oznaczanie zidentyfikowanych wyrażeń

kategoryzacja treści

Page 12: Analiza języka naturalnego

Co daje zastosowanie NLP?

www.applica.pl

Play jest profesjonalny Orange klientów dba nie o

Analiza n-gramów: Orange oznaczony jako profesjonalny

Analiza lingwistyczna zakłada, że wyrazy łączą się ze sobą znaczeniowo, gdy występują w tej samej grupie składniowej.

Analiza n-gramów zakłada, że wyrazy łączą się ze sobą znaczeniowo gdy występują „obok siebie” w zdaniu.

zawsze

Analiza lingwistyczna: Play oznaczony jako profesjonalny

Page 13: Analiza języka naturalnego

Kategoryzacja treści

www.applica.pl

Page 14: Analiza języka naturalnego
Page 15: Analiza języka naturalnego

Proces przetwarzania korespondencji masowej

www.applica.pl

Kategoryzacja tematyczna

• Wsparcie klienta przy wyborze tematu korespondencji

• Weryfikacja tematu korespondencji i jej precyzyjna kategoryzacja

• Określenie szczegółowej grupy tematycznej dla wybranych kategorii

Ekstrakcja informacji

• Ekstrakcja danych niezbędnych do dalszego przetwarzania korespondencji dla zidentyfikowanych kategorii tematycznych

• Zapis danych w postaci struktur zdefiniowanych dla wybranych grup tematycznych do dalszego wykorzystania

Priorytetyzacja i dystrybucja

korespondencji

• Identyfikacja wiadomości pod kątem wybranych treści (skargi UKE/UOKiK, reklamacje o dużej wartości, duplikaty)

• Identyfikacja zgłoszeń o charakterze masowym

• Priorytetyzacja otrzymanych zgłoszeń

Automatyzacja procesów obsługi

• Bezobsługowe przetwarzanie standardowych zapytań z wykorzystaniem danych uzyskanych w procesie ekstrakcji

• Wstępne wywołanie odpowiedniego strumienia workflow oraz przygotowanie szablonu odpowiedzi

Kategoria Grupa tematyczna

Dane klienta specyficzne dla

grupy tematycznej

Priorytet Sekcja

Odpowiedź do klienta

Page 16: Analiza języka naturalnego

Moderacja treści

www.applica.pl

Page 17: Analiza języka naturalnego

www.applica.pl

Page 18: Analiza języka naturalnego

Applica Moderacja® - funkcjonalność

www.applica.pl

Rozwiązanie Applica umożliwia automatyczną bądź semi-automatyczną, w pełni konfigurowalną moderację treści tekstowych tworzonych przez użytkowników. Dzięki wykorzystaniu zaawansowanych metod analizy semantycznej rozwiązanie oferuje skuteczność zbliżoną do moderacji realizowanej przez człowieka.

Eliminowanie ‚hejtu’, m.in.: • Ksenofobia • Rasizm • Antysemityzm • Homofobia • Nawoływanie do agresji • Obrażanie osób publicznych • Wulgaryzmy

Eliminowanie ‚spamu’, m.in.: • Treści reklamowe • Linki reklamowe • Adresy e-mail • Numery telefonu

Pełna konfigurowalność: dostosowanie rozwiązania do charakteru medium

Bezwarunkowa akceptacja treści zgodnych z regulaminem Moderacja warunkowa: pre-moderacja lub post-moderacja Bezwarunkowe odrzucenie treści niezgodnych z regulaminem

?

Page 19: Analiza języka naturalnego

Architektura

www.applica.pl

Słowniki NLP

Moduł wykrywania prób obejścia

moderacji Moduł NLP

Moduł ujednoznaczniania

kontekstowego

Moduł rozpoznawania

języka

Moduł wykrywania nazw własnych

Moduł kategoryzacji komentarzy

Słownik wulgaryzmów i

zwrotów obraźliwych

Słownik terminów wrażliwych

Słownik osób publicznych

Moduł obsługi procesu

przetwarzania

Baza komentarzy z kategoryzacją

Moduł wykrywania spamu

Page 20: Analiza języka naturalnego

Główne moduły - NLP

www.applica.pl

• Moduł odpowiada za pełne przetwarzanie NLP zbioru komentarzy, w wyniku którego wszystkie słowa w tekście zostają ujednoznacznione i sprowadzone do form podstawowych.

• Wynikiem przetwarzania są zidentyfikowane i oznaczone słowa i wyrażenia wulgarne i obraźliwe.

• W wyniku przetwarzania oznaczony zostaje stopień wulgarności danego słowa lub wyrażenia – do późniejszego wykorzystania przy kategoryzacji komentarzy

• Moduł wykorzystuje Słownik wulgaryzmów i zwrotów obraźliwych, na bieżąco aktualizowany i uzupełniany

Page 21: Analiza języka naturalnego

Moduł wykrywania prób obejścia moderacji

www.applica.pl

• Identyfikacja słów i wyrażeń wulgarnych, obraźliwych, które nie zostały wykryte w ramach przetwarzania NLP.

• Oznaczenie stopnia wulgarności danego słowa lub wyrażenia analogicznie jak w przypadku Modułu NLP

• Przykładowe wykrywane próby obejścia moderacji: • Użycie wykropkowania w słowie wulgarnym np. „ch…” „k***wa” • Zamiana wybranych liter w słowie wulgarnym np. „qrwa” „ch\/j” „doopa” „zajeb@ny” • Użycie kropek lub innych znaków w słowie wulgarnym np. „k.u.r.w.a.” „chu-je”

• Moduł wykorzystuje połączenie metod lingwistycznych i słownikowych do identyfikacji wulgaryzmów i zwrotów obraźliwych: dowolne słowo, niezidentyfikowane jako słowo występujące w języku polskim, zostaje poddane procesowi przetworzenia (usuwaniu kropek lub innych znaków, zamianie wybranych liter lub sylab, uzupełnianiu słowa o brakujące znaki) a następnie porównywane ze Słownikiem.

Page 22: Analiza języka naturalnego

Przykłady działania serwisu

www.applica.pl

Oceniono man

No dosłownie co chwile! Ale ona tylko jaja mi chce ssać!

Odpowiedz

Odpowiedź serwisu:

Oceniono kostka cukru

ok teraz chwila prawdy - jestem ssakiem, mój bóg lubi ssać : )

Odpowiedz

Odpowiedź serwisu:

Oceniono Pogromca

GG mi chciał possać niedawno. Ale pogoniłem go bo ja nie z takich jak on.

Odpowiedz

Odpowiedź serwisu:

Oceniono Katka

Polska wesz jest najlepsza, potrafi dogryźć i wyssać dużo dużo krwi:D

Odpowiedz

Odpowiedź serwisu:

• Metody ujednoznaczniania kontekstowego: jeśli określony rzeczownik (np. tabu seks) jest w zdaniu z określonym czasownikiem (tabu seks), to zostają połączone w całość o odpowiednim znaczeniu:

Page 23: Analiza języka naturalnego

Przykłady działania serwisu

www.applica.pl

Oceniono historyk

Król Jan Sobieski dał nam przykład jak postępować z dzikimi hordami islamskich bandytów

Odpowiedz

Odpowiedź serwisu:

Oceniono ateista

CZY NAZWANIE POLAKÓW BANDYTAMI PRZEZ PAPIEŻA GRZEGORZA XVI I RZUCENIE NA NICH KLĄTWY Z WOLI BOGA DNIA 28 LUTEGO 1846 ROKU TO TEŻ CZERWONA PROPAGANDA UBEKÓW CZY FAKT HISTORYCZNY

Odpowiedz

Odpowiedź serwisu:

Oceniono hohoho

Faszystowska zaraza!

Odpowiedz

Odpowiedź serwisu:

Oceniono ltp

Złotousty lawrow zapomniał jeszcze dodać, że w Ameryce Murzynów biją. Pokrętna bolszewcko-faszystowska retoryka

Odpowiedz

Odpowiedź serwisu:

• Metody ujednoznaczniania kontekstowego: połączenie potencjalnie obraźliwego rzeczownika z potencjalnie obraźliwym przymiotnikiem daje wyrażenie obraźliwe

Page 24: Analiza języka naturalnego

Przykłady działania serwisu

www.applica.pl

Oceniono znużony

Nawet na to nie licz - Duda - jesteś po prostu zakłamanym hipokrytą.

Odpowiedz

Odpowiedź serwisu:

Oceniono znużony

Nawet na to nie licz - Tusk - jesteś po prostu zakłamanym hipokrytą.

Odpowiedz

Odpowiedź serwisu:

• Kontekstowa ochrona prezydenta:

Oceniono swir

Pi,...rdolnij się w czoło!!! PANIE KOŁO

Odpowiedz

Odpowiedź serwisu:

Oceniono Putin ty kur\/\/o

Ha ha ha

Odpowiedz

Odpowiedź serwisu:

• Ukryte wulgaryzmy, zarówno w treści komentarza jak i polu autor

Page 25: Analiza języka naturalnego

Przykłady działania serwisu

www.applica.pl

Oceniono POLAK PATRIOTA

Do likwidacji

Odpowiedz

Odpowiedź serwisu (przy fladze hejt):

Oceniono POLAK PATRIOTA

Do likwidacji

Odpowiedz

Odpowiedź serwisu (przy braku dodatkowej informacji):

Oceniono zeus

Wkurzasz mnie

Odpowiedz

Odpowiedź serwisu:

Oceniono olaf

Wkurzasz mnie tym swoim ciągłym gadaniem o tym, jak jest źle.

Odpowiedz

Odpowiedź serwisu:

• Ujednoznacznianie w kontekście tematyki artykułu pod jakim znalazł się komentarz (np. artykuł o śmierci znanej osoby - hejt, artykuł o uchodźcach - rasizm)

• Decyzja o moderacji uzależniona od długości komentarza, eliminacja treści, które są wątpliwej jakości i nie wnoszą nic do dyskusji

Page 26: Analiza języka naturalnego

Głęboki wydźwięk

www.applica.pl

Page 27: Analiza języka naturalnego

www.applica.pl

Page 28: Analiza języka naturalnego

• Zaawansowana analiza wydźwięku wypowiedzi w oparciu o model podstawowych emocji:

• Ośmiowymiarowy model podstawowych emocji Roberta Plutchika

• Możliwość analizy emocji wyższego rzędu w oparciu o emocje podstawowe

www.applica.pl

Pogłębiona analiza wydźwięku

14.05.2014, 16:38N A2. Raport szczegółowy: wizerunek marki - Applica

Strona 1 z 1http:/ / test.applica.pl/ applica/ viewRaport.html?id= 13&product= 9

Miesiąc

liczb

a [

%]

radość

zaufanie

obawa

zaskoczenie

smutek

niechęć

złość

oczekiwanie

2013- 01 2013- 02 2013- 03 2013- 04 2013- 05 2013- 06 2013- 07 2013- 08 2013- 09 2013- 10 2013- 11 2013- 12

0

100

25

50

75

Highcharts.com

N A2.3b Głęboki wydźwięk wypowiedzi klientów na temat marki

radość zaufanie obawa zaskoczenie smutek niechęć złość oczekiwanie