Anda di halaman 1dari 71

Konsep Bahasa dan

Operasi dalam
Bahasa
Natural Language Processing
Pertemuan 2
Definisi Bahasa dalam NLP

Teori NLP membicarakan bahasa formal/ bahasa baku (formal


language), terutama untuk kepentingan perancangan kompilator
(compiler) dan pemroses naskah (text processor). Bahasa formal
adalah kumpulan kalimat. Semua kalimat dalam sebuah bahasa
dibangun oleh sebuah tata bahasa (grammar) yang sama. Sebuah
bahasa formal bisa dibentuk oleh dua atau lebih tata bahasa
berbeda. Dikatakan bahasa formal karena grammar diciptakan
lebih dahulu dari pembentukan setiap kalimatnya. Bahasa
manusia bersifat sebaliknya; grammar diciptakan untuk
meresmikan kata-kata yang hidup di masyarakat. 2
1
Konsep Bahasa
Natural Language Processing

3
Simbol, String, dan Alfabet

Simbol adalah sebuah entitas abstrak (seperti halnya pengertian


titik dalam geometri). Sebuah huruf atau sebuah angka adalah
contoh simbol.
String adalah deretan terbatas (finite) dari simbol-simbol. Sebagai
contoh, jika a, b, dan c adalah tiga buah simbol maka abcb adalah
sebuah string yang dibangun dari ketiga simbol tersebut.

4
Simbol, String, dan Alfabet

Sebuah string dengan panjang n yang dibentuk dari himpunan A


adalah barisan dari n simbol.
Misalnya a1a2...an ; ai ϵ A
Jika w adalah sebuah string maka panjang string dinyatakan
sebagai |w| dan didefinisikan sebagai cacahan (banyaknya) simbol
yang menyusun string tersebut.
Sebagai contoh, jika w = abcb maka |w|= 4.
5
Simbol, String, dan Alfabet

String hampa adalah sebuah string dengan nol buah simbol.


String kosong/ String hampa (null string), dilambangkan dengan ɛ
(atau ^) adalah untaian dengan panjang 0 dan tidak berisi apapun.
String hampa dinyatakan dengan simbol ɛ (atau ^) sehingga | ɛ | =
0.
String hampa dapat dipandang sebagai simbol hampa karena
keduanya tersusun dari nol buah simbol.
Alfabet adalah himpunan hingga (finite set) simbol-symbol.
6
2
Operasi dalam Bahasa
Natural Language Processing

7
Operasi Dasar String

Misalnya -> Diberikan dua string : x = abc, dan y = 123


Maka,
▰ Prefix string w adalah string yang dihasilkan dari string w
dengan menghilangkan nol atau lebih simbol-simbol paling
belakang dari string w tersebut.
▰ Contoh : abc, ab, a, dan ɛ adalah semua Prefix(x)

8
Operasi Dasar String

Misalnya -> Diberikan dua string : x = abc, dan y = 123


Maka,
▰ ProperPrefix string w adalah string yang dihasilkan dari string
w dengan menghilangkan satu atau lebih simbol-simbol paling
belakang dari string w tersebut.
▰ Contoh : ab, a, dan ɛ adalah semua ProperPrefix(x)

9
Operasi Dasar String

Misalnya -> Diberikan dua string : x = abc, dan y = 123


Maka,
▰ Postfix (atau Sufix) string w adalah string yang dihasilkan dari
string w dengan menghilangkan nol atau lebih simbol-simbol
paling depan dari string w tersebut.
▰ Contoh : abc, bc, c, dan ɛ adalah semua Postfix(x)

10
Operasi Dasar String

Misalnya -> Diberikan dua string : x = abc, dan y = 123


Maka,
▰ ProperPostfix (atau PoperSufix) string w adalah string yang
dihasilkan dari string w dengan menghilangkan satu atau lebih
simbol-simbol paling depan dari string w tersebut.
▰ Contoh : bc, c, dan ɛ adalah semua ProperPostfix(x)

11
Operasi Dasar String

Misalnya -> Diberikan dua string : x = abc, dan y = 123


Maka,
▰ Head string w adalah simbol paling depan dari string w.
▰ Contoh : a adalah Head(x)

12
Operasi Dasar String

Misalnya -> Diberikan dua string : x = abc, dan y = 123


Maka,
▰ Tail string w adalah string yang dihasilkan dari string w dengan
menghilangkan simbol paling depan dari string w tersebut.
▰ Contoh : bc adalah Tail(x)

13
Operasi Dasar String

Misalnya -> Diberikan dua string : x = abc, dan y = 123


