SlideShare une entreprise Scribd logo
1  sur  20
Télécharger pour lire hors ligne
Prawdziwe oblicze tekstu, czyli jak
rozmawiamy w sieci
Rafał Wojdan,
Jakub Nowacki
Warszawskie Dni Informatyki 2019
whoami
2
Rafał Wojdan
Senior Machine Learning Engineer @ Sotrender
Trainer @ Sages r.wojdan@sages.com.pl
dr inż. Jakub Nowacki
Lead Machine Learning Engineer @ Sotrender
Trainer @ Sages
Czym się zajmujemy?
3
Grant NCBiR
4
Tekst w sieci
Co to sentyment?
Six basic emotions by
Ekman
Poziomy sentymentu (opcjonalnie)
● Document-level
● Sentence-level
● Phrase-level
● Feature-level
https://nlp.stanford.edu/sentiment/treebank.html?w=humor%2Cn%27t
Stare i nowe podejście do NLP
https://www.upwork.com/hiring/for-clients/artificial-intelligence-and-natural-language-processing-in-big-data/
Analiza sentymentu
http://karpathy.github.io/2015/05/21/rnn-effectiveness/
Analiza sentymentu
(klasyfikacja)
Embeddings
Embeddings
Glove
FastText ELMo Bert
Character
level Context
Attention
Transformer
(Bi-directional)
Long short-term memory (LSTM)
http://colah.github.io/posts/2015-08-Understanding-LSTMs/
Przygotowanie danych w mediach
społecznościowych
CANT WAIT for the new season of #TwinPeaks YAAAAY \(^o^)/!!!
@davidlynch
CANT WAIT for the new season of _hashtag_TwinPeaks_ YAY _smiley_excited_!
_mention_davidlynch_ _emoji_happy_
HASHTAG ELONGATED WORD SMILEY ELONGATED WORD
MENTION EMOJI
Przygotowanie danych w mediach
społecznościowych
Jutro mija miesiąc od premiery albumu
_hashtag_instrukcjaobsługiświrów_ więc chyba już
możemy zdradzić częściowo zawartość edycji
specjalnej _emoji_smiling_face_with_sunglasses_
projekt _mention_forinstudiocom_
Flair - State of the Art NLP Library
● Łatwość użycia state-of-the-art word embeddings takie jak GloVe, BERT, ELMo
● Tworzenie embedding’ów dokumentów jako kombinacja różnych embedding’ów słów
● Zawiera Flair Embedding
● Wspiera wiele języków
● Modelowanie takich zagadnień jak:
○ Named entity recognition (NER)
○ Part-of-speech tagging (PoS)
○ Klasyfikacja (Multi-class i Multi-label)
○ Language model
● Hyperparameters optimization
● PyTorch
https://github.com/zalandoresearch/flair
Flair - przykład klasyfikacji
https://towardsdatascience.com/text-classification-with-state-of-the-art-nlp-library-flair-b541d7add21f
### Data load
corpus = NLPTaskDataFetcher.load_classification_corpus(Path('./'), test_file='test.csv', dev_file='dev.csv',
train_file='train.csv')
### Mixing word embeddings into document embeddings via LSTM
word_embeddings = [WordEmbeddings('glove'), FlairEmbeddings('news-forward-fast'),
FlairEmbeddings('news-backward-fast')]
document_embeddings = DocumentLSTMEmbeddings(word_embeddings, hidden_size=512)
### Training
classifier = TextClassifier(document_embeddings, label_dictionary=corpus.make_label_dictionary(),
multi_label=False)
trainer = ModelTrainer(classifier, corpus)
trainer.train('./', max_epochs=10)
### Predict
classifier = TextClassifier.load_from_file('./best-model.pt')
sentence = Sentence('Hi. Yes mum, I will...')
classifier.predict(sentence)
print(sentence.labels)
Result: ‘[ham (1.0)]’
Flair - przykład klasyfikacji
https://towardsdatascience.com/text-classification-with-state-of-the-art-nlp-library-flair-b541d7add21f
### Data load
corpus = NLPTaskDataFetcher.load_classification_corpus(Path('./'), test_file='test.csv', dev_file='dev.csv',
train_file='train.csv')
### Mixing word embeddings into document embeddings via LSTM
word_embeddings = [WordEmbeddings('glove'), FlairEmbeddings('news-forward-fast'),
FlairEmbeddings('news-backward-fast')]
document_embeddings = DocumentLSTMEmbeddings(word_embeddings, hidden_size=512)
### Training
classifier = TextClassifier(document_embeddings, label_dictionary=corpus.make_label_dictionary(),
multi_label=False)
trainer = ModelTrainer(classifier, corpus)
trainer.train('./', max_epochs=10)
### Predict
classifier = TextClassifier.load_from_file('./best-model.pt')
sentence = Sentence('Hi. Yes mum, I will...')
classifier.predict(sentence)
print(sentence.labels)
Result: ‘[ham (1.0)]’
[Wyniki]
http://nlpprogress.com/english/sentiment_analysis.html
Task Score Our
SemEval-2017 Task 4 Subtask A (Pos, Neg,
Neu) F1-score 0.685 F1-score 0.647
SemEval 2018 Task 1E-c (Emotions) Macro-F1 56.1 -
SST-2 binary sentiment Accuracy: 95.6% -
Model Score
LSTM + Flair on Polish Common Crawl Accuracy: 91.47%
LSTM + Multi-Language Flair (English, German,
French, Italian, Dutch, Polish) Accuracy: 87.79%
LSTM + Multi-Language BERT Accuracy: 82.5%
Przykłady State-of-the art dla klasyfikacji sentymenty
Wyniki eksperymentów na naszych danych w j. polskim
Co to znaczy dobrze?
http://blog.archisnapper.com/done-is-better-than-perfect-also-for-architects/
Dziękujemy za uwagę!
Pytania?

