Dariusz rzeziński Instytut Informatyki, Politechnika Poznańska · •Scikit-learn Przetwarzanie...

36
Dariusz Brzeziński Instytut Informatyki, Politechnika Poznańska

Transcript of Dariusz rzeziński Instytut Informatyki, Politechnika Poznańska · •Scikit-learn Przetwarzanie...

Page 1: Dariusz rzeziński Instytut Informatyki, Politechnika Poznańska · •Scikit-learn Przetwarzanie języka naturalnego i badanie opinii ... –sentiment classification słowa klucze,

Dariusz Brzeziński

Instytut Informatyki, Politechnika Poznańska

Page 2: Dariusz rzeziński Instytut Informatyki, Politechnika Poznańska · •Scikit-learn Przetwarzanie języka naturalnego i badanie opinii ... –sentiment classification słowa klucze,

• Podstawy przetwarzania języka

• Dostępne narzędzia

• Trochę teorii

• Zastosowania

• Badanie opinii

Materiały sporządzone na podstawie wykładów

Prof. Stana Szpakowicza i Binga Liu wygłoszonych na MLSMA 2014

Ćwiczenia przygotowane z pomocą Mateusza Lango

Przetwarzanie języka naturalnego i badanie opinii

Page 3: Dariusz rzeziński Instytut Informatyki, Politechnika Poznańska · •Scikit-learn Przetwarzanie języka naturalnego i badanie opinii ... –sentiment classification słowa klucze,

• Dział informatyki zajmujący się przetwarzaniem tekstu

• Język naturalny, czyli ludzki (a nie np. programowania)

• Wiele nazw

– Natural Language Processing

– Computational Linguistics

– Natural Language Understanding

– Language Engineering

– Language Technology

– Human Language Technology

Przetwarzanie języka naturalnego i badanie opinii

Page 4: Dariusz rzeziński Instytut Informatyki, Politechnika Poznańska · •Scikit-learn Przetwarzanie języka naturalnego i badanie opinii ... –sentiment classification słowa klucze,

• Dane:

– Korpusy językowe (np. Brown czy British National Corpus)

– Internet (Wikipedia, blogi, Twitter)

• Zadania:

– Machine translation

– Text summarization

– Question answering

– Sentiment analysis

– Word-sense disambiguation

• Narzędzia: taggery, stemmery, parsery, itd

Przetwarzanie języka naturalnego i badanie opinii

Page 5: Dariusz rzeziński Instytut Informatyki, Politechnika Poznańska · •Scikit-learn Przetwarzanie języka naturalnego i badanie opinii ... –sentiment classification słowa klucze,

Dwa podstawowe podejścia

Przetwarzanie języka naturalnego i badanie opinii

Analiza statystyczna- Etykietowane dane- Zliczanie- Uczenie maszynowe

Analiza formalna- Bazy wiedzy- Drzewa leksykalne- Rozumienie tekstu

+

Page 6: Dariusz rzeziński Instytut Informatyki, Politechnika Poznańska · •Scikit-learn Przetwarzanie języka naturalnego i badanie opinii ... –sentiment classification słowa klucze,

• Stanford CoreNLP (Java)

• LingPipe (Java)

• NLTK (Python)

• GATE (Java)

• Weka

• Rapid Miner

• MinorThird

• Scikit-learn

Przetwarzanie języka naturalnego i badanie opinii

Page 7: Dariusz rzeziński Instytut Informatyki, Politechnika Poznańska · •Scikit-learn Przetwarzanie języka naturalnego i badanie opinii ... –sentiment classification słowa klucze,

• ZIL – Zespół Inżynierii Lingwistycznej IPI PAN

– Spory zbiór darmowych i otwartych narzędzi

– Warto odwiedzić też strony CLIP i CLARIN-PL

– Ten sam zespół rozwija wyszukiwarkę NEKST

• G4.19 – grupa badawcza z Politechniki Wrocławskiej

• PSI – Pracownia Systemów Informacyjnych UAM

Przetwarzanie języka naturalnego i badanie opinii

Page 8: Dariusz rzeziński Instytut Informatyki, Politechnika Poznańska · •Scikit-learn Przetwarzanie języka naturalnego i badanie opinii ... –sentiment classification słowa klucze,

• Korpusy językowe

– British National Corpus

– Narodowy Korpus Języka Polskiego

• Ontologie

– Wikipedia

– SUMO

• Słowniki

– Logman Dictionary of Contemporary English

Przetwarzanie języka naturalnego i badanie opinii