Maka,
▰ Substring string w adalah string yang dihasilkan dari string w
dengan menghilangkan nol atau lebih simbol-simbol paling
depan dan/atau simbol simbol paling belakang dari string w
tersebut.
▰ Contoh : abc, ab, bc, a, b, c, dan ɛ adalah semua Substring(x)

14
Operasi Dasar String

Misalnya -> Diberikan dua string : x = abc, dan y = 123


Maka,
▰ ProperSubstring string w adalah string yang dihasilkan dari
string w dengan menghilangkan satu atau lebih simbol-simbol
paling depan dan/atau simbol simbol paling belakang dari string
w tersebut.
▰ Contoh : ab, bc, a, b, c, dan ɛ adalah semua PoperSubstring(x)

15
Operasi Dasar String

Misalnya -> Diberikan dua string : x = abc, dan y = 123


Maka,
▰ Subsequence string w adalah string yang dihasilkan dari string
w dengan menghilangkan nol atau lebih simbol-simbol dari
string w tersebut.
▰ Contoh : abc, ab, bc, ac, a, b, c, dan ɛ adalah semua
Subsequence(x)

16
Operasi Dasar String

Misalnya -> Diberikan dua string : x = abc, dan y = 123


Maka,
▰ ProperSubsequence string w adalah string yang dihasilkan dari
string w dengan menghilangkan satu atau lebih simbol-simbol
dari string w tersebut.
▰ Contoh : ab, bc, ac, a, b, c, dan ɛ adalah semua
ProperSubsequence(x)

17
Operasi Dasar String

Misalnya -> Diberikan dua string : x = abc, dan y = 123


Maka,
▰ Concatenation adalah penyambungan dua buah string.
▰ Operator concatenation adalah concate atau tanpa lambang
apapun.
▰ Contoh : concate(xy) = xy = abc123

18
Operasi Dasar String

Misalnya -> Diberikan dua string : x = abc, dan y = 123


Maka,
▰ Alternation adalah pilihan satu di antara dua buah string.
▰ Operator alternation adalah alternate atau |.
▰ Contoh : alternate(xy) = x|y = abc atau 123

19
Operasi Dasar String

Misalnya -> Diberikan dua string : x = abc, dan y = 123


Maka,
▰ Kleene Closure : x* = ɛ |x|xx|xxx|… = ɛ |x|x2 |x3 |…

20
Operasi Dasar String

Misalnya -> Diberikan dua string : x = abc, dan y = 123


Maka,
▰ Positive Closure : x+ = x|xx|xxx|… = x|x2 |x3 |…

21
3
Sifat-sifat operasi String
Natural Language Processing

22
Sifat-sifat operasi String

▰ Tidak selalu berlaku : x = Prefix(x)Postfix(x)


▰ Selalu berlaku : x = Head(x)Tail(x)
▰ Tidak selalu berlaku : Prefix(x) = Postfix(x) atau
Prefix(x) ≠ Postfix(x)
▰ Selalu berlaku : ProperPrefix(x) ≠ ProperPostfix(x)

23
Sifat-sifat operasi String

▰ Selalu berlaku : Head(x) ≠ Tail(x)


▰ Setiap Prefix(x), ProperPrefix(x), Postfix(x), ProperPostfix(x),
Head(x), dan
▰ Tail(x) adalah Substring(x), tetapi tidak sebaliknya
▰ Setiap Substring(x) adalah Subsequence(x), tetapi tidak
sebaliknya

24
Sifat-sifat operasi String

▰ Dua sifat aljabar concatenation :


a. Operasi concatenation bersifat asosiatif : x(yz) = (xy)z
b. Elemen identitas operasi concatenation adalah ɛ : ɛ x = x ɛ = x
▰ Tiga sifat aljabar alternation :
a. Operasi alternation bersifat komutatif : x|y = y|x
b. Operasi alternation bersifat asosiatif : x|(y|z) = (x|y)|z
c. Elemen identitas operasi alternation adalah dirinya sendiri : x|x =
x
25
Sifat-sifat operasi String

▰ Sifat distributif concatenation terhadap alternation : x (y|z) = xy|


xz
▰ Beberapa kesamaan :
a. Kesamaan ke-1 : (x*)* = (x*)
b. Kesamaan ke-2 : ɛ |x+ = x+ | ɛ = x*
c. Kesamaan ke-3 : (x|y)* = ɛ |x|y|xx|yy|xy|yx|… = semua string
yang merupakan concatenation dari nol atau lebih x, y, atau
keduanya.
26
4
Grammar dan Bahasa
Natural Language Processing