Contenu connexe

Similaire à Prawdziwe oblicze tekstu, czyli jak rozmawiamy w sieci [WDI 2019]

Kiedy łatać błędy, a kiedy dokładać "ficzery"? Jak układać kolejkę zadań w te...
Kiedy łatać błędy, a kiedy dokładać "ficzery"? Jak układać kolejkę zadań w te...Kiedy łatać błędy, a kiedy dokładać "ficzery"? Jak układać kolejkę zadań w te...
Kiedy łatać błędy, a kiedy dokładać "ficzery"? Jak układać kolejkę zadań w te...Paq Studio
 
Metaprogramowanie w JS
Metaprogramowanie w JSMetaprogramowanie w JS
Metaprogramowanie w JSDawid Rusnak
 
Nie pytaj, co WordPress może zrobić dla Ciebie, zapytaj, co Ty możesz zrobić ...
Nie pytaj, co WordPress może zrobić dla Ciebie, zapytaj, co Ty możesz zrobić ...Nie pytaj, co WordPress może zrobić dla Ciebie, zapytaj, co Ty możesz zrobić ...
Nie pytaj, co WordPress może zrobić dla Ciebie, zapytaj, co Ty możesz zrobić ...WordCamp Polska
 
Jak zacząć, aby nie żałować - czyli 50 twarzy PHP
Jak zacząć, aby nie żałować - czyli 50 twarzy PHPJak zacząć, aby nie żałować - czyli 50 twarzy PHP
Jak zacząć, aby nie żałować - czyli 50 twarzy PHPPiotr Horzycki
 
Zasady technicznej organizacji projektów programistycznych
Zasady technicznej organizacji projektów programistycznychZasady technicznej organizacji projektów programistycznych
Zasady technicznej organizacji projektów programistycznychsztywny
 
Prorgamowanie aspektowe
Prorgamowanie aspektoweProrgamowanie aspektowe
Prorgamowanie aspektoweMichał Mac
 
Testowanie bezpieczenstwa aplikacji mobilnych
Testowanie bezpieczenstwa aplikacji mobilnychTestowanie bezpieczenstwa aplikacji mobilnych
Testowanie bezpieczenstwa aplikacji mobilnychSecuRing
 
Machine learning vs big data od pomysłu do produkcji - Bartłomiej Twardowsk...
Machine learning vs big data   od pomysłu do produkcji - Bartłomiej Twardowsk...Machine learning vs big data   od pomysłu do produkcji - Bartłomiej Twardowsk...
Machine learning vs big data od pomysłu do produkcji - Bartłomiej Twardowsk...Evention
 
Prezentacja z Big Data Tech 2016: Machine Learning vs Big Data
Prezentacja z Big Data Tech 2016: Machine Learning vs Big DataPrezentacja z Big Data Tech 2016: Machine Learning vs Big Data
Prezentacja z Big Data Tech 2016: Machine Learning vs Big DataBartlomiej Twardowski
 
