Natural Language
Processing (NLP)
Introduction
Nella Zabrina
NLP Engineer @ Prosa.ai
Outline
1
2
3
What is NLP?
NLP Tasks
Challenges in NLP
4
5
6
Text Processing in
NLP
NLP Toolkit
Question & Answer
2
What is NLP?
NLP?
Machine Translation
Machine translation menerjemahkan teks dari suatu bahasa ke
bahasa lain secara otomatis.
4
NLP?
Keyword Suggestion
Keyword suggestion menyarankan kata
tambahan pada query ketika pencarian.
5
NLP?
News Classification
● News classification
mengelompokkan artikel
berdasarkan topik tertentu.
● Mengelompokkan berdasarkan
judul dan/atau konten berita.
● Pembaca berita mudah memilih
topik yang diminati.
6
NLP?
Email Classification
● Email classification mengelompokkan
email ke dalam kategori.
● Pembaca mudah membuka email
dengan kategori yang dibutuhkan.
7
NLP?
Spam Detection
● Spam detection mendeteksi
email spam.
● Email spam: email yang
mengganggu pengguna.
8
NLP?
Rude Word Sensor
● Rude Word Sensor memfilter kata
kasar yang mengganggu pengguna lain.
9
NLP?
Sentiment Analysis
● Sentiment Analysis untuk
mendeteksi sentimen.
● Untuk memonitor opini &
menangkap respon masyarakat
terhadap produk.
10
SENTIMENT NETRAL
Buat yang ingin mendapatkan bantuan kuota internet gratis, silahkan baca blog
post berikut, yaa https://t.co/p7PG1KC6aZ #KuotaGratissmartfren
#SmartfrenCommunity #KuotaNonstop #AntiPutusNyambung Terus
SENTIMENT POSITIF & NEGATIF
Alhamdulillah paket bantuan kuota sudah datang. Tapii, agak aneeh. Kok masa
aktifnya nol hari ini? Jadi harus beli pulsa dulu baru bisa dipake doong, terus
pulsanya abis di akhir bulan gegera offside pake kuota
NLP?
Chatbot
● Chatbot untuk berdialog
antar pengguna dan chat
agent
● NLP pada Chatbot untuk
memahami maksud dialog
dan memberikan respon
11
Chatbot Prosa.ai
NLP?
Autocomplete, Autocorrect, & Spell Checker
Autocorrect Grammar
Autocomplete
Spell Checker
● Autocomplete, autocorrect, &
spell checker sebagai asisten
pengguna saat menulis.
● Memberikan rekomendasi tulisan
yang dapat ditulis oleh pengguna.
12
NLP?
Speech to Text (STT) & Text to Speech (TTS)
Speech to Text Text to Speech
Speech to Text
● STT/Automatic Speech Recognition &
TTS mengkonversi bahasa alami dari
satu bentuk ke bentuk lainnya.
● Tantangan TTS: intonasi, pemenggalan
kata, emosi, dsb
● Tantangan STT: noise, aksen/logat,
suara lebih dari 1 orang, dsb
13
NLP?
Question Answering
● Question Answering
memprediksi jawaban
atas pertanyaan dari
teks.
Sumber: Building a Question-Answering System from Scratch
14
Natural Language Processing
(NLP) is a tract of Artificial
Intelligence and Linguistics,
devoted to make computers
understand the statements
or words written in human
languages.
- Khurana, Diksha, dkk (2017)[2]
Natural Language Processing
(NLP) as an area of research
and application that explores
how computers can be used
to understand and
manipulate natural
language text or speech to
do useful things.
- Joseph, R. Sethunya, dkk (2016)[1]
sumber: [1] paper 1 & [2] paper 2
2010s
- MT menggunakan NMT
- Amazon Alexa, Siri
2000s
- Google Translate
(statistic-based/SMT)
1990s
- Dragon: software ASR
- Statistical NLP
1980s
- Boneka Julie
- Jabberwacky
1970s
- Riset Speech
Understanding (DARPA)
1960s
- IBM Shoebox
- Eliza
Brief History of NLP
16
1950s
- Teori dasar: automata
- 1st Computer Based TTS
Teori AutomataIBM Shoebox
ELIZA
Julie Doll
Dragon Dictate
Google Translate
Amazon Alexa
NLP Tasks
NLP Task Classification
Natural Language Understanding (NLU)
Natural Language Generation (NLG)
18
NLP Task Classification (cont.)
sumber: Natural Language Processing: State of The
Art, Current Trends and Challenges 19
NLP Task Classification (cont.)
● Natural Language Understanding:
○ Phonology: suara
○ Morphology: pembentukan kata
○ Syntax: struktur kalimat
○ Semantic dan pragmatic: arti
● Natural Language Generation untuk menghasilkan natural
language text (frasa, kalimat dan paragraf)
20
Natural Language Understanding (NLU):
Application
21
Syntax Analysis
● menganalisa dan dekomposisi struktur kalimat.
● Contoh syntax analysis task:
a. Tokenizer, Lemmatizer, Stemmer
Tokenizer: memecah kalimat menjadi token/kata
Lemmatizer: menentukan kata dasar dengan mencari lemma word
Stemmer: menentukan kata dasar dengan membuang imbuhan
22
Syntax Analysis (cont.)
a. Tokenizer, Lemmatizer, Stemmer (cont.)
Contoh kalimat:
“Dia terkena kutukan karena durhaka pada orang tua.”
23
- Tokenizer
Output: [“dia”, “terkena”, “kutukan”, “karena”, “durhaka”, “pada”, “orang”, “tua”]
- Lemmatizer
Output: [“dia”, “kena”, “kutuk”, “karena”, “durhaka”, “pada”, “orang”, “tua”]
- Stemmer
Output: [“dia”, “kena”, “kutu”, “karena”, “durhaka”, “pada”, “orang”, “tua”]
Syntax Analysis (cont.)
b. Part of Speech Tagger (POS Tagger)
● pengkategorian tiap kata ke dalam POS tag
● Salah satu POS: Penn Treebank POS.
Tag Description
NN Noun, singular or
mass
VB Verb, base form
VBD Verb, past tense
RB Adverb
JJ Adjective
Beberapa Contoh Tag
pada Penn Treebank POS
24
Syntax Analysis (cont.)
b. Part of Speech Tagger (POS Tagger) (cont.)
POS Tag untuk:
● mencari kata dasar pada lemmatizer
● mengekstrak tag yang tidak penting (eg. tag conjunction dibuang).
25
Syntax Analysis (cont.)
b. Part of Speech Tagger (POS Tagger) (cont.)
Contoh kalimat:
“Adik membeli permen banyak sekali.”
Hasil POS Tag:
{“Adik” → NN, “membeli” → VB, “permen” → NN”, “banyak” → JJ}
26
Syntax Analysis (cont.)
c. Constituent Parser & Dependency Parser
● Constituent Parser
untuk menampilkan struktur sintaksis kalimat.
● Dependency Parser
untuk menampilkan hubungan ketergantungan antar kata.
27
28
Sumber: Parsing - NLP 2016 - Michael Elhadad
Syntax Analysis (cont.)
c. Constituent Parser & Dependency Parser (cont.)
Kegunaan:
● Constituent Parser
○ memahami grammar dari kalimat
○ Mengekstrak frasa pada kalimat
● Dependency Parser
○ Ekstraksi kata negasi
○ membantu implementasi Question & Answering
○ memahami kalimat free word order languages eg. Latin
29
Text Classification
● Untuk meng-assign teks ke kategori tertentu.
● Teks sudah dilabeli
● Output kelas.
● Contoh task:
○ News Classification: Sport, Health, Finance, Politics, Technology
○ Hate Speech Detection: Yes, No
○ Plagiarism Detection: Yes, No
○ Hoax News Detection: Yes, No
○ Sentiment Classification: Positive, Negative, Neutral
30
Topic Detection
● Untuk mendeteksi topik pada teks
● Contoh topic detection task:
a. Keyword detection
Untuk mendapatkan kata kunci penting
Contoh keyword detection:
“Tahun lalu adalah tahun yang mengesankan untukku
karena aku diajak berlibur setiap ada liburan panjang.”
Keyword yang didapat:
Tahun lalu, liburan, mengesankan
31
Topic Detection (cont.)
a. Keyword detection (cont.)
sumber: Contoh Teks Berita Singkat
Keyword yang didapat:
Kabut asap,
Palangkaraya, pekat,
kebakaran lahan
gambut, sesak nafas,
jarak pandangan
terbatas
Contoh lain: pencarian keyword pada berita.
32
Topic Detection (cont.)
b. Topic Modelling
● Untuk mendeteksi topik dari sekumpulan teks.
● teks belum dilabeli.
● Salah satu teknik untuk menyelesaikan task ini adalah Latent Dirichlet
Allocation (LDA).
33
Information Extraction
● Untuk mengekstrak informasi dari teks.
● Contoh Information Extraction task:
a. Transformasi informasi yang tidak terstruktur (teks) menjadi
terstruktur
Informasi penting dari teks diekstrak menjadi format terstruktur
(eg. tabel atau json)
34
Information Extraction (cont.)
a. Transformasi informasi yang tidak terstruktur (teks) menjadi terstruktur (cont.)
Contoh informasi
tidak terstruktur:
... ... ... ....
.... ... ... ...
sumber: Pemerintah indonesia
himbau masyarakat berhati
Contoh hasil transformasi menjadi
informasi terstruktur:
35
Information Extraction (cont.)
b. Named Entity Recognizer (NER)
● Untuk mengkategorikan entitas bernama.
● Untuk mendeteksi nama orang, nama tempat, dsb
● Contoh NER:
sumber: Gambar NER
36
Information Extraction (cont.)
b. Named Entity Recognizer (NER) (cont.)
● Contoh pengaplikasian NER:
○ Question & Answering
- mencari jawaban relevan.
- Contoh: pertanyaan “Kapan?” jawabannya NE “waktu”.
○ News Classification
- mencari topik paling relevan untuk berita.
- Contoh: NE “Lionel Messi” pada teks, probabilitas topik paling
tinggi adalah Sports.
37
Information Extraction (cont.)
● Apa yang terjadi (What) ? Banjir
● Siapa yang terlibat (Who)? Warga dan
Siswa Sekolah
● Dimana peristiwa terjadi (Where)?
Rangkasbitung, Lebak Banten
● Kapan terjadi (When)? Sabtu sore
● Kenapa peristiwa tersebut terjadi (Why)?
Karena hujan deras selama 3 hari
● Bagaimana peristiwa terjadi (How)?
hujan deras 3 hari membuat banjir tinggi
sehingga siswa harus menerjang banjir.
sumber: Contoh Teks Berita Singkat
c. Ekstraksi Teks Berita 5W1H
38
Information Extraction (cont.)
d. Quotation Extraction
Mendapatkan informasi kutipan dan penulis/pembicara kutipan.
Contoh kalimat:
Nelson Mandela berkata “It always seems impossible until it's done”.
Hasil yang didapatkan:
Penulis/pembicara: Nelson Mandela
Kutipan: It always seems impossible until it's done.
39
Natural Language Generation (NLG):
Application
40
Word Normalization
● Normalisasi kalimat tidak standar menjadi standar.
● Bentuk tidak standar seperti:
○ kata yang disingkat: km→ kamu, aq → aku, s7 → setuju
○ kata tidak baku yang sering dianggap baku: jaman → zaman
○ slang word: gokil → gila, bokap → ayah
● Contoh word normalization:
udah mkn blm? → sudah makan belum?
41
Summarization
● Untuk meringkas teks.
● Bentuk summarization:
○ 1 dokumen menjadi teks ringkas
○ Multi dokumen menjadi 1 teks.
1 dokumen menjadi 1 teks Multi dokumen menjadi 1 teks
42
Summarization (cont.)
2 jenis summarization:
a. Ekstraktif
Disusun dari kalimat paling informatif pada teks.
b. Abstraktif
Disusun sesuai semantik dari teks.
Lebih sulit diterapkan dibandingkan ekstraktif.
43
Text Generator
● Membentuk teks berdasarkan input (eg. kata/kalimat singkat).
● Contoh artikel AI generator artikel: https://notrealnews.net/.
● Contoh Teks Generator:
○ Mengenerate artikel dari data prakiraan cuaca
○ Menggunakan http://ai-writer.com/.
○ Input:
Jakarta, Forecast, Light Rain, 23 November 2020
44
Text Generator (cont.)
● Result:
45
Paraphrase
● Untuk mengubah teks menjadi teks lain dengan gaya penulisan berbeda
dengan arti yang sama.
● Contoh parafrase:
○ Tulisan formal → informal
○ Gaya penulisan perempuan → gaya penulisan laki-laki
○ Tulisan ilmiah → tulisan dengan kalimat simpel (simplifikasi kata)
46
Paraphrase (cont.)
● Contoh paraphrase menggunakan http://ai-writer.com/.
● Kalimat dari Wikipedia yang akan diparaphrase:
●
● Hasil paraphrase:
47
NLU and NLG: Application
48
Machine Translation
● Untuk menerjemahkan teks ke bahasa lain
● Cara membangun Machine Translation:
rule based (RBMT), statistical (SMT), dan neural network (NMT).
● Contoh Machine Translation:
49
Machine Translation (cont.)
50
sumber: Vauquois Triangle
NLU NLG
Vauquois Triangle
Conversational Agent
● Conversational Agent (CA)/Dialogue System
untuk bercakap-cakap antar manusia dan agen
● Contoh: Siri, Cortana, Amazon Alexa
51
Siri
Sumber: Introduction - Siri -
Human Interface Guidelines
Amazon Speaker with Alexa
Sumber: Amazon Amazon Echo
Dot 3rd Gen Anthracite Black -
Smart Speaker Alexa
Conversational Agent (cont.)
Representasi
menerima
sinyal suara
menyampaikan
informasi
memproses
informasi
menyampaikan
informasi
mengutarakan dalam
sinyal suara
sinyal
suara
rangkaian
kata
rangkaian
kata
sinyal
suara
Informasi
Pemrosesan
bahasa
Automatic Speech
Recognition (ASR)
Natural Language
Understanding (NLU)
Natural Language
Generation (NLG)
Speech Synthesis
(TTS)
Dialogue Management
(DM)
Komponen Dialog
Sistem
52
Conversational Agent (cont.)
Komponen Conversational Agent:
● Automatic Speech Recognition/STT: mengkonversi sinyal suara menjadi
teks (rangkaian kata)
● NLU: memahami informasi dari rangkaian kata yang dikatakan speaker
● Dialogue Management: memproses informasi
● NLG: merangkai kata agar agent dapat menyampaikan informasi ke
speaker
● TTS: rangkaian kata (teks) dikonversi menjadi sinyal suara untuk diucapkan
oleh agent
53
Challenges in NLP
- Ambigu (at all levels)
● Lexical (word’s meaning)
Kemarin dia datang memberi tahu.
● Syntactic
Cahyo mengejar anak itu dengan mobil sedan.
● Semantic
John berlibur dengan istrinya, begitu juga Sam.
Challenges in NLP
55
Challenges in NLP
- Ambigu (at all levels)
● Pragmatic
○ Jam berapa sekarang?
artinya bisa 2:
- menanyakan jam (arti sebenarnya)
- menyindir/marah karena orang lain terlambat
○ Pak, saya izin untuk kebelakang.
artinya bisa 2:
- ke bagian belakang (arti sebenarnya)
- kamar mandi/toilet
56
Challenges in NLP
- Ambigu
● Multiword expression
Jalan: Tempat lalu lintas orang (kendaraan dsb)
Tikus: hewan pengerat; hama berbulu berekor panjang
Jalan tikus: jalan tembus/jalannya tikus
57
Challenges in NLP
- Bahasa yang berkembang
● Kata baru pada KBBI:
daring, luring, gawai, swafoto, warganet, tetikus,
pramusiwi, pratayang, komedi tunggal, dst
● Slang words
Mantul, baper, mager, galau, woles
● Multi-language
- Oh my God, dia cantik banget
- Nanti nek misale Pak Roni udah nyampe, kamu
kabari aku ya
58
Challenges in NLP
- Bahasa yang kompleks
● Containing hidden variables
contoh: Human knowledge
Pagi == setelah matahari terbit dan sebelum jam 12 siang
● Jumlah kata banyak sekali (seems infinite)
- Banyak kata, arti, dan konteks
- Mungkin ada kata yang tidak pernah ditemui
59
Text Processing in NLP
Why Text Needs to be Processed?
61
semakin panjang teks, kata semakin banyak.
semakin banyak kata yang diproses, proses semakin berat dan lama.
Why Text Needs to be Processed?
● Zipf Law:
jumlah kata berbanding terbalik dengan ranking kemunculan kata.
● Dari n-top words, ternyata mayoritas kata insignifikan
62sumber: Top hundred words zipf law
63
Basic Text Cleaning Pipeline
Raw Text Tokenization
Text Cleaning
POS Tag
Stopwords
Lemmatization/S
temming
Cleaned
Text
Text Cleaning Pipeline
1. Tokenizer
● Memecah kalimat menjadi token/kata
● Sentence Segmentation: Pemenggalan per kalimat
2. Text Cleaning
● Jarang mendapatkan data bersih → perlu dibersihkan
● Cara membersihkan:
menghapus tag HTML, tanda baca, whitespaces, URL, dsb.
● Tujuan: pemrosesan lebih cepat
64
Text Cleaning Pipeline
3. POS Tag
● Pelabelan tiap kata ke dalam POS tag
● Untuk Lemmatization atau membuang tag insignifikan
4. Stopwords
● Stopwords: token dengan arti insignifikan
● Contoh: konjungsi, partikel, determiner.
● Tujuan:
- pemrosesan lebih cepat
- kata insignifikan tidak mengganggu pengambilan informasi
65
Text Cleaning Pipeline
4. Stopwords (cont.)
● Kata insignifikan tidak mengganggu pengambilan informasi maksudnya:
○ Merujuk ke gambar Zipf Law
66
○ top n kata banyak berisikan stopword
○ Jika tidak dibuang, keyword penting
tenggelam
karena ranking atas diduduki oleh
stopword yang insignifikan artinya.
sumber: Top hundred words zipf law
Text Cleaning Pipeline
5. Lemmatization/Stemming
● Mengubah inflected word menjadi bentuk dasar
● Tujuan: representasi kata inflected dan kata dasar tidak dianggap
berbeda
67
After Cleaning Text
● Salah satu cara penyelesaian task dengan machine learning.
● Machine learning hanya menerima tipe numerik
● Teks perlu diubah menjadi tipe numerik
68
Converting Text to Vector
Konversi teks ke vektor: (paling sederhana)
● Bag of Words
- Tiap kata disimpan dalam kantong berbeda
- Nilai yang disimpan dalam kantong: frekuensi kemunculan kata
69
Converting Text to Vector
● Bag of Words (cont.)
Contoh kalimat:
○ Review 1: This movie is very scary and long
○ Review 2: This movie is not scary and is slow
70
Vektor yang terbentuk:
○ Vector Review 1: [1 1 1 1 1 1 1 0 0 0 0]
○ Vector Review 2: [1 1 2 0 0 1 1 0 1 0 0]
sumber: BoW Model and TF-IDF For
Creating Feature From Text
Converting Text to Vector
● Bag of Words (cont.)
- Mudah diimplementasi dan dipahami
- Drawback BOW:
○ Kalimat baru → vocab bertambah → vektor memanjang
○ Hasil sparse matrix yang high computation cost
○ Tidak menyimpan informasi grammar/urutan kata
71
NLP Toolkit
NLTK Toolkit
73
NLTK untuk Pemrosesan NLP
seperti Tokenization dan
Sentiment Analysis
Spacy untuk Pemrosesan NLP
seperti syntactic parser, NER,
dan Displacy visualization
Gensim untuk pemrosesan
NLP seperti word2vec
Stanford NLP untuk Pemrosesan
NLP seperti Named Entity
Extraction bahasa Ibrani, Arab, dll
Allen NLP untuk memudahkan
pembangunan model NLP
Flair untuk pemrosesan NLP seperti
pretrained model
NLTK Toolkit
74
Datasaur.ai untuk labeling
data
Sastrawi untuk stemming
Bahasa Indonesia
Prosa.ai menyediakan
berbagai macam API
pemrosesan NLP Bahasa
Indonesia
Prosa.ai API
● API gratis 1.000 call per bulan.
● Dapat diakses di console.prosa.ai
● Banyak API tersedia, ada API khusus NLP & vision.
● API Prosa.ai NLP:
○ Syntactic Analyzer
○ Word Normalizer
○ Named Entities Extractor
○ Hate Speech Detector
○ dsb
75
Prosa.ai API
● Secret key didapatkan ketika
membuat akun untuk
pemanggilan API.
“udah mkn blm?” → “sudah makan belum?”
76
77