27
Grammar dan Bahasa

▰ Tata Bahasa (grammar) bisa didefinisikan secara formal


sebagai kumpulan dari himpunan-himpunan variabel, simbol-
simbol terminal, simbol awal, yang dibatasi oleh aturan-aturan
produksi.
▰ Bahasa adalah himpunan kalimat-kalimat. Anggota bahasa bisa
tak hingga kalimat.
▰ Kalimat adalah deretan hingga (string) yang tersusun atas
simbol-simbol terminal.
28
Grammar dan Bahasa

▰ Sentensial adalah string yang tersusun atas simbol-simbol


terminal atau simbolsimbol non terminal atau campuran
keduanya.
▰ Kalimat adalah merupakan sentensial, sebaliknya belum tentu.
▰ Derivasi adalah proses pembentukan sebuah kalimat atau
sentensial.
▰ Sebuah derivasi dilambangkan sebagai : α → β.

29
5
Simbol
Natural Language Processing

30
Simbol Terminal

▰ Pengertian terminal berasal dari kata terminate (berakhir),


maksudnya derivasi berakhir jika sentensial yang dihasilkan
adalah sebuah kalimat (yang tersusun atas simbol-simbol
terminal itu).
▰ Simbol terminal adalah simbol yang tidak dapat diturunkan
lagi.

31
Simbol Terminal

▰ Simbol-simbol berikut adalah simbol terminal :


- huruf kecil awal alfabet, misalnya : a, b, c
- simbol operator, misalnya : +, −, dan ×
- simbol tanda baca, misalnya : (, ), dan ;
- string yang tercetak tebal, misalnya : if, then, dan else.

32
Simbol non Terminal

▰ Pengertian non terminal berasal dari kata not terminate


(belum/tidak berakhir), maksudnya derivasi belum/ tidak
berakhir jika sentensial yang dihasilkan mengandung simbol
non terminal.
▰ Simbol variabel /non terminal adalah simbol yang masih bisa
diturunkan.

33
Simbol non Terminal

▰ Simbol-simbol berikut adalah simbol non terminal :


- huruf besar awal alfabet, misalnya : A, B, C
- huruf S sebagai simbol awal
- string yang tercetak miring, misalnya : expr dan stmt

34
Simbol Terminal dan non Terminal

▰ Huruf besar akhir alfabet melambangkan simbol terminal atau


non terminal, misalnya : X, Y, Z.
▰ Huruf kecil akhir alfabet melambangkan string yang tersusun
atas simbol-simbol terminal, misalnya : x, y, z.
▰ Huruf yunani melambangkan string yang tersusun atas simbol-
simbol terminal atau simbol-simbol non terminal atau campuran
keduanya, misalnya : a, b, dan g.

35
6
Aturan Produksi
Natural Language Processing

36
Aturan Produksi

▰ Aturan produksi men-spesifikasikan bagaimana suatu


tatabahasa melakukan transformasi suatu string ke bentuk
lainnya. Melalui aturan produksi didefinisikan suatu bahasa
yang berhubungan dengan tata bahasa tersebut. Sebuah
produksi dilambangkan sebagai α → β (bisa dibaca α
menghasilkan β),

37
Aturan Produksi

▰ artinya : dalam sebuah derivasi dapat dilakukan penggantian


simbol α dengan simbol β.
▰ Simbol α dalam produksi berbentuk α → β disebut ruas kiri
produksi sedangkan simbol β disebut ruas kanan produksi.

38
Aturan Produksi

▰ Contoh aturan produksi :


▰ T → a , dibaca: T menghasilkan a
▰ E → T | T+E, dibaca: E menghasilkan T atau E menghasilkan
T+E
▰ merupakan pemendekan dari aturan produksi :
▰ E→T
▰ E → T+E

39
7
Grammar
Natural Language Processing

40
Grammar

▰ Grammar G didefinisikan sebagai pasangan 4 tuple : VT, VN, S,


dan P.
▰ Dituliskan sebagai G(VT, VN, S, P), dimana :
- VT : himpunan simbol-simbol terminal (alfabet) → kamus.
- VN : himpunan simbol-simbol non terminal.
- S ϵ VN : simbol awal (atau simbol start)
- P : himpunan produksi.
41
Contoh Grammar

▰ G1 : VT = {I, Love, Miss, You}, VN = {S,A,B,C},


P = {S → ABC, A → I, B → Love | Miss, C → You}
S → ABC
→ IloveYou
L(G1)={IloveYou, IMissYou}