Using Red Gate SQL Doc for database documentation
Using Red Gate SQL Doc for database documentationUsing Red Gate SQL Doc for database documentation
Using Red Gate SQL Doc for database documentationMariusz Koprowski
 
Edukacja testerska na Quality in IT
Edukacja testerska na Quality in ITEdukacja testerska na Quality in IT
Edukacja testerska na Quality in ITRadoslaw Smilgin
 
Sporządzanie oraz umiejętne wykorzystanie przepisów i schematów. Ansible w pr...
Sporządzanie oraz umiejętne wykorzystanie przepisów i schematów. Ansible w pr...Sporządzanie oraz umiejętne wykorzystanie przepisów i schematów. Ansible w pr...
Sporządzanie oraz umiejętne wykorzystanie przepisów i schematów. Ansible w pr...The Software House
 
Paleta możliwości web developera
Paleta możliwości web developeraPaleta możliwości web developera
Paleta możliwości web developeraTomasz Borowski
 
Tworzenie czatbotów w PHP z wykorzystaniem NLP
Tworzenie czatbotów w PHP z wykorzystaniem NLPTworzenie czatbotów w PHP z wykorzystaniem NLP
Tworzenie czatbotów w PHP z wykorzystaniem NLPLaravel Poland MeetUp
 
Programista Webowy .Net Katowice
Programista Webowy .Net KatowiceProgramista Webowy .Net Katowice
Programista Webowy .Net KatowiceJoanna Ochocińska
 
PLNOG19 - Andrzej Prałat & Wojciech Rybicki - Jak usprawnić działanie WAF wyk...
PLNOG19 - Andrzej Prałat & Wojciech Rybicki - Jak usprawnić działanie WAF wyk...PLNOG19 - Andrzej Prałat & Wojciech Rybicki - Jak usprawnić działanie WAF wyk...
PLNOG19 - Andrzej Prałat & Wojciech Rybicki - Jak usprawnić działanie WAF wyk...PROIDEA
 

Similaire à Prawdziwe oblicze tekstu, czyli jak rozmawiamy w sieci [WDI 2019] (20)

Kiedy łatać błędy, a kiedy dokładać "ficzery"? Jak układać kolejkę zadań w te...
Kiedy łatać błędy, a kiedy dokładać "ficzery"? Jak układać kolejkę zadań w te...Kiedy łatać błędy, a kiedy dokładać "ficzery"? Jak układać kolejkę zadań w te...
Kiedy łatać błędy, a kiedy dokładać "ficzery"? Jak układać kolejkę zadań w te...
 
Metaprogramowanie w JS
Metaprogramowanie w JSMetaprogramowanie w JS
Metaprogramowanie w JS
 
Nie pytaj, co WordPress może zrobić dla Ciebie, zapytaj, co Ty możesz zrobić ...
Nie pytaj, co WordPress może zrobić dla Ciebie, zapytaj, co Ty możesz zrobić ...Nie pytaj, co WordPress może zrobić dla Ciebie, zapytaj, co Ty możesz zrobić ...
Nie pytaj, co WordPress może zrobić dla Ciebie, zapytaj, co Ty możesz zrobić ...
 
[TestWarez 2017] Skomplikowane testowanie, skomplikowane terminy. Testowanie ...
[TestWarez 2017] Skomplikowane testowanie, skomplikowane terminy. Testowanie ...[TestWarez 2017] Skomplikowane testowanie, skomplikowane terminy. Testowanie ...
[TestWarez 2017] Skomplikowane testowanie, skomplikowane terminy. Testowanie ...
 
Jak zacząć, aby nie żałować - czyli 50 twarzy PHP
Jak zacząć, aby nie żałować - czyli 50 twarzy PHPJak zacząć, aby nie żałować - czyli 50 twarzy PHP
Jak zacząć, aby nie żałować - czyli 50 twarzy PHP
 
Zasady technicznej organizacji projektów programistycznych
Zasady technicznej organizacji projektów programistycznychZasady technicznej organizacji projektów programistycznych
Zasady technicznej organizacji projektów programistycznych
 
Prorgamowanie aspektowe
Prorgamowanie aspektoweProrgamowanie aspektowe
Prorgamowanie aspektowe
 
Wprowadzenie do PHPUnit
Wprowadzenie do PHPUnitWprowadzenie do PHPUnit
Wprowadzenie do PHPUnit
 
