AI & NLP pada @begobet

4,814 views
4,764 views

Published on

Delivered at Amikom's Stadium General 17 December 2011.

Published in: Technology
0 Comments
3 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
4,814
On SlideShare
0
From Embeds
0
Number of Embeds
1,172
Actions
Shares
0
Downloads
283
Comments
0
Likes
3
Embeds 0
No embeds

No notes for slide

AI & NLP pada @begobet

  1. 1. AI & NLP pada @begobetAI & NLP pada @begobetAI & NLP pada @begobetAI & NLP pada @begobetAI & NLP pada @begobet
  2. 2. 2001: A Space Odyssey
  3. 3. HAL 9000
  4. 4. natural language processing
  5. 5. dengan input yang minimal,sistem komputer dapatmemahami maksudnyasecara maksimal kota gudeg →
  6. 6. QmO dLaM iDopQhO. q tWo… qMo mANk cLiDwAd cYanK m qHo. tPhE qMo pLu tHwO„ mYLuPi”… aLwaYs 4’U. cO’nA cMa qMo YaNk CoWaD qHo cYuM. k’tHwA,, n cNeNk tHanKzb’4„ yOz aLaWAiCe d bEzT,, iN meYe heArD.tHo_tHo..LupHz yOu„ bU_bU.... I’mReGrEeEeeEEeeEet nOw... naFaZ..bNcHi qOhnGmBAnK... hOeKkkKKk
  7. 7. kendala NLP dalam pengembangan Begobet 1. penterjemahan 2. pencarian informasi 3. pemahaman 4. pencarian hubungan
  8. 8. kendala NLP dalam pengembangan Begobet 1. penerjemahan 2. pencarian informasi 3. pemahaman 4. pencarian hubungan
  9. 9. kitchen your kitchen is maid’s kitchendapur dapurmu ki dapuran babuwajah
  10. 10. dab
  11. 11. dab, me·nge·dab v Sen 1 mengganti suara aslipemain film dng suara orang lain, biasanya dlbahasa lain, dng memperhatikan danmenyesuaikan gerak bibir; menyulih suara: dia ~film Itali dl bahasa Inggris; 2 mengisi suara oranglain (dl film): ia biasa ~ suara dl film silat;pe·nge·dab·an n proses, cara, perbuatanmengedab
  12. 12. saya suka bermain sepak bola id i like to play football en me gusta jugar al fútbol es 나는 축구를 좋아 ko Ég elska fótbolta is saya mencintai sepak bola id
  13. 13. kendala NLP dalam pengembangan Begobet 1. penerjemahan 2. pencarian informasi 3. pemahaman 4. pencarian hubungan
  14. 14. Unstructured Documents (Text, HTML, XML) NATURAL LANGUAGE PROCESSINGNamed Entities Facts Events ____ People Sporting Position ____ Companies Management Alliance ____Organisations Change Person-Education ____ Geographies IPO Person-Political ____ Authors Labor Action etc. ____ etc. etc.
  15. 15. Akbar Tandjung Dukung "Reshuffle" KabinetJAKARTA, KOMPAS.com - Ketua Dewan Pertimbangan Partai Golkar Akbar Tandjung mendukung rencanaPresiden Susilo Bambang Yudhoyono untuk melakukan reshuffle atau perombakan susunan KabinetIndonesia Bersatu II. Akbar beralasan, saat ini usia pemerintahan Presiden baru memasuki tahun keduasehingga pergantian menteri yang dipandang tak berkinerja baik akan membuat pemerintahan berjalan lebihefektif."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 hasilevaluasi 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 terhadappemerintahan Presiden Susilo Bambang Yudhoyono-Boediono kembali merosot. Saat ini hanya 37,7 persenpublik yang puas terhadap kinerja pemerintahan. Sebanyak 44,7 persen publik menyatakan tidak puas dan17,7 persen tidak menjawab. http://nasional.kompas.com/read/2011/09/21/17310722/Akbar.Tandjung.Dukung.Reshuffle.Kabinet
  16. 16. kendala NLP dalam pengembangan Begobet 1. penerjemahan 2. pencarian informasi 3. pemahaman 4. pencarian hubungan
  17. 17.
  18. 18. ASUArizona State University
  19. 19. kendala NLP dalam pengembangan Begobet 1. penerjemahan 2. pencarian informasi 3. pemahaman 4. pencarian hubungan
  20. 20. Unit Kerja Presiden untuk Pengawasan dan Pengendalian Pembangunan (UKP4)Ketua Dewan Pertimbangan Susilo Bambang Yudhoyono Partai Golkar Kabinet Indonesia Bersatu II Akbar Tanjung Boediono Parlemen Lingkaran Survei Indonesia (LSI)
  21. 21. Susilo Bambang Yudhoyono adalah manusia Susilo Bambang Yudhoyono adalah PresidenSusilo 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
  22. 22. implementasi NLP spesifik bahasa Indonesia
  23. 23. “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
  24. 24. botgan → klobot→ begobet → ???? → jagobetbotgan → klobot→ begobet → ???? → jagobetbotgan → klobot→ begobet → ???? → jagobetbotgan → klobot→ begobet → ???? → jagobetbotgan → klobot→ begobet → ???? → jagobetbotgan → klobot→ begobet → ???? → jagobetbotgan → klobot→ begobet → ???? → jagobetbotgan → klobot→ begobet → ???? → jagobetbotgan → klobot→ begobet → ???? → jagobet
  25. 25. $ python botgan.py> hi, apakabar?bener gan ....skalian minum suegerrrrrrrrrr> minum apa?waah berarti pas tahun 2010 agan ini udh mencapai prestasi ygbagus yah> iya, dong. sekarang tahun 2011, harus lebih bagus lagi.yg sekarang aja deh ini solusinya inside picture there arepictures> 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
  26. 26. 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)
  27. 27. botgan → klobot→ begobet → ???? → jagobetbotgan → klobot→ begobet → ???? → jagobetbotgan → klobot→ begobet → ???? → jagobetbotgan → klobot→ begobet → ???? → jagobetbotgan → klobot→ begobet → ???? → jagobetbotgan → klobot→ begobet → ???? → jagobetbotgan → klobot→ begobet → ???? → jagobetbotgan → klobot→ begobet → ???? → jagobetbotgan → klobot→ begobet → ???? → jagobet
  28. 28. random random random randombotgan terlalu random random random random
  29. 29. RE_MATCH_BLOCKS = re.compile(u#MATCHs+(.*?)#END, re.DOTALL)RE_COMMA_DELIM = re.compile(us*,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(rb%sb % 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()
  30. 30. #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
  31. 31. Levenshtein distance
  32. 32. galau → kalaumakan → makin tema → teman
  33. 33. 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]
  34. 34. try:    import re2 as reexcept ImportError:    import re
  35. 35. # re re2 % re regex % regex Test Description total runs time(s) time(s) time time(s) time Find list of ([a-zA-Z][a- Findall zA-Z0-9]*)://([^ /]+)(/ 2 19.961 0.336 1.68% 11.463 2.93%URI|Email [^ ]*)?|([^ @]+)@([^ @]+) This test replaces links Replace of the form [[Obama| 100 16.032 2.622 16.35% 2.895 90.54%WikiLinks Barack_Obama]] to Obama. Remove This test splits the data 100 15.983 1.406 8.80% 2.252 62.43%WikiLinks by the <page> tag. https://github.com/axiak/pyre2/
  36. 36. botgan → klobot→ begobet → ???? → jagobetbotgan → klobot→ begobet → ???? → jagobetbotgan → klobot→ begobet → ???? → jagobetbotgan → klobot→ begobet → ???? → jagobetbotgan → klobot→ begobet → ???? → jagobetbotgan → klobot→ begobet → ???? → jagobetbotgan → klobot→ begobet → ???? → jagobetbotgan → klobot→ begobet → ???? → jagobetbotgan → klobot→ begobet → ???? → jagobet
  37. 37. natural language generationmarko v chain
  38. 38. I(w|s) = -log2P(w|s)
  39. 39. 1 2 3 4 5 6 7saya mau makan rujaksaya mau makan siomaysaya makan siomay bandungsaya pergi makan siang
  40. 40. saya mau makan rujak saya mau makan siomay saya makan siomay bandungsaya pergi makan siang
  41. 41. mau rujaksaya makan siomay bandung pergi siang
  42. 42. bapaknya adalah pekerja keras mereka adalah contoh bagi kita semua ✔ mereka adalah pekerja keras bapaknya adalah contoh bagi kita semua
  43. 43. teknisi komputer itu bernama jokokejahatan komputer sudah semakin parah ✖ teknisi komputer sudah semakin parah kejahatan komputer itu bernama joko
  44. 44. mengerti konteks
  45. 45. saya ingin makan siang di kantin.
  46. 46. saya/PRP ingin/MD makan/VBT siang/NNC di/IN kantin/NNC ./. http://www.panl10n.net/english/outputs/Indonesia/UI/0901/UI-POSTAG.pdf
  47. 47. saya ingin makan siang di kantin.
  48. 48. tahu
  49. 49. 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 sanaksaudaranya lagi; 3 mengindahkan; memedulikan: ia sudah tidakmau ~ 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; 7tak pernah: petinju itu tidak ~ menang; adikku tidak ~ membolos;2 ta·hu n makanan dr kedelai putih yg digiling halus-halus,direbus, dan dicetak;
  50. 50. saya/PRP tahu/VBI tentang mesinmereka sedang makan/VBT tahu/NN
  51. 51. botgan → klobot→ begobet → ???? → jagobetbotgan → klobot→ begobet → ???? → jagobetbotgan → klobot→ begobet → ???? → jagobetbotgan → klobot→ begobet → ???? → jagobetbotgan → klobot→ begobet → ???? → jagobetbotgan → klobot→ begobet → ???? → jagobetbotgan → klobot→ begobet → ???? → jagobetbotgan → klobot→ begobet → ???? → jagobetbotgan → klobot→ begobet → ???? → jagobet
  52. 52. natural language generation {rewrite}
  53. 53. set & template
  54. 54. setsubyek [saya, kamu, dia, mereka, ...]pakaian [baju, kemeja, kaos, t-shirt, ...]warna [merah, kuning, hijau, biru, ...]
  55. 55. template____ sedang memakai ____ berwarna ____nampaknya ____ terlihat ________ membahas ____ yang ____
  56. 56. ____ sedang memakai ____ berwarna ____saya baju putihia kemeja merahkamu kaos hijau
  57. 57. common sense knowledge
  58. 58. restoran LokasiU Dig n tuk una ka nU ntu Melakuk an masak k Mampu orang membuat_kenyang DigunakanUntuk Me ng ing bertahan_hidup in ka Persyar n hidangan_penutup Digun atan ilik i akanU oven m telan n Me a ntuk Tuju t iSaa h BeradaDalam Ad Adala d ala h Terjamanis Memili ki makan Adalah anU ntuk cheesecake kue Digun ak
  59. 59. automated question generation
  60. 60. para mahasiswa sedang memperhatikan dosen yang sedang mengajar di kelas
  61. 61. 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?
  62. 62. strategi pengembangan
  63. 63. pendekatan statistik lebih diutamakan daripadapendekatan algoritmik
  64. 64. kaidah berbahasa yang digunakan adalah kaidah percakapan sehari-hari
  65. 65. “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.”repost , gan! http://id.wikipedia.org/wiki/Tata_bahasa
  66. 66. @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!
  67. 67. @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
  68. 68. http://begobet.ardwort.com/
  69. 69. faq: frequently annoying questions
  70. 70. mengapa menggunakan python?
  71. 71. gcd(a,0) = a agcd(a,b) = gcd(b,a — b — ).http://en.wikipedia.org/wiki/Greatest_common_divisor bdef gcd(a, b): rapid    while b != 0:    t=b    b=a%b    a=t prototyping    return a
  72. 72. javaclass HelloWorldApp {    public static void main(String[] args) {        System.out.println("Hello, World!");    }} simplicityprint "Hello, World!" python
  73. 73. darimana asalnya Rp 1.618.033.988,00?
  74. 74. φ • 109http://en.wikipedia.org/wiki/Golden_ratio
  75. 75. 1+ √5 9—— • 10 2
  76. 76. mengapa tidak menggunakan NLTK?
  77. 77. bagaimana proses trainingnya?
  78. 78. cuma segini aja?
  79. 79. apakah ada chatbot framework yang siap pakai?AIML, MegaHAL, CHAT-L, ...
  80. 80. @geovedihttp://slideshare.net/geovedi

×