Upgrade to Pro — share decks privately, control downloads, hide ads and more …

タイ語のサジェストを日本人の俺が頑張った道のり

Ryotaro Ko
December 06, 2019

 タイ語のサジェストを日本人の俺が頑張った道のり

第34回Elasticsearch勉強会「LT&忘年会」( https://www.meetup.com/ja-JP/Tokyo-Elastic-Fantastics/events/266551992/ ) でのLTの公開用スライドです。

Ryotaro Ko

December 06, 2019
Tweet

More Decks by Ryotaro Ko

Other Decks in Programming

Transcript

  1. ʓʓͷαδΣετΛ
    ʓʓͷԶ͕
    ؤுͬͨ
    ಓͷΓ
    FMBTUJDTFBSDIKQ๨೥ձ-5
    !QJLBUFOPS

    View Slide

  2. ࣌͸ฏ੒๭೔

    View Slide

  3. ϓϥϯφʔʮ

    View Slide

  4. ϓϥϯφʔʮΞϓϦͷݕࡧ૭ʹ


    View Slide

  5. ϓϥϯφʔʮΞϓϦͷݕࡧ૭ʹ

    หลายรส

    View Slide

  6. ϓϥϯφʔʮΞϓϦͷݕࡧ૭ʹ

    หลายรส
    ͬͯ
    ೖΕͯ΋

    View Slide

  7. ϓϥϯφʔʮΞϓϦͷݕࡧ૭ʹ

    หลายรส
    ͬͯ
    ೖΕͯ΋
    หลายรสทองหล่อ͕
    αδΣετ͞Εͳ͍

    ͷ͸

    View Slide

  8. ϓϥϯφʔʮΞϓϦͷݕࡧ૭ʹ

    หลายรส
    ͬͯ
    ೖΕͯ΋
    หลายรสทองหล่อ͕
    αδΣετ͞Εͳ͍

    ͷ͸
    ͳΜͰʁ

    View Slide


  9. หลายรส


    หลายรสทองหล่อ

    View Slide

  10. ࣮ࡍͷ*TTVF

    View Slide

  11. View Slide

  12. 5IBJ-BOHVBHF
    ภาษาไทย

    View Slide

  13. λΠޠͷαδΣετΛ

    ೔ຊਓͷԶ͕
    ؤுͬͨ
    ಓͷΓ
    FMBTUJDTFBSDIKQ๨೥ձ-5
    !QJLBUFOPS

    View Slide

  14. - vision -
    ৯Λ௨ͯ͡

    ੈքதͷਓʑΛ)BQQZʹ
    ৴པͰ͖Δਓ͔Β୳͢
    ੍໊࣮άϧϝαʔϏε
    ສ."6
    ւ֎Χࠃʹਐग़த
    What is ?
    )POH,POH 5IBJMBOE

    View Slide

  15. ͦΜͳ͜ΜͳͰλΠޠݕࡧͷվળʹऔΓ૊Έ࢝Ίͨ!QJLBUFOPSޚҰߦ Ұ໊
    ͕ͩͬͨʜʜ

    View Slide

  16. ͕͜͜ਏ͍ΑλΠޠ

    View Slide

  17. ͕͜͜ਏ͍ΑλΠޠ
    ಡΊͳ͍

    View Slide

  18. 3FUUZ(MPCBM5FBNʹ͍ͭͯ
    ϓϥϯφʔ
    ೔ຊͱλΠΛ୯ৼಈͯͯͭ͠Α͍

    ΤϯδχΞ
    جຊతʹωΠςΟϒΞϓϦ։ൃऀ͕ϝΠϯ

    ݕࡧܥͷΈ8FCνʔϜʹ࿩͕΍ͬͯ͘Δ
    ׂͱΈΜͳࠃ಺ۀ຿ͱ݉຿
    λΠޠ࿩ऀ͸͍ͳ͍


    ݱ஍ΦϑΟε
    σʔλ֦ॆͱίϛϡχςΟϚωδϝϯτ͕ϝΠϯʢٕज़ܥελοϑ͓Βͣʣ

    View Slide

  19. ͨͪ͸͔ͩΔน
    壁①
    ݴޠͷน
    壁②
    Ϧιʔεͷน

    View Slide

  20. ͢͢Ί͔ͨ
    ݕࡧχʔζͷ೺Ѳ͕ࠔ೉
    ˠͱʹ͔͘େྔʹࣄྫΛूΊΔ

    View Slide

  21. ͢͢Ί͔ͨ
    ͜ͷαΠΫϧΛͻͨ͢Β܁Γฦ͢ײ͡ʹ
    ໦ ۚ ౔ ೔ ݄ Ր ਫ
    ɾ࣮૷ ɾ2"
    ɾϦϦʔε
    ɾݱ஍ϝϯόʔ࢖༻ײௐࠪ ɾϑΟʔυόοΫ
    Քಇ͕࣌ؒݶΒΕΔ

    View Slide

  22. 3FUUZ(MPCBMγεςϜ໘
    &MBTUJDTFBSDIඪ४4VHHFTUFSͰ͸ͳ͘௨ৗͷ*OEFYΛ࢖ͬͯ*ODSFNFOUBM4FBSDI
    ӳޠλΠޠ޿౦ޠΛಉ࣌ʹݕࡧ͍ͯ͠Δ
    ˞(MPCBMϦϦʔε౰࣌ͷཁٻʹجͮ͘


    { ※ΠϝʔδͰ͢
    "query": {
    "multi_match": {
    "query": "ΒͿΏʔ",
    "fields": [
    "restaurant_name-en",
    "restaurant_name-th",
    "restaurant_name-zh_cn"
    ]
    }
    }

    壁③
    ٕज़ͷน

    View Slide

  23. 3FUUZ(MPCBMγεςϜ໘
    ݕূ؀ڥʹ๡͍͠
    ΞϓϦ༻"1*αʔόʔTUHͷΈ
    &MBTUJDTFBSDIΫϥελຊ൪ͷΈ
    ݕূͯ͠΋Β͏ʹ΋ݱ஍ϝϯόʔͷٕज़తαϙʔτ͕ࠔ೉



    ໦ ۚ ౔ ೔ ݄ Ր ਫ
    ɾ࣮૷ ɾ2"
    ɾϦϦʔε
    ɾݱ஍ϝϯόʔ࢖༻ײௐࠪ ɾϑΟʔυόοΫ

    View Slide

  24. 3FUUZ(MPCBMγεςϜ໘
    ݕূ؀ڥʹ๡͍͠
    ΞϓϦ༻"1*αʔόʔTUHͷΈ
    &MBTUJDTFBSDIΫϥελຊ൪ͷΈ
    ݕূͯ͠΋Β͏ʹ΋ݱ஍ϝϯόʔͷٕज़తαϙʔτ͕ࠔ೉



    ໦ ۚ ౔ ೔ ݄ Ր ਫ
    ɾ࣮૷ ɾ2" ɾݱ஍ϝϯόʔ࢖༻ײௐࠪ ɾϑΟʔυόοΫ
    ΍͹ͦ͏ͳػೳ
    ɾTUHϦϦʔεɾຊ൪(PPS/P(P

    View Slide

  25. 3FUUZ(MPCBMγεςϜ໘
    ݕূ؀ڥʹ๡͍͠
    ΞϓϦ༻"1*αʔόʔTUHͷΈ
    &MBTUJDTFBSDIΫϥελຊ൪ͷΈ
    ݕূͯ͠΋Β͏ʹ΋ݱ஍ϝϯόʔͷٕज़తαϙʔτ͕ࠔ೉



    ໦ ۚ ౔ ೔ ݄ Ր ਫ
    ɾ࣮૷ ɾ2" ɾݱ஍ϝϯόʔ࢖༻ײௐࠪ ɾϑΟʔυόοΫ
    ΍͹ͦ͏ͳઃఆ
    ɾຊ൪൓ө

    ɾ଎߈Ͱ໭͢PS(P
    ΍͹ͦ͏ͳػೳ
    ɾTUHϦϦʔεɾຊ൪(PPS/P(P

    View Slide

  26. ࠷ޙͷɺ&MBTUJDTFBSDI
    ͱ͸͍͑ݩʑͷΫΤϦNBQQJOH͕Α͘ͳ͍͜ͱ͕ଟ͔ͬͨ
    ͳ͔ͥ"filter" → "query"ʹ
    "thai_tokenizer" → "icu_tokenizer"


    View Slide

  27. ࠷ޙͷɺ&MBTUJDTFBSDI
    "edge_ngram"ϕʔεͷӳޠϑΟʔϧυͱ෼͔ͪॻ͖"thai_tokenizer"ϕʔεͷ

    ϑΟʔϧυΛ"multi_match"Ͱݕࡧͯͨ͠
    ˠࣙॻϕʔε෼͔ͪॻ͖"icu_tokeinzer"Ͱ෼཭ͨ͋͠ͱ"edge_ngram"ͷ

    GJMUFSͰUPLFOJ[F͢Δ߹͍ͷࢠBOBMZ[FSΛఆٛͨ͠


    "filter": {
    "engram_filter": {
    "type": "edge_ngram",
    "min_gram": "1",
    "max_gram": "12"
    }
    }
    "analyzer": {
    "thai_engramlike_analyzer": {
    "filter": [
    "engram_filter"
    ],
    "char_filter": [
    "icu_normalizer"
    ],
    "type": "custom",
    "tokenizer": "icu_tokenizer"
    }
    }

    View Slide

  28. ·ͱΊ
    ● ݴޠͷ壁ɺϦιʔεͷ壁ɺٕज़ͷ壁
    ● ৭ʑͱॿ͚Λಘͳ͕Βͷ஍ಓͳಓͷΓͰͨ͠
    ● ੜͷݕࡧχʔζͷ೺Ѳ͸େࣄ

    ● λΠޠΘ͔ΔΤϯδχΞॿ͚ͯ͘Εʂ

    View Slide

  29. Image Credits:
    Olesya Tseytlin/Shutterstock.com, "fritened cat". [Proprietary]
    Jean Beaufort, "Orion Nebula". https://www.publicdomainpictures.net/en/view-image.php?image=210557 [PD]
    5IBOLZPVGPS-JTUFOJOH

    View Slide