Testowanie bezpieczenstwa aplikacji mobilnych
Testowanie bezpieczenstwa aplikacji mobilnychTestowanie bezpieczenstwa aplikacji mobilnych
Testowanie bezpieczenstwa aplikacji mobilnych
 
Machine learning vs big data od pomysłu do produkcji - Bartłomiej Twardowsk...
Machine learning vs big data   od pomysłu do produkcji - Bartłomiej Twardowsk...Machine learning vs big data   od pomysłu do produkcji - Bartłomiej Twardowsk...
Machine learning vs big data od pomysłu do produkcji - Bartłomiej Twardowsk...
 
Prezentacja z Big Data Tech 2016: Machine Learning vs Big Data
Prezentacja z Big Data Tech 2016: Machine Learning vs Big DataPrezentacja z Big Data Tech 2016: Machine Learning vs Big Data
Prezentacja z Big Data Tech 2016: Machine Learning vs Big Data
 
Using Red Gate SQL Doc for database documentation
Using Red Gate SQL Doc for database documentationUsing Red Gate SQL Doc for database documentation
Using Red Gate SQL Doc for database documentation
 
Edukacja testerska na Quality in IT
Edukacja testerska na Quality in ITEdukacja testerska na Quality in IT
Edukacja testerska na Quality in IT
 
ANSIBLE W PRAKTYCE
ANSIBLE W PRAKTYCEANSIBLE W PRAKTYCE
ANSIBLE W PRAKTYCE
 
Sporządzanie oraz umiejętne wykorzystanie przepisów i schematów. Ansible w pr...
Sporządzanie oraz umiejętne wykorzystanie przepisów i schematów. Ansible w pr...Sporządzanie oraz umiejętne wykorzystanie przepisów i schematów. Ansible w pr...
Sporządzanie oraz umiejętne wykorzystanie przepisów i schematów. Ansible w pr...
 
Paleta możliwości web developera
Paleta możliwości web developeraPaleta możliwości web developera
Paleta możliwości web developera
 
Tworzenie czatbotów w PHP z wykorzystaniem NLP
Tworzenie czatbotów w PHP z wykorzystaniem NLPTworzenie czatbotów w PHP z wykorzystaniem NLP
Tworzenie czatbotów w PHP z wykorzystaniem NLP
 
Programista Webowy .Net Katowice
Programista Webowy .Net KatowiceProgramista Webowy .Net Katowice
Programista Webowy .Net Katowice
 
PLNOG19 - Andrzej Prałat & Wojciech Rybicki - Jak usprawnić działanie WAF wyk...
PLNOG19 - Andrzej Prałat & Wojciech Rybicki - Jak usprawnić działanie WAF wyk...PLNOG19 - Andrzej Prałat & Wojciech Rybicki - Jak usprawnić działanie WAF wyk...
PLNOG19 - Andrzej Prałat & Wojciech Rybicki - Jak usprawnić działanie WAF wyk...
 
Praktyki techniczne
Praktyki technicznePraktyki techniczne
Praktyki techniczne
 

Plus de Sotrender

Topic modeling - nie tylko LDA w Gensim
Topic modeling - nie tylko LDA w GensimTopic modeling - nie tylko LDA w Gensim
Topic modeling - nie tylko LDA w GensimSotrender
 
Budowa modeli uczenia maszynowego zgodnie z regulacjami o ochronie danych za ...
Budowa modeli uczenia maszynowego zgodnie z regulacjami o ochronie danych za ...Budowa modeli uczenia maszynowego zgodnie z regulacjami o ochronie danych za ...
Budowa modeli uczenia maszynowego zgodnie z regulacjami o ochronie danych za ...Sotrender
 
Facebook Audience Insights – czyli czym interesują się polscy użytkownicy Fac...
Facebook Audience Insights – czyli czym interesują się polscy użytkownicy Fac...Facebook Audience Insights – czyli czym interesują się polscy użytkownicy Fac...
Facebook Audience Insights – czyli czym interesują się polscy użytkownicy Fac...Sotrender
 
Human-in-the-loop (HILT) machine learning i augmentacja danych, czyli jak zbu...
Human-in-the-loop (HILT) machine learning i augmentacja danych, czyli jak zbu...Human-in-the-loop (HILT) machine learning i augmentacja danych, czyli jak zbu...
Human-in-the-loop (HILT) machine learning i augmentacja danych, czyli jak zbu...Sotrender
 
