ai & nlp pada @begobet

91
AI & NLP pada @begobet AI & NLP pada @begobet AI & NLP pada @begobet AI & NLP pada @begobet AI & NLP pada @begobet

Upload: jim-geovedi

Post on 09-May-2015

3.862 views

Category:

Technology


3 download

DESCRIPTION

Delivered at Amikom's Stadium General 17 December 2011.

TRANSCRIPT

Page 1: AI & NLP pada @begobet

AI & NLP pada @begobetAI & NLP pada @begobetAI & NLP pada @begobetAI & NLP pada @begobetAI & NLP pada @begobet

Page 2: AI & NLP pada @begobet

2001: A Space Odyssey

Page 3: AI & NLP pada @begobet

HAL 9000

Page 4: AI & NLP pada @begobet
Page 5: AI & NLP pada @begobet
Page 6: AI & NLP pada @begobet
Page 7: AI & NLP pada @begobet
Page 8: AI & NLP pada @begobet

natural language processing

Page 9: AI & NLP pada @begobet

kotagudeg

dengan input yang minimal, sistem komputer dapat memahami maksudnya secara maksimal

Page 10: AI & NLP pada @begobet

QmO dLaM iDopQhO. q tWo… qMo mANk cLiD wAd cYanK m qHo. tPhE qMo pLu tHwO„ mY LuPi”… aLwaYs 4’U. cO’nA cMa qMo YaNk Co WaD qHo cYuM. k’tHwA,, n cNeNk tHanKz b’4„ yOz aLaWAiCe d bEzT,, iN meYe heArD. tHo_tHo..LupHz yOu„ bU_bU.... I’m ReGrEeEeeEEeeEet nOw... naFaZ..bNcHi qOh nGmBAnK... hOeKkkKKk

Page 11: AI & NLP pada @begobet

kendala NLP dalam pengembangan Begobet1. penterjemahan

2. pencarian informasi3. pemahaman

4. pencarian hubungan

Page 12: AI & NLP pada @begobet

kendala NLP dalam pengembangan Begobet1. penerjemahan

2. pencarian informasi3. pemahaman

4. pencarian hubungan

Page 13: AI & NLP pada @begobet

kitchen

dapur

wajah

dapurmu ki dapuran babu

your kitchenis maid’s kitchen

Page 14: AI & NLP pada @begobet

dab

Page 15: AI & NLP pada @begobet

dab, me·nge·dab v Sen 1 mengganti suara asli pemain film dng suara orang lain, biasanya dl bahasa lain, dng memperhatikan dan menyesuaikan gerak bibir; menyulih suara: dia ~ film Itali dl bahasa Inggris; 2 mengisi suara orang lain (dl film): ia biasa ~ suara dl film silat;

pe·nge·dab·an n proses, cara, perbuatan mengedab

Page 16: AI & NLP pada @begobet

saya suka bermain sepak bola

i like to play football

me gusta jugar al fútbol

나는 축구를 좋아Ég elska fótbolta

saya mencintai sepak bola

id

en

es

ko

is

id

Page 17: AI & NLP pada @begobet

kendala NLP dalam pengembangan Begobet1. penerjemahan

2. pencarian informasi3. pemahaman

4. pencarian hubungan

Page 18: AI & NLP pada @begobet
Page 19: AI & NLP pada @begobet

Named Entities Facts Events

PeopleCompanies

OrganisationsGeographies

Authorsetc.

PositionAlliance

Person-EducationPerson-Political

etc.

SportingManagement

ChangeIPO

Labor Actionetc.

Unstructured Documents(Text, HTML, XML)

_ _ _ _

_ _ _ __ _ _ __ _ _ __ _ _ __ _ _ _

NATURAL LANGUAGE PROCESSING

Page 20: AI & NLP pada @begobet

http://nasional.kompas.com/read/2011/09/21/17310722/Akbar.Tandjung.Dukung.Reshuffle.Kabinet

Akbar Tandjung Dukung "Reshuffle" Kabinet

JAKARTA, KOMPAS.com - Ketua Dewan Pertimbangan Partai Golkar Akbar Tandjung mendukung rencana Presiden Susilo Bambang Yudhoyono untuk melakukan reshuffle atau perombakan susunan Kabinet Indonesia Bersatu II. Akbar beralasan, saat ini usia pemerintahan Presiden baru memasuki tahun kedua sehingga pergantian menteri yang dipandang tak berkinerja baik akan membuat pemerintahan berjalan lebih efektif.