42
Contoh Grammar

▰ G2 : VT = {a}, VN = {S}, P = {S → aS|a}


S → aS
→ aaS
→ aaa
L(G2) ={an | n 1}
L(G2)={a, aa, aaa, aaaa,…}

43
7
Klasifikasi Chomsky
Natural Language Processing

44
Klasifikasi Chomsky

▰ Noam Chomsky melakukan penggolongan tingkatan bahasa


berdasarkan aturan produksinya yang disebut dengan Hierarki
Chomsky (1959). Berdasarkan komposisi bentuk ruas kiri dan
ruas kanan produksinya (α → β), Noam Chomsky
mengklasifikasikan 4 tipe grammar.

45
Klasifikasi Chomsky

▰ Tipe sebuah grammar (atau bahasa) ditentukan dengan aturan


sebagai berikut :
▰ A language is said to be type-i (i = 0, 1, 2, 3) language if it can
be specified by a type-i grammar but can’t be specified any
type-(i+1) grammar.

46
Klasifikasi Chomsky

▰ Grammar tipe ke-0 : Unrestricted Grammar (UG)


▰ Ciri : α, β ϵ (VT|VN)*, | α| > 0
▰ Mesin automata : Mesin Turing
▰ Aturan Produksi : tidak ada batasan
▰ Contoh : Bahasa manusia/bahasa alami, misalnya Abc → De

47
Klasifikasi Chomsky

▰ Grammar tipe ke-1 : Context Sensitive Grammar (CSG)


▰ Ciri : α, β ϵ (VT|VN)*, 0 | α| β
▰ Mesin automata : Linier Bounded Automata
▰ Aturan Produksi : |α | | β |
▰ Contoh : Ab → DeF, CD → eF, S → ɛ
▰ * |s| = 1, | ɛ | = 0, ada perkecualian sehingga S → ɛ dianggap
memenuhi context sensitive grammar.

48
Klasifikasi Chomsky

▰ Grammar tipe ke-2 : Context Free Grammar (CFG)


▰ Ciri : α ϵ VN, β ϵ (VT|VN)*
▰ Mesin automata : PDA
▰ Aturan Produksi : α berupa sebuah simbol variable
▰ Contoh : B → CDeFg, D → BcDe

49
Klasifikasi Chomsky

▰ Grammar tipe ke-3 : Regular Grammar (RG)


▰ Ciri : α ϵ VN, β ϵ (VT ,VTVN) atau α ϵ VN, β ϵ (VT ,VNVT)
▰ Mesin automata : FSA meliputi DFA & NFA
▰ Aturan Produksi :
- α adalah sebuah simbol variable
- β maksimal memiliki sebuah symbol variabel yang bila ada
terletak di posisi paling kanan
▰ Contoh : A → e, A → efg, A → efgH, C → D
50
8
Hierarki Chomsky
Natural Language Processing

51
Mesin Pengenal Bahasa

52
Keterkaitan Bahasa

Bahasa Mesin Automata Aturan Produksi


Regular (Tipe 3) Finite State Automata (FSA)  adalah sebuah simbol
meliputi Deterministic Finite variabel.
Automata (DFA), Non-  maksimal memiliki sebuah
deterministic Finite Automata simbol variabel yang bila ada
(NFA) terletak diposisi paling kanan.
Bebas Konteks Push Down Automata  berupa sebuah simbol variable
(Tipe 2)
Context Sensitive Linear Bounded Automata ||||
(Tipe 1)
Natural Language Mesin Turing Tidak ada batasan
(Tipe 0)
53
Keterkaitan Bahasa

Level 3 Level 2 Level 1 Level 0


Regular Bebas Konteks Context Sensitive Unrestricted grammar

54
Level 0 Natural Language

▰ Bahasa manusia termasuk kedalam tipe ini, dimana tidak ada


batasan untuk aturan produksinya.
▰ Contoh :
▰ Abc → aa
▰ Bc → aBaB
▰ CaB → aaBaaBa

55
Level 1 (Context sensitive)

▰ Panjang string di ruas kiri ()  panjang string ruas kanan ( ).


▰ Contoh :
▰ Ab → aBa
▰ cD → aB
▰ dEd → FabCa

56
Level 2 (Bebas Konteks)

▰ α adalah sebuah simbol variabel, dan batasannya bertambah


bahwa ruas kiri harus tetap satu simbol variabel.
▰ Contoh :
▰ A → aa
▰ B → aBD
▰ C → FGaa

57
Level 3 (Regular)

▰ Batasannya bertambah lagi, dimana ruas kanan maksimal