Rozpoznawanie treści obrazów na kreacjach reklam na Facebooku z wykorzystanie...
Rozpoznawanie treści obrazów na kreacjach reklam na Facebooku z wykorzystanie...Rozpoznawanie treści obrazów na kreacjach reklam na Facebooku z wykorzystanie...
Rozpoznawanie treści obrazów na kreacjach reklam na Facebooku z wykorzystanie...Sotrender
 
Predykcja efektywności działań marketingowych w serwisie Facebook
Predykcja efektywności działań marketingowych w serwisie FacebookPredykcja efektywności działań marketingowych w serwisie Facebook
Predykcja efektywności działań marketingowych w serwisie FacebookSotrender
 
Trenowanie i wdrażanie modeli uczenia maszynowego z wykorzystaniem Google Clo...
Trenowanie i wdrażanie modeli uczenia maszynowego z wykorzystaniem Google Clo...Trenowanie i wdrażanie modeli uczenia maszynowego z wykorzystaniem Google Clo...
Trenowanie i wdrażanie modeli uczenia maszynowego z wykorzystaniem Google Clo...Sotrender
 
Wykrywanie mowy nienawiści w języku polskim
Wykrywanie mowy nienawiści w języku polskimWykrywanie mowy nienawiści w języku polskim
Wykrywanie mowy nienawiści w języku polskimSotrender
 
Federated Learning: Budowanie modeli uczenia maszynowego bez wglądu w rozpros...
Federated Learning: Budowanie modeli uczenia maszynowego bez wglądu w rozpros...Federated Learning: Budowanie modeli uczenia maszynowego bez wglądu w rozpros...
Federated Learning: Budowanie modeli uczenia maszynowego bez wglądu w rozpros...Sotrender
 
Ślady cyfrowe - sposoby na analizowanie aktywności internautów i działań rekl...
Ślady cyfrowe - sposoby na analizowanie aktywności internautów i działań rekl...Ślady cyfrowe - sposoby na analizowanie aktywności internautów i działań rekl...
Ślady cyfrowe - sposoby na analizowanie aktywności internautów i działań rekl...Sotrender
 
Bajki robotów? Machine Learning in Digital Marketing | Konferencja In Digital...
Bajki robotów? Machine Learning in Digital Marketing | Konferencja In Digital...Bajki robotów? Machine Learning in Digital Marketing | Konferencja In Digital...
Bajki robotów? Machine Learning in Digital Marketing | Konferencja In Digital...Sotrender
 
Sztuczna inteligencja w marketingu | Infoshare 2019
Sztuczna inteligencja w marketingu | Infoshare 2019Sztuczna inteligencja w marketingu | Infoshare 2019
Sztuczna inteligencja w marketingu | Infoshare 2019Sotrender
 
Pragmatic Machine Learning in Business
Pragmatic Machine Learning in BusinessPragmatic Machine Learning in Business
Pragmatic Machine Learning in BusinessSotrender
 
Wykorzystanie Big Data i cyfrowego śladu w naukach psychologicznych i społecz...
Wykorzystanie Big Data i cyfrowego śladu w naukach psychologicznych i społecz...Wykorzystanie Big Data i cyfrowego śladu w naukach psychologicznych i społecz...
Wykorzystanie Big Data i cyfrowego śladu w naukach psychologicznych i społecz...Sotrender
 
Jak wykorzystać social media w badaniach i jak przełożyć to na decyzje związa...
Jak wykorzystać social media w badaniach i jak przełożyć to na decyzje związa...Jak wykorzystać social media w badaniach i jak przełożyć to na decyzje związa...
Jak wykorzystać social media w badaniach i jak przełożyć to na decyzje związa...Sotrender
 
Obsługa klienta w social media
Obsługa klienta w social mediaObsługa klienta w social media
Obsługa klienta w social mediaSotrender
 
Jakimi wartościami kieruje się Twoja grupa docelowa? [Listonic Case Study]
Jakimi wartościami kieruje się Twoja grupa docelowa? [Listonic Case Study]Jakimi wartościami kieruje się Twoja grupa docelowa? [Listonic Case Study]
Jakimi wartościami kieruje się Twoja grupa docelowa? [Listonic Case Study]Sotrender
 