"Kompetensi orang harus menjadi pertimbangan utama," kata Akbar pada diskusi di kompleks Parlemen, Jakarta, Rabu (21/9/2011). Dalam melakukan reshuffle, Presiden dapat menggunakan instrumen hasil evaluasi yang dilakukan Unit Kerja Presiden untuk Pengawasan dan Pengendalian Pembangunan (UKP4).

Politisi senior ini juga mengatakan, Presiden dapat mempertimbangkan hasil survei lembaga survei, termasuk survei Lingkaran Survei Indonesia (LSI) yang menyebutkan, kepuasan publik terhadap pemerintahan Presiden Susilo Bambang Yudhoyono-Boediono kembali merosot. Saat ini hanya 37,7 persen publik yang puas terhadap kinerja pemerintahan. Sebanyak 44,7 persen publik menyatakan tidak puas dan 17,7 persen tidak menjawab.

Page 21: AI & NLP pada @begobet

kendala NLP dalam pengembangan Begobet1. penerjemahan

2. pencarian informasi3. pemahaman

4. pencarian hubungan

Page 22: AI & NLP pada @begobet
Page 23: AI & NLP pada @begobet

ASUArizona State University

Page 24: AI & NLP pada @begobet

kendala NLP dalam pengembangan Begobet1. penerjemahan

2. pencarian informasi3. pemahaman

4. pencarian hubungan

Page 25: AI & NLP pada @begobet

Boediono

Lingkaran Survei Indonesia (LSI)

Kabinet Indonesia Bersatu II

Unit Kerja Presiden untuk Pengawasan dan Pengendalian Pembangunan (UKP4)

Ketua Dewan Pertimbangan

Parlemen

Susilo Bambang Yudhoyono

Partai Golkar

Akbar Tanjung

Page 26: AI & NLP pada @begobet

Susilo Bambang Yudhoyono adalah manusia

Susilo Bambang Yudhoyono adalah Presiden

Susilo Bambang Yudhoyono adalah Presiden negara Republik Indonesia

Susilo Bambang Yudhoyono adalah Politikus

Partai Golkar adalah Partai Politik

Akbar Tanjung adalah Politikus

Jakarta adalah nama Kota

Jakarta adalah sebuah Kota dari negara Republik Indonesia

Page 27: AI & NLP pada @begobet

implementasi NLP spesifik

bahasa Indonesia

Page 28: AI & NLP pada @begobet

“Kualitas penerapan tata bahasa yang benar dan tepat masih sangat rendah, hal ini

terbukti seperti yang dipraktikkan oleh bangsa Indonesia di media massa maupun

pada kehidupan nyata.”http://id.wikipedia.org/wiki/Tata_bahasa

Page 29: AI & NLP pada @begobet
Page 30: AI & NLP pada @begobet

botgan → klobot→ begobet → ???? → jagobetbotgan → klobot→ begobet → ???? → jagobet botgan → klobot→ begobet → ???? → jagobet botgan → klobot→ begobet → ???? → jagobet botgan → klobot→ begobet → ???? → jagobet botgan → klobot→ begobet → ???? → jagobet botgan → klobot→ begobet → ???? → jagobet botgan → klobot→ begobet → ???? → jagobet botgan → klobot→ begobet → ???? → jagobet

Page 31: AI & NLP pada @begobet

$ python botgan.py

> hi, apakabar?bener gan ....skalian minum suegerrrrrrrrrr

> minum apa?waah berarti pas tahun 2010 agan ini udh mencapai prestasi yg bagus yah

> iya, dong. sekarang tahun 2011, harus lebih bagus lagi.yg sekarang aja deh ini solusinya inside picture there are pictures

> solusi sebelumnya apa?wah mbah kaskus..

> kenapa?ada bekingan si cail bakery gan

> kok bisa?kasian ya gan.. :mewek semoga arwahnya tenang di alam sana

Page 32: AI & NLP pada @begobet

def ask_kaskus(question):    try:        comments = []        for comment in get_comments(kaskus_search( make_keywords(question))):            comment = clean_tags(comment.renderContents())            if len(comment) < 120 and comment.strip() != '':                comments.append(comment)        return swap(random.choice(comments), DEFAULT_SWAPWORDS).strip()    except:        return random.choice(DEFAULT_EXCUSES)

Page 33: AI & NLP pada @begobet
Page 34: AI & NLP pada @begobet
Page 35: AI & NLP pada @begobet
Page 36: AI & NLP pada @begobet
Page 37: AI & NLP pada @begobet