memiliki sebuah simbol variabel yang terletak paling kanan.
Artinya bisa memiliki simbol terminal dengan jumlah tidak
dibatasi, tetapi bila terdapat simbol variabel maka simbol
variabel tersebut hanya berjumlah satu (1) dan terletak paling
kanan. Contoh :
▰ A → aa
▰ B → aaB
▰ C → aaaaa 58
10
Analisa Grammar
Natural Language Processing

59
Analisa Penentuan Type Grammar

▰ Grammar G1 dengan P1 = {S → aB, B → bB, B → b}.


Ruas kiri semua produksinya terdiri dari sebuah VN, maka G1
kemungkinan tipe CFG (2) atau RG (3). Selanjutnya karena semua
ruas kanannya terdiri dari sebuah VT atau string VTVN maka G1
adalah RG (3).

60
Analisa Penentuan Type Grammar

▰ Grammar G2 dengan P2 = {S → aAb, B → aB}.


Ruas kiri semua produksinya terdiri dari sebuah VN maka G2
kemungkinan tipe CFG (3) atau RG (3). Selanjutnya karena ruas
kanannya mengandung string yang panjangnya lebih dari 2 (yaitu
aAb) maka G2 bukan RG, dengan kata lain G2 adalah CFG (2).

61
Analisa Penentuan Type Grammar

▰ Grammar G3 dengan P3 = {S → aA, S → aB, aAb → aBCb}.


Ruas kirinya mengandung string yang panjangnya lebih dari 1
(yaitu aAb) maka G3 kemungkinan tipe CSG (1) atau UG (0).
Selanjutnya karena semua ruas kirinya lebih pendek atau sama
dengan ruas kananya maka G3 adalah CSG (1).

62
Derivasi Kalimat dan Penentuan Bahasa

▰ Tentukan bahasa dari masing-masing gramar berikut :


▰ G1 dengan P1 = {1. S → aAa, 2. A → aAa, 3. A → b}.
▰ Jawab :
▰ Derivasi kalimat terpendek :
▰ S → aAa (1)
→ aba (3)

63
Derivasi Kalimat dan Penentuan Bahasa

▰ Derivasi kalimat umum :


▰ S → aAa (1)
→ aaAaa (2)
.....
→ anAan (2)
→ anban (3)
▰ Dari pola kedua kalimat disimpulkan : L1 (G1) = {anban | n 1}
64
Derivasi Kalimat dan Penentuan Bahasa

▰ Tentukan bahasa dari masing-masing gramar berikut :


▰ G2 dg P2 = {1. S → aS, 2. S → aB, 3. B → bC, 4. C → aC, 5. C
→ a}.
▰ Jawab :
▰ Derivasi kalimat terpendek :
▰ S → aB (2)
→ abC (3)
→ aba (5) 65
Derivasi Kalimat dan Penentuan Bahasa

▰ Derivasi kalimat umum :


▰ S → aS (1)
.....
→ an-1S (1)
→ a nB (2)
→ anbC (3)
→ anbaC (4)
66
Derivasi Kalimat dan Penentuan Bahasa

.....
→ anban+1C (4)
→ anbam (2)

▰ Dari pola kedua kalimat disimpulkan : L2 (G2) = {anbam | n 1, m


1}

67
Menentukan Grammar Sebuah Bahasa

▰ Tentukan sebuah gramar regular untuk bahasa L1 = { an| n 1}


▰ Jawab :
▰ P1 (L1) = {S → aS|a}

68
Menentukan Grammar Sebuah Bahasa

▰ Tentukan sebuah gramar bebas konteks untuk bahasa :


▰ L2 : himpunan bilangan bulat non negatif ganjil
▰ Jawab :
▰ Langkah kunci : digit terakhir bilangan harus ganjil.
Vt={0,1,2,..9}
Vn ={S,G,J}

69
Menentukan Grammar Sebuah Bahasa

▰ P = {S → HT|JT|J; T → GT|JT|J; H → 2|4|6|8; G → 0|2|4|6|8;J


→ 1|3|5|7|9}
▰ P={S → GS|JS|J; G → 0|2|4|6|8;J → 1|3|5|7|9}
▰ Buat dua buah himpunan bilangan terpisah : genap (G) dan
ganjil (J)
▰ P2(L2) = {S → J|GS|JS, G → 0|2|4|6|8, J → 1|3|5|7|9}

70
THANKS!
Any questions?
You can contact me at
ana.tsalits@trunojoyo.ac.id

71

Anda mungkin juga menyukai