Każde pokolenie ma swój czas? Różnice generacyjne a dane z mediów społecznośc...
Każde pokolenie ma swój czas? Różnice generacyjne a dane z mediów społecznośc...Każde pokolenie ma swój czas? Różnice generacyjne a dane z mediów społecznośc...
Każde pokolenie ma swój czas? Różnice generacyjne a dane z mediów społecznośc...Sotrender
 
Poszerzanie pola walki - czyli z kim tak naprawdę konkurujecie?
Poszerzanie pola walki - czyli z kim tak naprawdę konkurujecie? Poszerzanie pola walki - czyli z kim tak naprawdę konkurujecie?
Poszerzanie pola walki - czyli z kim tak naprawdę konkurujecie? Sotrender
 
Mallkołaj rozdaje prezenty - Case Study z akcji Mall.pl i Los Videos
Mallkołaj rozdaje prezenty - Case Study z akcji Mall.pl i Los VideosMallkołaj rozdaje prezenty - Case Study z akcji Mall.pl i Los Videos
Mallkołaj rozdaje prezenty - Case Study z akcji Mall.pl i Los VideosSotrender
 

Plus de Sotrender (20)

Topic modeling - nie tylko LDA w Gensim
Topic modeling - nie tylko LDA w GensimTopic modeling - nie tylko LDA w Gensim
Topic modeling - nie tylko LDA w Gensim
 
Budowa modeli uczenia maszynowego zgodnie z regulacjami o ochronie danych za ...
Budowa modeli uczenia maszynowego zgodnie z regulacjami o ochronie danych za ...Budowa modeli uczenia maszynowego zgodnie z regulacjami o ochronie danych za ...
Budowa modeli uczenia maszynowego zgodnie z regulacjami o ochronie danych za ...
 
Facebook Audience Insights – czyli czym interesują się polscy użytkownicy Fac...
Facebook Audience Insights – czyli czym interesują się polscy użytkownicy Fac...Facebook Audience Insights – czyli czym interesują się polscy użytkownicy Fac...
Facebook Audience Insights – czyli czym interesują się polscy użytkownicy Fac...
 
Human-in-the-loop (HILT) machine learning i augmentacja danych, czyli jak zbu...
Human-in-the-loop (HILT) machine learning i augmentacja danych, czyli jak zbu...Human-in-the-loop (HILT) machine learning i augmentacja danych, czyli jak zbu...
Human-in-the-loop (HILT) machine learning i augmentacja danych, czyli jak zbu...
 
Rozpoznawanie treści obrazów na kreacjach reklam na Facebooku z wykorzystanie...
Rozpoznawanie treści obrazów na kreacjach reklam na Facebooku z wykorzystanie...Rozpoznawanie treści obrazów na kreacjach reklam na Facebooku z wykorzystanie...
Rozpoznawanie treści obrazów na kreacjach reklam na Facebooku z wykorzystanie...
 
Predykcja efektywności działań marketingowych w serwisie Facebook
Predykcja efektywności działań marketingowych w serwisie FacebookPredykcja efektywności działań marketingowych w serwisie Facebook
Predykcja efektywności działań marketingowych w serwisie Facebook
 
Trenowanie i wdrażanie modeli uczenia maszynowego z wykorzystaniem Google Clo...
Trenowanie i wdrażanie modeli uczenia maszynowego z wykorzystaniem Google Clo...Trenowanie i wdrażanie modeli uczenia maszynowego z wykorzystaniem Google Clo...
Trenowanie i wdrażanie modeli uczenia maszynowego z wykorzystaniem Google Clo...
 
Wykrywanie mowy nienawiści w języku polskim
Wykrywanie mowy nienawiści w języku polskimWykrywanie mowy nienawiści w języku polskim
Wykrywanie mowy nienawiści w języku polskim
 
Federated Learning: Budowanie modeli uczenia maszynowego bez wglądu w rozpros...
Federated Learning: Budowanie modeli uczenia maszynowego bez wglądu w rozpros...Federated Learning: Budowanie modeli uczenia maszynowego bez wglądu w rozpros...
Federated Learning: Budowanie modeli uczenia maszynowego bez wglądu w rozpros...
 
Ślady cyfrowe - sposoby na analizowanie aktywności internautów i działań rekl...
Ślady cyfrowe - sposoby na analizowanie aktywności internautów i działań rekl...Ślady cyfrowe - sposoby na analizowanie aktywności internautów i działań rekl...
Ślady cyfrowe - sposoby na analizowanie aktywności internautów i działań rekl...
 