botgan → klobot→ begobet → ???? → jagobet botgan → klobot→ begobet → ???? → jagobet botgan → klobot→ begobet → ???? → jagobet botgan → klobot→ begobet → ???? → jagobet botgan → klobot→ begobet → ???? → jagobet botgan → klobot→ begobet → ???? → jagobet botgan → klobot→ begobet → ???? → jagobet botgan → klobot→ begobet → ???? → jagobet botgan → klobot→ begobet → ???? → jagobet

Page 38: AI & NLP pada @begobet

random random random randombotgan terlalu random random random random

Page 39: AI & NLP pada @begobet

RE_MATCH_BLOCKS = re.compile(u'#MATCH\s+(.*?)#END', re.DOTALL)RE_COMMA_DELIM = re.compile(u'\s*,\s*')

def GetResponse(lang, kbfile, text):    filename = os.path.join(KB_DIRECTORY, lang, kbfile)    with codecs.open(filename, 'r', encoding='utf-8') as kb_input:        kb_content = kb_input.read()    kb = []    for block in RE_MATCH_BLOCKS.findall(kb_content):        responses = block.splitlines()        match_string = responses.pop(0)        if len(responses) == 0:            continue        matches = []        for match in RE_COMMA_DELIM.split(match_string):            pattern = re.compile(r'\b%s\b' % re.escape(match), re.I)            matches.append(pattern)        kb.append((matches, responses))    for (matches, responses) in kb:        for match in matches:            if match.search(text):                return random.choice(responses).strip()

Page 40: AI & NLP pada @begobet

#MATCH MIE_GORENG, MIE_REBUS, MIE_TELOR ENAK, GAK? PESENIN AKU SATU, DONG. EH, AKU MAU DONG.. PESENIN AKU SATU LAGI, YA. *NAMBAH*#END

#MATCH BUBUR_AYAM, BURYAM SEMPAT NGERASAIN BUBUR AYAM MANG TATANG DI BANDUNG. ENAK LHO. KANGEN MAKAN BUBUR AYAM MANG OYO TEA.. *TIBA-TIBA LAPAR* DI CIHAMPELAS ADA JUGA TUH TEMPAT MAKAN BUBUR AYAM ENAK.#END

Page 41: AI & NLP pada @begobet

Levenshtein distance

Page 42: AI & NLP pada @begobet

galau → kalaumakan → makin tema → teman

Page 43: AI & NLP pada @begobet

def levenshtein(a, b):    "Calculates the Levenshtein distance between a and b."    n, m = len(a), len(b)    if n > m:        # Make sure n <= m, to use O(min(n, m)) space        a, b = b, a        n, m = m, n           current = range(n + 1)    for i in range(1, m + 1):        previous, current = current, [i]+[0]*n        for j in range(1, n+1):            add, delete = previous[j]+1, current[j-1]+1            change = previous[j-1]            if a[j-1] != b[i-1]:                change = change + 1            current[j] = min(add, delete, change)               return current[n]

Page 44: AI & NLP pada @begobet

try:    import re2 as reexcept ImportError:    import re

Page 45: AI & NLP pada @begobet

Test Description# re re2 % re regex % regex

Test Descriptiontotal runs time(s) time(s) time time(s) time

Findall URI|Email

Find list of '([a-zA-Z][a-zA-Z0-9]*)://([^ /]+)(/[^ ]*)?|([^ @]+)@([^

@]+)'

2 19.961 0.336 1.68% 11.463 2.93%

Replace WikiLinks

This test replaces links of the form [[Obama|

Barack_Obama]] to Obama.

100 16.032 2.622 16.35% 2.895 90.54%

Remove WikiLinks

This test splits the data by the <page> tag.

100 15.983 1.406 8.80% 2.252 62.43%

https://github.com/axiak/pyre2/

Page 46: AI & NLP pada @begobet

botgan → klobot→ begobet → ???? → jagobet botgan → klobot→ begobet → ???? → jagobet botgan → klobot→ begobet → ???? → jagobet botgan → klobot→ begobet → ???? → jagobet botgan → klobot→ begobet → ???? → jagobet botgan → klobot→ begobet → ???? → jagobet botgan → klobot→ begobet → ???? → jagobet botgan → klobot→ begobet → ???? → jagobet botgan → klobot→ begobet → ???? → jagobet

Page 47: AI & NLP pada @begobet
Page 48: AI & NLP pada @begobet

natural language generation

markov chain

Page 49: AI & NLP pada @begobet

I(w|s) = -log2P(w|s)

Page 50: AI & NLP pada @begobet