Page 9: Dariusz rzeziński Instytut Informatyki, Politechnika Poznańska · •Scikit-learn Przetwarzanie języka naturalnego i badanie opinii ... –sentiment classification słowa klucze,

Słowosieci

Wordnet“WordNet® is a large lexical database ofEnglish. Nouns, verbs, adjectives and adverbsare grouped into sets of cognitive synonyms(synsets), each expressing a distinct concept.Synsets are interlinked by means of conceptual-semantic and lexical relations. The resultingnetwork of meaningfully related words andconcepts can be navigated [. . . ]”

Przetwarzanie języka naturalnego i badanie opinii

SłowosiećDrugi największy wordnet na świecie i wciąż rośnie (w przeciwieństwie doangielskiego). Rozwijany przede wszystkim we Wrocławiu.

Page 10: Dariusz rzeziński Instytut Informatyki, Politechnika Poznańska · •Scikit-learn Przetwarzanie języka naturalnego i badanie opinii ... –sentiment classification słowa klucze,

Przetwarzanie języka naturalnego i badanie opinii

Pragmatyka

Znaczenia

Zdania

Morfemy

Fonemy

•Cel zdania

•Jego sensowność

•Semantyka

•Word-sense disambiguation

•Składnia

•Parsery

•Part of speach tagging

•Najmniejsza grupa fonemów, która niesie znaczenie

•Słowa, fragmenty słów

•Najmniejsza jednostka mowy

•Potrafi różnicować znaczenie choć sam go nie niesie

Page 11: Dariusz rzeziński Instytut Informatyki, Politechnika Poznańska · •Scikit-learn Przetwarzanie języka naturalnego i badanie opinii ... –sentiment classification słowa klucze,

• Fonetyka to nauka zajmująca się systematyką dźwięków w językach mówionych

• Morfologia: dlaczego “impossible” jest poprawne a ”imred” nie?

• Składnia: co sprawia, że “I lecture on computational linguistics” jest poprawne a “I lecturing computationallinguistics” już nie?

• Semantyka: dlaczego “I borrowed it from Jim” jest poprawne a “I borrowed it to Jim” już nie? Albo czym “robbery by the lake” i “robbery by the fugitive” się różnią?

• Pragmatyka: dlaczego zdanie “taxes always go down” jest niepoprawne?

Przetwarzanie języka naturalnego i badanie opinii

Page 12: Dariusz rzeziński Instytut Informatyki, Politechnika Poznańska · •Scikit-learn Przetwarzanie języka naturalnego i badanie opinii ... –sentiment classification słowa klucze,

• Tokenizer – dzieli tekst na słowa i znaki interpunkcyjne– Sporo pułapek, np. At 8 o’clock I didn’t feel good. =>

|At|8|o’clock|I|did|n’t|feel|good|.|

– Wyrażenia regularne lub automaty

• POS – part-of-speech tagger, oznacza części mowy– Potrzebne do analizy składniowej („parsowania”) zdań

– Przydatne do aplikacji Text-to-speech (OBject vs obJECT)

– Hidden Markov Models albo rule-based

– Czasami zamiast POS starczy stemming

• N-grams – n-tki słów opisane prawdopodobieństwem ich wystąpienia– Mogą służyć do podpowiadania słów lub generowania tekstów

Przetwarzanie języka naturalnego i badanie opinii

Page 13: Dariusz rzeziński Instytut Informatyki, Politechnika Poznańska · •Scikit-learn Przetwarzanie języka naturalnego i badanie opinii ... –sentiment classification słowa klucze,

Przetwarzanie języka naturalnego i badanie opinii

Page 14: Dariusz rzeziński Instytut Informatyki, Politechnika Poznańska · •Scikit-learn Przetwarzanie języka naturalnego i badanie opinii ... –sentiment classification słowa klucze,

https://mschmitt.org/performance/

Przetwarzanie języka naturalnego i badanie opinii

Page 15: Dariusz rzeziński Instytut Informatyki, Politechnika Poznańska · •Scikit-learn Przetwarzanie języka naturalnego i badanie opinii ... –sentiment classification słowa klucze,

• Parser – sprawdza składnię, określa części zdania– W praktyce zależy nam na stworzeniu drzewa (drzew?) składniowych

– Dla języków naturalnych trudne zadanie

I saw a man on a hill with a telescope

– Oparte na regułach lub statystyce (zliczaniu)

• Semantyka – najciekawszy i najtrudniejszy etap– Brak gotowych rozwiązań

– Predykaty, sieci semantyczne, ontologie, taksonomie, statystyka

– Techniki mocno zależne od zastosowania

