Here are some of the key challenges in Natural Language Processing:
- Ambiguity at all levels of language:
- Lexical ambiguity (a word having multiple meanings) depending on context. For example, in the sentence "Kemarin dia datang memberi tahu", the word "tahu" could mean "information" or the food "tofu".
- Syntactic ambiguity where the structure of a sentence can have more than one parse. For example, in "Cahyo mengejar anak itu dengan mobil sedan", it's not clear if Cahyo chased the child with a sedan car or if the sedan car was being chased.
- Semantic ambiguity where the
6. 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
7. NLP?
Email Classification
● Email classification mengelompokkan
email ke dalam kategori.
● Pembaca mudah membuka email
dengan kategori yang dibutuhkan.
7
9. NLP?
Rude Word Sensor
● Rude Word Sensor memfilter kata
kasar yang mengganggu pengguna lain.
9
10. 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
11. NLP?
Chatbot
● Chatbot untuk berdialog
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
● Question Answering
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 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
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
22. 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
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
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
● 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
31. 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
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
● 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
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
41. 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
42. 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
43. 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
44. 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
46. 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
47. Paraphrase (cont.)
● Contoh paraphrase menggunakan http://ai-writer.com/.
● Kalimat dari Wikipedia yang akan diparaphrase:
●
● Hasil paraphrase:
47
49. 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
51. 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
52. 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
53. 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
55. - 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
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
61. Why Text Needs to be Processed?
61
semakin panjang teks, kata semakin banyak.
semakin banyak kata yang diproses, proses semakin berat dan lama.
62. 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. 63
Basic Text Cleaning Pipeline
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 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
70. 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
71. 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
73. 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
74. NLTK Toolkit
74
Datasaur.ai untuk labeling
data
Sastrawi untuk stemming
Bahasa Indonesia
Prosa.ai menyediakan
berbagai macam API
pemrosesan NLP Bahasa
Indonesia
75. 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
76. Prosa.ai API
● Secret key didapatkan ketika
membuat akun untuk
pemanggilan API.
“udah mkn blm?” → “sudah makan belum?”
76