1. 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
2. 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ę?
3. 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
5. 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
6. 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.
7. 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
8. 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.)
9. 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) -> (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) -> (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) -> (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) -> (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) -> (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>
10. 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
11. Warstwy – przykład wyników przetwarzania
www.applica.pl
Proces:
utrzymanie
klienta
Klient:
Hubert
Tkaczyk
Kontekst
biznesowy
Produkt:
rachunekEfekt:
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
12. Co daje zastosowanie NLP?
www.applica.pl
Play jest profesjonalny Orange klientówdbanie 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
15. 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
18. 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
?
19. 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
20. 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
21. 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.
22. 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:
23. 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
24. 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
25. 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