Bajki robotów? Machine Learning in Digital Marketing | Konferencja In Digital...
Bajki robotów? Machine Learning in Digital Marketing | Konferencja In Digital...Bajki robotów? Machine Learning in Digital Marketing | Konferencja In Digital...
Bajki robotów? Machine Learning in Digital Marketing | Konferencja In Digital...
 
Sztuczna inteligencja w marketingu | Infoshare 2019
Sztuczna inteligencja w marketingu | Infoshare 2019Sztuczna inteligencja w marketingu | Infoshare 2019
Sztuczna inteligencja w marketingu | Infoshare 2019
 
Pragmatic Machine Learning in Business
Pragmatic Machine Learning in BusinessPragmatic Machine Learning in Business
Pragmatic Machine Learning in Business
 
Wykorzystanie Big Data i cyfrowego śladu w naukach psychologicznych i społecz...
Wykorzystanie Big Data i cyfrowego śladu w naukach psychologicznych i społecz...Wykorzystanie Big Data i cyfrowego śladu w naukach psychologicznych i społecz...
Wykorzystanie Big Data i cyfrowego śladu w naukach psychologicznych i społecz...
 
Jak wykorzystać social media w badaniach i jak przełożyć to na decyzje związa...
Jak wykorzystać social media w badaniach i jak przełożyć to na decyzje związa...Jak wykorzystać social media w badaniach i jak przełożyć to na decyzje związa...
Jak wykorzystać social media w badaniach i jak przełożyć to na decyzje związa...
 
Obsługa klienta w social media
Obsługa klienta w social mediaObsługa klienta w social media
Obsługa klienta w social media
 
Jakimi wartościami kieruje się Twoja grupa docelowa? [Listonic Case Study]
Jakimi wartościami kieruje się Twoja grupa docelowa? [Listonic Case Study]Jakimi wartościami kieruje się Twoja grupa docelowa? [Listonic Case Study]
Jakimi wartościami kieruje się Twoja grupa docelowa? [Listonic Case Study]
 
Każde pokolenie ma swój czas? Różnice generacyjne a dane z mediów społecznośc...
Każde pokolenie ma swój czas? Różnice generacyjne a dane z mediów społecznośc...Każde pokolenie ma swój czas? Różnice generacyjne a dane z mediów społecznośc...
Każde pokolenie ma swój czas? Różnice generacyjne a dane z mediów społecznośc...
 
Poszerzanie pola walki - czyli z kim tak naprawdę konkurujecie?
Poszerzanie pola walki - czyli z kim tak naprawdę konkurujecie? Poszerzanie pola walki - czyli z kim tak naprawdę konkurujecie?
Poszerzanie pola walki - czyli z kim tak naprawdę konkurujecie?
 
Mallkołaj rozdaje prezenty - Case Study z akcji Mall.pl i Los Videos
Mallkołaj rozdaje prezenty - Case Study z akcji Mall.pl i Los VideosMallkołaj rozdaje prezenty - Case Study z akcji Mall.pl i Los Videos
Mallkołaj rozdaje prezenty - Case Study z akcji Mall.pl i Los Videos
 