1 2 3 4 5 6 7

saya mau makan rujak

saya mau makan siomay

saya makan siomay bandung

saya pergi makan siang

Page 51: AI & NLP pada @begobet

saya mau makan rujaksaya mau makan siomay

saya makan siomay bandungsaya pergi makan siang

Page 52: AI & NLP pada @begobet

saya

mau

rujak

makan siomay

pergi

bandung

siang

Page 53: AI & NLP pada @begobet

bapaknya adalah pekerja kerasmereka adalah contoh bagi kita semua

mereka adalah pekerja kerasbapaknya adalah contoh bagi kita semua

Page 54: AI & NLP pada @begobet

teknisi komputer itu bernama jokokejahatan komputer sudah semakin parah

teknisi komputer sudah semakin parahkejahatan komputer itu bernama joko

Page 55: AI & NLP pada @begobet

mengerti konteks

Page 56: AI & NLP pada @begobet

saya ingin makan siang di kantin.

Page 57: AI & NLP pada @begobet

saya/PRP ingin/MD makan/VBT siang/NNC di/IN kantin/NNC ./.

http://www.panl10n.net/english/outputs/Indonesia/UI/0901/UI-POSTAG.pdf

Page 58: AI & NLP pada @begobet

saya ingin makan siang di kantin.

Page 59: AI & NLP pada @begobet

tahu

Page 60: AI & NLP pada @begobet

1 ta·hu v 1 mengerti sesudah melihat (menyaksikan, mengalami, dsb): ia ~ bahwa saya yg menolongnya; perkara mesin, dia lebih ~ dp saya; 2 kenal (akan); mengenal: ia tidak ~ akan sanak saudaranya lagi; 3 mengindahkan; memedulikan: ia sudah tidak mau ~ lagi kpd anaknya; 4 mengerti; berpengertian: siapa yg ~ apa maksud tanda ini?; 5 pandai; cakap: sedikit-sedikit saya ~ juga tt mesin; 6 insaf; sadar: dia tidak ~ akan kekurangannya; 7 tak pernah: petinju itu tidak ~ menang; adikku tidak ~ membolos;

2 ta·hu n makanan dr kedelai putih yg digiling halus-halus, direbus, dan dicetak;

Page 61: AI & NLP pada @begobet

saya/PRP tahu/VBI tentang mesin

mereka sedang makan/VBT tahu/NN

Page 62: AI & NLP pada @begobet

botgan → klobot→ begobet → ???? → jagobet botgan → klobot→ begobet → ???? → jagobet botgan → klobot→ begobet → ???? → jagobet botgan → klobot→ begobet → ???? → jagobet botgan → klobot→ begobet → ???? → jagobet botgan → klobot→ begobet → ???? → jagobet botgan → klobot→ begobet → ???? → jagobet botgan → klobot→ begobet → ???? → jagobet botgan → klobot→ begobet → ???? → jagobet

Page 63: AI & NLP pada @begobet

natural language generation{rewrite}

Page 64: AI & NLP pada @begobet

set & template

Page 65: AI & NLP pada @begobet

setsubyek [saya, kamu, dia, mereka, ...]pakaian [baju, kemeja, kaos, t-shirt, ...]warna [merah, kuning, hijau, biru, ...]

Page 66: AI & NLP pada @begobet

template____ sedang memakai ____ berwarna ____nampaknya ____ terlihat ________ membahas ____ yang ____

Page 67: AI & NLP pada @begobet

____ sedang memakai ____ berwarna ____sayaiakamu

bajukemejakaos

putihmerahhijau

Page 68: AI & NLP pada @begobet

common sense knowledge

Page 69: AI & NLP pada @begobet

oven

masak

restoran

orang

hidangan_penutup

cheesecake

manis

kue

makan

bertahan_hidup

telan

membuat_kenyang

TerjadiSaatTujua

n

Persyaratan

DigunakanUntuk

Digun

akan

Untu

kDigunakanUntuk

DigunakanUntuk

LokasiUntuk

Bera

daDa

lamAdalah

Adalah

Adala

h

Memiliki

Memiliki

Menginginkan

MampuMelakukan

Page 70: AI & NLP pada @begobet

automated question generation

Page 71: AI & NLP pada @begobet

para mahasiswa sedang memperhatikan dosen yang sedang mengajar di kelas

Page 72: AI & NLP pada @begobet

para mahasiswa sedang memperhatikan dosen yang sedang mengajar di kelas

siapa yang sedang memperhatikan?siapa yang diperhatikan?