Week 1 Natural Language Processing Introduction

  • 1.
  • 2.
    Outline 1 2 3 What is NLP? NLPTasks Challenges in NLP 4 5 6 Text Processing in NLP NLP Toolkit Question & Answer 2
  • 3.
  • 4.
    NLP? Machine Translation Machine translationmenerjemahkan teks dari suatu bahasa ke bahasa lain secara otomatis. 4
  • 5.
    NLP? Keyword Suggestion Keyword suggestionmenyarankan kata tambahan pada query ketika pencarian. 5
  • 6.
    NLP? News Classification ● Newsclassification mengelompokkan artikel berdasarkan topik tertentu. ● Mengelompokkan berdasarkan judul dan/atau konten berita. ● Pembaca berita mudah memilih topik yang diminati. 6
  • 7.
    NLP? Email Classification ● Emailclassification mengelompokkan email ke dalam kategori. ● Pembaca mudah membuka email dengan kategori yang dibutuhkan. 7
  • 8.
    NLP? Spam Detection ● Spamdetection mendeteksi email spam. ● Email spam: email yang mengganggu pengguna. 8
  • 9.
    NLP? Rude Word Sensor ●Rude Word Sensor memfilter kata kasar yang mengganggu pengguna lain. 9
  • 10.
    NLP? Sentiment Analysis ● SentimentAnalysis untuk mendeteksi sentimen. ● Untuk memonitor opini & menangkap respon masyarakat terhadap produk. 10 SENTIMENT NETRAL Buat yang ingin mendapatkan bantuan kuota internet gratis, silahkan baca blog post berikut, yaa https://t.co/p7PG1KC6aZ #KuotaGratissmartfren #SmartfrenCommunity #KuotaNonstop #AntiPutusNyambung Terus SENTIMENT POSITIF & NEGATIF Alhamdulillah paket bantuan kuota sudah datang. Tapii, agak aneeh. Kok masa aktifnya nol hari ini? Jadi harus beli pulsa dulu baru bisa dipake doong, terus pulsanya abis di akhir bulan gegera offside pake kuota
  • 11.
    NLP? Chatbot ● Chatbot untukberdialog antar pengguna dan chat agent ● NLP pada Chatbot untuk memahami maksud dialog dan memberikan respon 11 Chatbot Prosa.ai
  • 12.
    NLP? Autocomplete, Autocorrect, &Spell Checker Autocorrect Grammar Autocomplete Spell Checker ● Autocomplete, autocorrect, & spell checker sebagai asisten pengguna saat menulis. ● Memberikan rekomendasi tulisan yang dapat ditulis oleh pengguna. 12
  • 13.
    NLP? Speech to Text(STT) & Text to Speech (TTS) Speech to Text Text to Speech Speech to Text ● STT/Automatic Speech Recognition & TTS mengkonversi bahasa alami dari satu bentuk ke bentuk lainnya. ● Tantangan TTS: intonasi, pemenggalan kata, emosi, dsb ● Tantangan STT: noise, aksen/logat, suara lebih dari 1 orang, dsb 13
  • 14.
    NLP? Question Answering ● QuestionAnswering memprediksi jawaban atas pertanyaan dari teks. Sumber: Building a Question-Answering System from Scratch 14
  • 15.
    Natural Language Processing (NLP)is a tract of Artificial Intelligence and Linguistics, devoted to make computers understand the statements or words written in human languages. - Khurana, Diksha, dkk (2017)[2] Natural Language Processing (NLP) as an area of research and application that explores how computers can be used to understand and manipulate natural language text or speech to do useful things. - Joseph, R. Sethunya, dkk (2016)[1] sumber: [1] paper 1 & [2] paper 2
  • 16.
    2010s - MT menggunakanNMT - Amazon Alexa, Siri 2000s - Google Translate (statistic-based/SMT) 1990s - Dragon: software ASR - Statistical NLP 1980s - Boneka Julie - Jabberwacky 1970s - Riset Speech Understanding (DARPA) 1960s - IBM Shoebox - Eliza Brief History of NLP 16 1950s - Teori dasar: automata - 1st Computer Based TTS Teori AutomataIBM Shoebox ELIZA Julie Doll Dragon Dictate Google Translate Amazon Alexa
  • 17.
  • 18.
    NLP Task Classification NaturalLanguage Understanding (NLU) Natural Language Generation (NLG) 18
  • 19.
    NLP Task Classification(cont.) sumber: Natural Language Processing: State of The Art, Current Trends and Challenges 19
  • 20.
    NLP Task Classification(cont.) ● Natural Language Understanding: ○ Phonology: suara ○ Morphology: pembentukan kata ○ Syntax: struktur kalimat ○ Semantic dan pragmatic: arti ● Natural Language Generation untuk menghasilkan natural language text (frasa, kalimat dan paragraf) 20
  • 21.
    Natural Language Understanding(NLU): Application 21
  • 22.
    Syntax Analysis ● menganalisadan dekomposisi struktur kalimat. ● Contoh syntax analysis task: a. Tokenizer, Lemmatizer, Stemmer Tokenizer: memecah kalimat menjadi token/kata Lemmatizer: menentukan kata dasar dengan mencari lemma word Stemmer: menentukan kata dasar dengan membuang imbuhan 22
  • 23.
    Syntax Analysis (cont.) a.Tokenizer, Lemmatizer, Stemmer (cont.) Contoh kalimat: “Dia terkena kutukan karena durhaka pada orang tua.” 23 - Tokenizer Output: [“dia”, “terkena”, “kutukan”, “karena”, “durhaka”, “pada”, “orang”, “tua”] - Lemmatizer Output: [“dia”, “kena”, “kutuk”, “karena”, “durhaka”, “pada”, “orang”, “tua”] - Stemmer Output: [“dia”, “kena”, “kutu”, “karena”, “durhaka”, “pada”, “orang”, “tua”]
  • 24.
    Syntax Analysis (cont.) b.Part of Speech Tagger (POS Tagger) ● pengkategorian tiap kata ke dalam POS tag ● Salah satu POS: Penn Treebank POS. Tag Description NN Noun, singular or mass VB Verb, base form VBD Verb, past tense RB Adverb JJ Adjective Beberapa Contoh Tag pada Penn Treebank POS 24
  • 25.
    Syntax Analysis (cont.) b.Part of Speech Tagger (POS Tagger) (cont.) POS Tag untuk: ● mencari kata dasar pada lemmatizer ● mengekstrak tag yang tidak penting (eg. tag conjunction dibuang). 25
  • 26.
    Syntax Analysis (cont.) b.Part of Speech Tagger (POS Tagger) (cont.) Contoh kalimat: “Adik membeli permen banyak sekali.” Hasil POS Tag: {“Adik” → NN, “membeli” → VB, “permen” → NN”, “banyak” → JJ} 26
  • 27.
    Syntax Analysis (cont.) c.Constituent Parser & Dependency Parser ● Constituent Parser untuk menampilkan struktur sintaksis kalimat. ● Dependency Parser untuk menampilkan hubungan ketergantungan antar kata. 27
  • 28.
    28 Sumber: Parsing -NLP 2016 - Michael Elhadad
  • 29.
    Syntax Analysis (cont.) c.Constituent Parser & Dependency Parser (cont.) Kegunaan: ● Constituent Parser ○ memahami grammar dari kalimat ○ Mengekstrak frasa pada kalimat ● Dependency Parser ○ Ekstraksi kata negasi ○ membantu implementasi Question & Answering ○ memahami kalimat free word order languages eg. Latin 29
  • 30.
    Text Classification ● Untukmeng-assign teks ke kategori tertentu. ● Teks sudah dilabeli ● Output kelas. ● Contoh task: ○ News Classification: Sport, Health, Finance, Politics, Technology ○ Hate Speech Detection: Yes, No ○ Plagiarism Detection: Yes, No ○ Hoax News Detection: Yes, No ○ Sentiment Classification: Positive, Negative, Neutral 30
  • 31.
    Topic Detection ● Untukmendeteksi topik pada teks ● Contoh topic detection task: a. Keyword detection Untuk mendapatkan kata kunci penting Contoh keyword detection: “Tahun lalu adalah tahun yang mengesankan untukku karena aku diajak berlibur setiap ada liburan panjang.” Keyword yang didapat: Tahun lalu, liburan, mengesankan 31
  • 32.
    Topic Detection (cont.) a.Keyword detection (cont.) sumber: Contoh Teks Berita Singkat Keyword yang didapat: Kabut asap, Palangkaraya, pekat, kebakaran lahan gambut, sesak nafas, jarak pandangan terbatas Contoh lain: pencarian keyword pada berita. 32
  • 33.
    Topic Detection (cont.) b.Topic Modelling ● Untuk mendeteksi topik dari sekumpulan teks. ● teks belum dilabeli. ● Salah satu teknik untuk menyelesaikan task ini adalah Latent Dirichlet Allocation (LDA). 33
  • 34.
    Information Extraction ● Untukmengekstrak informasi dari teks. ● Contoh Information Extraction task: a. Transformasi informasi yang tidak terstruktur (teks) menjadi terstruktur Informasi penting dari teks diekstrak menjadi format terstruktur (eg. tabel atau json) 34
  • 35.
    Information Extraction (cont.) a.Transformasi informasi yang tidak terstruktur (teks) menjadi terstruktur (cont.) Contoh informasi tidak terstruktur: ... ... ... .... .... ... ... ... sumber: Pemerintah indonesia himbau masyarakat berhati Contoh hasil transformasi menjadi informasi terstruktur: 35
  • 36.
    Information Extraction (cont.) b.Named Entity Recognizer (NER) ● Untuk mengkategorikan entitas bernama. ● Untuk mendeteksi nama orang, nama tempat, dsb ● Contoh NER: sumber: Gambar NER 36
  • 37.
    Information Extraction (cont.) b.Named Entity Recognizer (NER) (cont.) ● Contoh pengaplikasian NER: ○ Question & Answering - mencari jawaban relevan. - Contoh: pertanyaan “Kapan?” jawabannya NE “waktu”. ○ News Classification - mencari topik paling relevan untuk berita. - Contoh: NE “Lionel Messi” pada teks, probabilitas topik paling tinggi adalah Sports. 37
  • 38.
    Information Extraction (cont.) ●Apa yang terjadi (What) ? Banjir ● Siapa yang terlibat (Who)? Warga dan Siswa Sekolah ● Dimana peristiwa terjadi (Where)? Rangkasbitung, Lebak Banten ● Kapan terjadi (When)? Sabtu sore ● Kenapa peristiwa tersebut terjadi (Why)? Karena hujan deras selama 3 hari ● Bagaimana peristiwa terjadi (How)? hujan deras 3 hari membuat banjir tinggi sehingga siswa harus menerjang banjir. sumber: Contoh Teks Berita Singkat c. Ekstraksi Teks Berita 5W1H 38
  • 39.
    Information Extraction (cont.) d.Quotation Extraction Mendapatkan informasi kutipan dan penulis/pembicara kutipan. Contoh kalimat: Nelson Mandela berkata “It always seems impossible until it's done”. Hasil yang didapatkan: Penulis/pembicara: Nelson Mandela Kutipan: It always seems impossible until it's done. 39
  • 40.
    Natural Language Generation(NLG): Application 40
  • 41.
    Word Normalization ● Normalisasikalimat tidak standar menjadi standar. ● Bentuk tidak standar seperti: ○ kata yang disingkat: km→ kamu, aq → aku, s7 → setuju ○ kata tidak baku yang sering dianggap baku: jaman → zaman ○ slang word: gokil → gila, bokap → ayah ● Contoh word normalization: udah mkn blm? → sudah makan belum? 41
  • 42.
    Summarization ● Untuk meringkasteks. ● Bentuk summarization: ○ 1 dokumen menjadi teks ringkas ○ Multi dokumen menjadi 1 teks. 1 dokumen menjadi 1 teks Multi dokumen menjadi 1 teks 42
  • 43.
    Summarization (cont.) 2 jenissummarization: a. Ekstraktif Disusun dari kalimat paling informatif pada teks. b. Abstraktif Disusun sesuai semantik dari teks. Lebih sulit diterapkan dibandingkan ekstraktif. 43
  • 44.
    Text Generator ● Membentukteks berdasarkan input (eg. kata/kalimat singkat). ● Contoh artikel AI generator artikel: https://notrealnews.net/. ● Contoh Teks Generator: ○ Mengenerate artikel dari data prakiraan cuaca ○ Menggunakan http://ai-writer.com/. ○ Input: Jakarta, Forecast, Light Rain, 23 November 2020 44
  • 45.
  • 46.
    Paraphrase ● Untuk mengubahteks menjadi teks lain dengan gaya penulisan berbeda dengan arti yang sama. ● Contoh parafrase: ○ Tulisan formal → informal ○ Gaya penulisan perempuan → gaya penulisan laki-laki ○ Tulisan ilmiah → tulisan dengan kalimat simpel (simplifikasi kata) 46
  • 47.
    Paraphrase (cont.) ● Contohparaphrase menggunakan http://ai-writer.com/. ● Kalimat dari Wikipedia yang akan diparaphrase: ● ● Hasil paraphrase: 47
  • 48.
    NLU and NLG:Application 48
  • 49.
    Machine Translation ● Untukmenerjemahkan teks ke bahasa lain ● Cara membangun Machine Translation: rule based (RBMT), statistical (SMT), dan neural network (NMT). ● Contoh Machine Translation: 49
  • 50.
    Machine Translation (cont.) 50 sumber:Vauquois Triangle NLU NLG Vauquois Triangle
  • 51.
    Conversational Agent ● ConversationalAgent (CA)/Dialogue System untuk bercakap-cakap antar manusia dan agen ● Contoh: Siri, Cortana, Amazon Alexa 51 Siri Sumber: Introduction - Siri - Human Interface Guidelines Amazon Speaker with Alexa Sumber: Amazon Amazon Echo Dot 3rd Gen Anthracite Black - Smart Speaker Alexa
  • 52.
    Conversational Agent (cont.) Representasi menerima sinyalsuara menyampaikan informasi memproses informasi menyampaikan informasi mengutarakan dalam sinyal suara sinyal suara rangkaian kata rangkaian kata sinyal suara Informasi Pemrosesan bahasa Automatic Speech Recognition (ASR) Natural Language Understanding (NLU) Natural Language Generation (NLG) Speech Synthesis (TTS) Dialogue Management (DM) Komponen Dialog Sistem 52
  • 53.
    Conversational Agent (cont.) KomponenConversational Agent: ● Automatic Speech Recognition/STT: mengkonversi sinyal suara menjadi teks (rangkaian kata) ● NLU: memahami informasi dari rangkaian kata yang dikatakan speaker ● Dialogue Management: memproses informasi ● NLG: merangkai kata agar agent dapat menyampaikan informasi ke speaker ● TTS: rangkaian kata (teks) dikonversi menjadi sinyal suara untuk diucapkan oleh agent 53
  • 54.
  • 55.
    - Ambigu (atall levels) ● Lexical (word’s meaning) Kemarin dia datang memberi tahu. ● Syntactic Cahyo mengejar anak itu dengan mobil sedan. ● Semantic John berlibur dengan istrinya, begitu juga Sam. Challenges in NLP 55
  • 56.
    Challenges in NLP -Ambigu (at all levels) ● Pragmatic ○ Jam berapa sekarang? artinya bisa 2: - menanyakan jam (arti sebenarnya) - menyindir/marah karena orang lain terlambat ○ Pak, saya izin untuk kebelakang. artinya bisa 2: - ke bagian belakang (arti sebenarnya) - kamar mandi/toilet 56
  • 57.
    Challenges in NLP -Ambigu ● Multiword expression Jalan: Tempat lalu lintas orang (kendaraan dsb) Tikus: hewan pengerat; hama berbulu berekor panjang Jalan tikus: jalan tembus/jalannya tikus 57
  • 58.
    Challenges in NLP -Bahasa yang berkembang ● Kata baru pada KBBI: daring, luring, gawai, swafoto, warganet, tetikus, pramusiwi, pratayang, komedi tunggal, dst ● Slang words Mantul, baper, mager, galau, woles ● Multi-language - Oh my God, dia cantik banget - Nanti nek misale Pak Roni udah nyampe, kamu kabari aku ya 58
  • 59.
    Challenges in NLP -Bahasa yang kompleks ● Containing hidden variables contoh: Human knowledge Pagi == setelah matahari terbit dan sebelum jam 12 siang ● Jumlah kata banyak sekali (seems infinite) - Banyak kata, arti, dan konteks - Mungkin ada kata yang tidak pernah ditemui 59
  • 60.
  • 61.
    Why Text Needsto be Processed? 61 semakin panjang teks, kata semakin banyak. semakin banyak kata yang diproses, proses semakin berat dan lama.
  • 62.
    Why Text Needsto be Processed? ● Zipf Law: jumlah kata berbanding terbalik dengan ranking kemunculan kata. ● Dari n-top words, ternyata mayoritas kata insignifikan 62sumber: Top hundred words zipf law
  • 63.
    63 Basic Text CleaningPipeline Raw Text Tokenization Text Cleaning POS Tag Stopwords Lemmatization/S temming Cleaned Text
  • 64.
    Text Cleaning Pipeline 1.Tokenizer ● Memecah kalimat menjadi token/kata ● Sentence Segmentation: Pemenggalan per kalimat 2. Text Cleaning ● Jarang mendapatkan data bersih → perlu dibersihkan ● Cara membersihkan: menghapus tag HTML, tanda baca, whitespaces, URL, dsb. ● Tujuan: pemrosesan lebih cepat 64
  • 65.
    Text Cleaning Pipeline 3.POS Tag ● Pelabelan tiap kata ke dalam POS tag ● Untuk Lemmatization atau membuang tag insignifikan 4. Stopwords ● Stopwords: token dengan arti insignifikan ● Contoh: konjungsi, partikel, determiner. ● Tujuan: - pemrosesan lebih cepat - kata insignifikan tidak mengganggu pengambilan informasi 65
  • 66.
    Text Cleaning Pipeline 4.Stopwords (cont.) ● Kata insignifikan tidak mengganggu pengambilan informasi maksudnya: ○ Merujuk ke gambar Zipf Law 66 ○ top n kata banyak berisikan stopword ○ Jika tidak dibuang, keyword penting tenggelam karena ranking atas diduduki oleh stopword yang insignifikan artinya. sumber: Top hundred words zipf law
  • 67.
    Text Cleaning Pipeline 5.Lemmatization/Stemming ● Mengubah inflected word menjadi bentuk dasar ● Tujuan: representasi kata inflected dan kata dasar tidak dianggap berbeda 67
  • 68.
    After Cleaning Text ●Salah satu cara penyelesaian task dengan machine learning. ● Machine learning hanya menerima tipe numerik ● Teks perlu diubah menjadi tipe numerik 68
  • 69.
    Converting Text toVector Konversi teks ke vektor: (paling sederhana) ● Bag of Words - Tiap kata disimpan dalam kantong berbeda - Nilai yang disimpan dalam kantong: frekuensi kemunculan kata 69
  • 70.
    Converting Text toVector ● Bag of Words (cont.) Contoh kalimat: ○ Review 1: This movie is very scary and long ○ Review 2: This movie is not scary and is slow 70 Vektor yang terbentuk: ○ Vector Review 1: [1 1 1 1 1 1 1 0 0 0 0] ○ Vector Review 2: [1 1 2 0 0 1 1 0 1 0 0] sumber: BoW Model and TF-IDF For Creating Feature From Text
  • 71.
    Converting Text toVector ● Bag of Words (cont.) - Mudah diimplementasi dan dipahami - Drawback BOW: ○ Kalimat baru → vocab bertambah → vektor memanjang ○ Hasil sparse matrix yang high computation cost ○ Tidak menyimpan informasi grammar/urutan kata 71
  • 72.
  • 73.
    NLTK Toolkit 73 NLTK untukPemrosesan NLP seperti Tokenization dan Sentiment Analysis Spacy untuk Pemrosesan NLP seperti syntactic parser, NER, dan Displacy visualization Gensim untuk pemrosesan NLP seperti word2vec Stanford NLP untuk Pemrosesan NLP seperti Named Entity Extraction bahasa Ibrani, Arab, dll Allen NLP untuk memudahkan pembangunan model NLP Flair untuk pemrosesan NLP seperti pretrained model
  • 74.
    NLTK Toolkit 74 Datasaur.ai untuklabeling data Sastrawi untuk stemming Bahasa Indonesia Prosa.ai menyediakan berbagai macam API pemrosesan NLP Bahasa Indonesia
  • 75.
    Prosa.ai API ● APIgratis 1.000 call per bulan. ● Dapat diakses di console.prosa.ai ● Banyak API tersedia, ada API khusus NLP & vision. ● API Prosa.ai NLP: ○ Syntactic Analyzer ○ Word Normalizer ○ Named Entities Extractor ○ Hate Speech Detector ○ dsb 75
  • 76.
    Prosa.ai API ● Secretkey didapatkan ketika membuat akun untuk pemanggilan API. “udah mkn blm?” → “sudah makan belum?” 76
  • 77.