Przetwarzanie języka naturalnego i badanie opinii

Page 16: Dariusz rzeziński Instytut Informatyki, Politechnika Poznańska · •Scikit-learn Przetwarzanie języka naturalnego i badanie opinii ... –sentiment classification słowa klucze,

I saw a man on a hill with a telescope

• There is a man on a hill, and I’m watching him with my telescope

• There is a man on a hill, who I’m seeing, and he has a telescope

• There is a man, and he’s on a hill that also has a telescope on it

• I’m on a hill, and I saw a man using a telescope

• There’s a man on a hill, and I’m sawing him with a telescope

• …

Przetwarzanie języka naturalnego i badanie opinii

Page 17: Dariusz rzeziński Instytut Informatyki, Politechnika Poznańska · •Scikit-learn Przetwarzanie języka naturalnego i badanie opinii ... –sentiment classification słowa klucze,

Przetwarzanie języka naturalnego i badanie opinii

• Co wybrane słowo oznacza w danym kontekście

• Słowa wieloznaczne, homonimy

• Potrzebne zasoby

– Statystyki występowania słów

– Słowniki

• Maksymalna trafność: zdolności ludzkie

• Minimalna: częstość najpopularniejszego znaczenia

Page 18: Dariusz rzeziński Instytut Informatyki, Politechnika Poznańska · •Scikit-learn Przetwarzanie języka naturalnego i badanie opinii ... –sentiment classification słowa klucze,

Przetwarzanie języka naturalnego i badanie opinii

1. Podejście statystyczne:

– Bierzemy korpus etykietowanych tekstów

– Dla wskazanego słowa określamy wszystkie jego konteksty w korpusie

– Korzystamy z twierdzenia Bayesa i maksymalizujemy P(w|c)

2. Podejście słownikowe:

– Porównujemy kontekst słowa z definicją słownikową

3. Tezaurus

– Sprawdzamy bliskość każdego słowa w kontekście do znaczenia w słowosieci

Page 19: Dariusz rzeziński Instytut Informatyki, Politechnika Poznańska · •Scikit-learn Przetwarzanie języka naturalnego i badanie opinii ... –sentiment classification słowa klucze,

Przetwarzanie języka naturalnego i badanie opinii

• Chyba najtrudniejsze zastosowanie*

• Celem jest automatyczne tłumaczenie dużych tekstów

• Przykłady działających systemów

– BabelFish**

– Google Translate

– Bing Translator

• Podobne(?) zadanie: Natural Language Generation

* O dziwo pierwsze z rozważanych, prace zaczęto już w latach 50-tych

** IBM Goergetown experiment -> SYSTRAN -> BabelFish

Page 20: Dariusz rzeziński Instytut Informatyki, Politechnika Poznańska · •Scikit-learn Przetwarzanie języka naturalnego i badanie opinii ... –sentiment classification słowa klucze,

Przetwarzanie języka naturalnego i badanie opinii

• Jak podsumować dłuższy tekst w kilku zdaniach?

• Bardzo trudne zadanie

• Wyciąganie części zdań z tekstu (brak ciągłości)

• Podsumowywanie (raczej za trudne póki co)

Page 21: Dariusz rzeziński Instytut Informatyki, Politechnika Poznańska · •Scikit-learn Przetwarzanie języka naturalnego i badanie opinii ... –sentiment classification słowa klucze,

Przetwarzanie języka naturalnego i badanie opinii

• Wykrywanie encji w tekście:

– Osoby

– Miejsca

– Organizacje

– Określenia czasu

– Wartości

• Świetne wyniki dla j. angielskiego (Stanford)

• Dla polskiego jest trochę gorzej

Page 22: Dariusz rzeziński Instytut Informatyki, Politechnika Poznańska · •Scikit-learn Przetwarzanie języka naturalnego i badanie opinii ... –sentiment classification słowa klucze,

Przetwarzanie języka naturalnego i badanie opinii

• Automatyczne odpowiadanie na pytania

• Głównie związane z poszukiwaniem wiedzy i porad w Internecie

• Wyszukiwarki internetowe zaczynają to robić

• Bardzo dobre wyniki

• Wykorzystanie Wikipedii, słowosieci i baz wiedzy (ang. Knowledge bases)

– Nell

– Cyc

Page 23: Dariusz rzeziński Instytut Informatyki, Politechnika Poznańska · •Scikit-learn Przetwarzanie języka naturalnego i badanie opinii ... –sentiment classification słowa klucze,

Przetwarzanie języka naturalnego i badanie opinii