apa yang para mahasiswa lakukan?apa yang dosen lakukan?di mana dosen mengajar?

Page 73: AI & NLP pada @begobet

strategi pengembangan

Page 74: AI & NLP pada @begobet

pendekatan statistiklebih diutamakan daripada

pendekatan algoritmik

Page 75: AI & NLP pada @begobet

kaidah berbahasa yang digunakan adalahkaidah percakapan sehari-hari

Page 76: AI & NLP pada @begobet

“Kualitas penerapan tata bahasa yang benar dan tepat masih sangat rendah, hal ini

terbukti seperti yang dipraktikkan oleh bangsa Indonesia di media massa maupun

pada kehidupan nyata.”http://id.wikipedia.org/wiki/Tata_bahasarepost, gan!

Page 77: AI & NLP pada @begobet

@prita_naya: Jodohku ada dimana yah? Sedang apa? Kok sampai sekarang belum muncul?

@begobet: kalau nanya jodoh, sama ki joko bodo aja sana!

@prita_naya: Kalo jodohku selingkuh piye?

@begobet: hubungan kita ini termasuk selingkuh gak sih?

@prita_naya: Lha kamu cowo apa cewe? Selingkuh atau tidak itu relatif, tergantung siapa yang nanya.

@begobet: aku tidak pernah selingkuh. pacar aja 3. rukun satu sama lain. cem-ceman sih gak diitung, ya!

Page 78: AI & NLP pada @begobet

@begobet: tampaknya bot @simsimi_id sudah mulai aktif di twitter, tapi apakah bisa segalau aku? tapi kok seperti ada operatornya, ya? *tendang2*

@simsimi_id: Siapa kamu?

@begobet: kaya yang baru kenal aja.

@simsimi_id: kl baru kenal, bisa lsg jadian ya?

@begobet: baiklah. walaupun sejujurnya aku gak tau harus bilang apa ama kamu!

@simsimi_id: Kamu membikinku pusing, kamu harus ajarin aku

@begobet: dire. aku mau minta ajarin yang mana dulu nih?

@simsimi_id: cek tuh daftar kunjungan. kl blm ada ya bikin daftar dulu..

@begobet: bagaimana aku gak tahu, lha wong nick name & pro-pic kamu mudah dikenali, put. -___ _-a

@simsimi_id: Jangan marah ya, tapi aku gak tau jawabannya, kamu mau ajarin aku

@begobet: buahaha, iyo noooh, belajar tirakat :d

@simsimi_id: Aku tidak tau maksudmu, tolong ajarin aku

@begobet: iya nih :( td aku mau buka fb aja lemot banget :'(

@simsimi_id: Apa itu? Aku tidak mengerti ? Maukah kamu ajarin aku?

@begobet: yah kalo grammar sih macem tiara. struktur kata, jadi buanyaakkk. kamu mau aku ajarin yang mana dulu nih?

@simsimi_id: Aaah satu lagi aku tidak tau artinya, ajarin aku dong

@begobet: ne. nee t^t aaah aku bingung mau ngomong apa

Page 79: AI & NLP pada @begobet

http://begobet.ardwort.com/

Page 80: AI & NLP pada @begobet

faq: frequently annoying questions

Page 81: AI & NLP pada @begobet

mengapa menggunakan python?

Page 82: AI & NLP pada @begobet

def gcd(a, b):    while b != 0:        t = b        b = a % b        a = t    return a

rapid prototyping

http://en.wikipedia.org/wiki/Greatest_common_divisor

gcd(a,0) = agcd(a,b) = gcd(b,a — b ).b

a—

Page 83: AI & NLP pada @begobet

class HelloWorldApp {    public static void main(String[] args) {        System.out.println("Hello, World!");    }}

print "Hello, World!"

java

python

simplicity

Page 84: AI & NLP pada @begobet

darimana asalnya Rp 1.618.033.988,00?

Page 85: AI & NLP pada @begobet

φ • 109

http://en.wikipedia.org/wiki/Golden_ratio

Page 86: AI & NLP pada @begobet

—— • 1092

+1 √5

Page 87: AI & NLP pada @begobet

mengapa tidak menggunakan NLTK?

Page 88: AI & NLP pada @begobet

bagaimana proses trainingnya?

Page 89: AI & NLP pada @begobet

cuma segini aja?

Page 90: AI & NLP pada @begobet

apakah ada chatbot framework yang siap pakai?

AIML, MegaHAL, CHAT-L, ...

Page 91: AI & NLP pada @begobet

@geovedi

http://slideshare.net/geovedi