Prawdziwe oblicze tekstu, czyli jak rozmawiamy w sieci [WDI 2019]

  • 1. Prawdziwe oblicze tekstu, czyli jak rozmawiamy w sieci Rafał Wojdan, Jakub Nowacki Warszawskie Dni Informatyki 2019
  • 2. whoami 2 Rafał Wojdan Senior Machine Learning Engineer @ Sotrender Trainer @ Sages r.wojdan@sages.com.pl dr inż. Jakub Nowacki Lead Machine Learning Engineer @ Sotrender Trainer @ Sages
  • 6. Co to sentyment? Six basic emotions by Ekman
  • 7. Poziomy sentymentu (opcjonalnie) ● Document-level ● Sentence-level ● Phrase-level ● Feature-level https://nlp.stanford.edu/sentiment/treebank.html?w=humor%2Cn%27t
  • 8. Stare i nowe podejście do NLP https://www.upwork.com/hiring/for-clients/artificial-intelligence-and-natural-language-processing-in-big-data/
  • 11. Embeddings Glove FastText ELMo Bert Character level Context Attention Transformer (Bi-directional)
  • 12. Long short-term memory (LSTM) http://colah.github.io/posts/2015-08-Understanding-LSTMs/
  • 13. Przygotowanie danych w mediach społecznościowych CANT WAIT for the new season of #TwinPeaks YAAAAY \(^o^)/!!! @davidlynch CANT WAIT for the new season of _hashtag_TwinPeaks_ YAY _smiley_excited_! _mention_davidlynch_ _emoji_happy_ HASHTAG ELONGATED WORD SMILEY ELONGATED WORD MENTION EMOJI
  • 14. Przygotowanie danych w mediach społecznościowych Jutro mija miesiąc od premiery albumu _hashtag_instrukcjaobsługiświrów_ więc chyba już możemy zdradzić częściowo zawartość edycji specjalnej _emoji_smiling_face_with_sunglasses_ projekt _mention_forinstudiocom_
  • 15. Flair - State of the Art NLP Library ● Łatwość użycia state-of-the-art word embeddings takie jak GloVe, BERT, ELMo ● Tworzenie embedding’ów dokumentów jako kombinacja różnych embedding’ów słów ● Zawiera Flair Embedding ● Wspiera wiele języków ● Modelowanie takich zagadnień jak: ○ Named entity recognition (NER) ○ Part-of-speech tagging (PoS) ○ Klasyfikacja (Multi-class i Multi-label) ○ Language model ● Hyperparameters optimization ● PyTorch https://github.com/zalandoresearch/flair
  • 16. Flair - przykład klasyfikacji https://towardsdatascience.com/text-classification-with-state-of-the-art-nlp-library-flair-b541d7add21f ### Data load corpus = NLPTaskDataFetcher.load_classification_corpus(Path('./'), test_file='test.csv', dev_file='dev.csv', train_file='train.csv') ### Mixing word embeddings into document embeddings via LSTM word_embeddings = [WordEmbeddings('glove'), FlairEmbeddings('news-forward-fast'), FlairEmbeddings('news-backward-fast')] document_embeddings = DocumentLSTMEmbeddings(word_embeddings, hidden_size=512) ### Training classifier = TextClassifier(document_embeddings, label_dictionary=corpus.make_label_dictionary(), multi_label=False) trainer = ModelTrainer(classifier, corpus) trainer.train('./', max_epochs=10) ### Predict classifier = TextClassifier.load_from_file('./best-model.pt') sentence = Sentence('Hi. Yes mum, I will...') classifier.predict(sentence) print(sentence.labels) Result: ‘[ham (1.0)]’
  • 17. Flair - przykład klasyfikacji https://towardsdatascience.com/text-classification-with-state-of-the-art-nlp-library-flair-b541d7add21f ### Data load corpus = NLPTaskDataFetcher.load_classification_corpus(Path('./'), test_file='test.csv', dev_file='dev.csv', train_file='train.csv') ### Mixing word embeddings into document embeddings via LSTM word_embeddings = [WordEmbeddings('glove'), FlairEmbeddings('news-forward-fast'), FlairEmbeddings('news-backward-fast')] document_embeddings = DocumentLSTMEmbeddings(word_embeddings, hidden_size=512) ### Training classifier = TextClassifier(document_embeddings, label_dictionary=corpus.make_label_dictionary(), multi_label=False) trainer = ModelTrainer(classifier, corpus) trainer.train('./', max_epochs=10) ### Predict classifier = TextClassifier.load_from_file('./best-model.pt') sentence = Sentence('Hi. Yes mum, I will...') classifier.predict(sentence) print(sentence.labels) Result: ‘[ham (1.0)]’
  • 18. [Wyniki] http://nlpprogress.com/english/sentiment_analysis.html Task Score Our SemEval-2017 Task 4 Subtask A (Pos, Neg, Neu) F1-score 0.685 F1-score 0.647 SemEval 2018 Task 1E-c (Emotions) Macro-F1 56.1 - SST-2 binary sentiment Accuracy: 95.6% - Model Score LSTM + Flair on Polish Common Crawl Accuracy: 91.47% LSTM + Multi-Language Flair (English, German, French, Italian, Dutch, Polish) Accuracy: 87.79% LSTM + Multi-Language BERT Accuracy: 82.5% Przykłady State-of-the art dla klasyfikacji sentymenty Wyniki eksperymentów na naszych danych w j. polskim
  • 19. Co to znaczy dobrze? http://blog.archisnapper.com/done-is-better-than-perfect-also-for-architects/