https://www.youtube.com/watch?v=lI-M7O_bRNg

IBM Watson

Page 24: Dariusz rzeziński Instytut Informatyki, Politechnika Poznańska · •Scikit-learn Przetwarzanie języka naturalnego i badanie opinii ... –sentiment classification słowa klucze,

Przetwarzanie języka naturalnego i badanie opinii

• Sentiment analysis (or opinion mining) computational study of opinion, sentiment, appraisal, evaluation, and emotion

• Firmy są zainteresowane opinią o produktach

• Ludzie szukają opinii przed zakupem

• W ostatnich latach bardzo popularne zadanie NLP

• Ściśle powiązane z analizą mediów społecznościowych

Page 25: Dariusz rzeziński Instytut Informatyki, Politechnika Poznańska · •Scikit-learn Przetwarzanie języka naturalnego i badanie opinii ... –sentiment classification słowa klucze,

Przetwarzanie języka naturalnego i badanie opinii

„Sentyment” vs Opinia

Uwaga! Zdania subiektywne nie muszą wyrażać opinii. Wiele obiektywnych zdań niesie informacje o uczuciach i poglądach.

Bardziej związana z przemyśleniami i spostrzeżeniami

Bardziej związany z uczuciami

Page 26: Dariusz rzeziński Instytut Informatyki, Politechnika Poznańska · •Scikit-learn Przetwarzanie języka naturalnego i badanie opinii ... –sentiment classification słowa klucze,

Przetwarzanie języka naturalnego i badanie opinii

Potrzebujemy dwóch definicji

– Czym jest pojedyncza opinia?

– Jaka jest ogólna opinia (w populacji)?

Opinia to piątka

(encja, aspekt, sentyment, właściciel, czas)

– encja: opisywany obiekt

– aspekt: cecha opisywanego obiektu

– sentyment: +, -, neu, ocena, liczba gwiazdek, emocja

– właściciel: osoba wypowiadająca opinię

– czas: moment kiedy opinia została wyrażona

Page 27: Dariusz rzeziński Instytut Informatyki, Politechnika Poznańska · •Scikit-learn Przetwarzanie języka naturalnego i badanie opinii ... –sentiment classification słowa klucze,

Przetwarzanie języka naturalnego i badanie opinii

Przykład

Page 28: Dariusz rzeziński Instytut Informatyki, Politechnika Poznańska · •Scikit-learn Przetwarzanie języka naturalnego i badanie opinii ... –sentiment classification słowa klucze,

Przetwarzanie języka naturalnego i badanie opinii

Opinia ogółu z reguły wyrażana jest w formie procentowej jako ocena poszczególnych cech obiektu

Page 29: Dariusz rzeziński Instytut Informatyki, Politechnika Poznańska · •Scikit-learn Przetwarzanie języka naturalnego i badanie opinii ... –sentiment classification słowa klucze,

Przetwarzanie języka naturalnego i badanie opinii

• Założenie: każdy dokument został napisany przez jedną osobę i wyraża emocję/opinię na temat jednego obiektu

• Cel: odkryć (_, _, s, _, _)

• Recenzje z reguły spełniają powyższe założenia

• Wypowiedzi na forach, blogach czy Twitterze nie

• Podstawowe podejście to feature engineering, np.:– term frequency lub inne formy ważenia słów z IR,

– part of speech tags,

– leksykon słów i fraz świadczących o opinii,

– wykrywanie negacji,

– zależności składniowe.

Taboada et al. (2011), Pang and Lee (2005), Qu, Ifrimand Weikum (2010), Long, Zhang and Zhu (2010)

Page 30: Dariusz rzeziński Instytut Informatyki, Politechnika Poznańska · •Scikit-learn Przetwarzanie języka naturalnego i badanie opinii ... –sentiment classification słowa klucze,

Przetwarzanie języka naturalnego i badanie opinii

• Założenie: zdanie zostało napisane przez jedną osobę i wyraża emocję/opinię na temat jednego obiektu

• Spełnione dla prostych zdań

• Niekoniecznie dla zdań złożonych

• Problem z reguły rozwiązywany dwuetapowo– subjectivity classification (podobieństwo zdań, Naive Bayes)

– sentiment classification (słowa klucze, TF, leksykony fraz)

• Czasami zdania złożone są dodatkowo dzielone na proste

Yu and Hazivassiloglou (2003), Pang and Lee (2008), Liu (2012), Hu and Liu (2004) Kim and Hovy (2004).

Page 31: Dariusz rzeziński Instytut Informatyki, Politechnika Poznańska · •Scikit-learn Przetwarzanie języka naturalnego i badanie opinii ... –sentiment classification słowa klucze,

