ai & nlp pada @begobet
Post on 09-May-2015
3.862 Views
Preview:
DESCRIPTION
TRANSCRIPT
AI & NLP pada @begobetAI & NLP pada @begobetAI & NLP pada @begobetAI & NLP pada @begobetAI & NLP pada @begobet
2001: A Space Odyssey
HAL 9000
natural language processing
kotagudeg
dengan input yang minimal, sistem komputer dapat memahami maksudnya secara maksimal
→
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
kendala NLP dalam pengembangan Begobet1. penterjemahan
2. pencarian informasi3. pemahaman
4. pencarian hubungan
kendala NLP dalam pengembangan Begobet1. penerjemahan
2. pencarian informasi3. pemahaman
4. pencarian hubungan
kitchen
dapur
wajah
dapurmu ki dapuran babu
your kitchenis maid’s kitchen
dab
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
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
kendala NLP dalam pengembangan Begobet1. penerjemahan
2. pencarian informasi3. pemahaman
4. pencarian hubungan
Named Entities Facts Events
PeopleCompanies
OrganisationsGeographies
Authorsetc.
PositionAlliance
Person-EducationPerson-Political
etc.
SportingManagement
ChangeIPO
Labor Actionetc.
Unstructured Documents(Text, HTML, XML)
_ _ _ _
_ _ _ __ _ _ __ _ _ __ _ _ __ _ _ _
NATURAL LANGUAGE PROCESSING
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.
kendala NLP dalam pengembangan Begobet1. penerjemahan
2. pencarian informasi3. pemahaman
4. pencarian hubungan
ASUArizona State University
kendala NLP dalam pengembangan Begobet1. penerjemahan
2. pencarian informasi3. pemahaman
4. pencarian hubungan
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
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
implementasi NLP spesifik
bahasa Indonesia
“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
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
$ 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
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)
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
random random random randombotgan terlalu random random random random
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()
#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
Levenshtein distance
galau → kalaumakan → makin tema → teman
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]
try: import re2 as reexcept ImportError: import re
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/
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
natural language generation
markov chain
I(w|s) = -log2P(w|s)
1 2 3 4 5 6 7
saya mau makan rujak
saya mau makan siomay
saya makan siomay bandung
saya pergi makan siang
saya mau makan rujaksaya mau makan siomay
saya makan siomay bandungsaya pergi makan siang
saya
mau
rujak
makan siomay
pergi
bandung
siang
bapaknya adalah pekerja kerasmereka adalah contoh bagi kita semua
mereka adalah pekerja kerasbapaknya adalah contoh bagi kita semua
✔
teknisi komputer itu bernama jokokejahatan komputer sudah semakin parah
teknisi komputer sudah semakin parahkejahatan komputer itu bernama joko
✖
mengerti konteks
saya ingin makan siang di kantin.
saya/PRP ingin/MD makan/VBT siang/NNC di/IN kantin/NNC ./.
http://www.panl10n.net/english/outputs/Indonesia/UI/0901/UI-POSTAG.pdf
saya ingin makan siang di kantin.
tahu
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;
saya/PRP tahu/VBI tentang mesin
mereka sedang makan/VBT tahu/NN
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
natural language generation{rewrite}
set & template
setsubyek [saya, kamu, dia, mereka, ...]pakaian [baju, kemeja, kaos, t-shirt, ...]warna [merah, kuning, hijau, biru, ...]
template____ sedang memakai ____ berwarna ____nampaknya ____ terlihat ________ membahas ____ yang ____
____ sedang memakai ____ berwarna ____sayaiakamu
bajukemejakaos
putihmerahhijau
common sense knowledge
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
automated question generation
para mahasiswa sedang memperhatikan dosen yang sedang mengajar di kelas
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?
strategi pengembangan
pendekatan statistiklebih diutamakan daripada
pendekatan algoritmik
kaidah berbahasa yang digunakan adalahkaidah percakapan sehari-hari
“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!
@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!
@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
http://begobet.ardwort.com/
faq: frequently annoying questions
mengapa menggunakan python?
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—
class HelloWorldApp { public static void main(String[] args) { System.out.println("Hello, World!"); }}
print "Hello, World!"
java
python
simplicity
darimana asalnya Rp 1.618.033.988,00?
φ • 109
http://en.wikipedia.org/wiki/Golden_ratio
—— • 1092
+1 √5
mengapa tidak menggunakan NLTK?
bagaimana proses trainingnya?
cuma segini aja?
apakah ada chatbot framework yang siap pakai?
AIML, MegaHAL, CHAT-L, ...
@geovedi
http://slideshare.net/geovedi
top related