Przetwarzanie języka naturalnego i badanie opinii

• To podejście wymaga rozpoznawania aspektów w zdaniach

• Zadanie powiązane z named entity recognition

• Cztery podstawowe podejścia do ekstrakcji apsektów:1. Znajdowanie częstych rzeczowników i wyrażeń rzeczownikowych

2. Wykorzystanie fraz wiążących aspekty z opinią

3. Uczenie nadzorowane

4. Topic modeling

• Jak to się uda to badamy kontekst– Leksykony

– Parsowanie zdań

– Uczenie nadzorowane

Hu and Liu (2004), Ding et al. (2008), Narayanan et al. (2009), Boiyand Moens (2009)

Page 32: Dariusz rzeziński Instytut Informatyki, Politechnika Poznańska · •Scikit-learn Przetwarzanie języka naturalnego i badanie opinii ... –sentiment classification słowa klucze,

Przetwarzanie języka naturalnego i badanie opinii

• Leksykon powinien być tworzony per zastosowanie

• Trzy podstawowe metody:

– ręczna (niezła ale czasochłonna),

– oparta na korpusach,

– oparta na słownikach/słowosieciach.

• Kluczowe jest rozpoczęcie od znanych słów/wyrażeń i przeszukiwanie korpusu/słownika poprzez podobieństwo kontekstu

Turney (2002), Yu and Hazivassiloglou (2003), Qiu et al. (2011), Kim and Hovy (2004), Kamps et al. (2004)

Page 33: Dariusz rzeziński Instytut Informatyki, Politechnika Poznańska · •Scikit-learn Przetwarzanie języka naturalnego i badanie opinii ... –sentiment classification słowa klucze,

Przetwarzanie języka naturalnego i badanie opinii

1. Trying out Chrome because Firefox keeps crashing.

2. I changed to Audi because BMW is so expensive.

3. I come to see my doctor because of severe stomach pain.

4. After taking the drug, I got severe stomach pain.

5. For paintX, one coat can cover the wood color.

6. For paintY, we need three coats to cover the wood color.

7. If I can find a good camera, I will buy it.

8. Are there any great perks for employees?

9. Any idea how to fix this lousy Sony camera?

10. What a great car, it stopped working in the second day.

Page 34: Dariusz rzeziński Instytut Informatyki, Politechnika Poznańska · •Scikit-learn Przetwarzanie języka naturalnego i badanie opinii ... –sentiment classification słowa klucze,

Przetwarzanie języka naturalnego i badanie opinii

Page 35: Dariusz rzeziński Instytut Informatyki, Politechnika Poznańska · •Scikit-learn Przetwarzanie języka naturalnego i badanie opinii ... –sentiment classification słowa klucze,

Natural Language ProcessingAgnieszka Mykowiecka. Inżynieria lingwistyczna. Komputerowe przetwarzanie tekstów w języku naturalnym. Wydawnictwo PJWSTK, 2007.

Christopher Manning and Hinrich Schütze. Foundations of Statistical Natural Language Processing. MIT Press, 1999.

Eugene Charniak. Statistical Language Learning. MIT Press, 1993.

David A. Ferrucci et al. Building Watson: An Overview of the DeepQA Project. AI Magazine, 31(3):59–79, 2010.

Steven Bird et al. Natural Language Processing with Python, O’Reilly, 2009.

Nitin Hardeniya. NLTK Essentials, Packt Publishing, 2015.

Sentiment analysisBing Liu. Sentiment Analysis and Opinion Mining. Morgan & Claypool, 2012.

James G. Shanahan, Yan Qu, and Jancy Weibe. Computing Attitude and Affect in Text: Theory and Applications. Springer, 2006.

Bo Pang and Lillian Lee. Opinion mining and sentiment analysis. Foundations and Trends in Information Retrieval 2(1-2), pp. 1–135, 2008.

Przetwarzanie języka naturalnego i badanie opinii

Page 36: Dariusz rzeziński Instytut Informatyki, Politechnika Poznańska · •Scikit-learn Przetwarzanie języka naturalnego i badanie opinii ... –sentiment classification słowa klucze,

1. Pobierz dane i notatnik ze strony prowadzącego

2. Pobrane pliki rozpakuj do folderu

3. Otwórz nowy projekt PyCharma w tym folderze

4. Otwórz terminal i wpisz „jupyter notebook”

5. Uruchom notatnik i wykonuj po kolei zadania

Przetwarzanie języka naturalnego i badanie opinii