Slide 1

Slide 1 text

iOSΤϯδχΞͷͨΊͷ NLPجૅ @akatsuki174

Slide 2

Slide 2 text

ࣗݾ঺հ • ਢ౻ຘ • iOSΤϯδχΞ • גࣜձࣾZaimॴଐ • iOSDC 2017ίΞελοϑ • Twitter, Qiita, SlideShare, Github, SpeakerDeck →akatsuki174

Slide 3

Slide 3 text

ࠓ೔ͷεϥΠυ ɾSpeakerdeckͷϦϯΫΛઌఔTwitterͰྲྀ͠·ͨ͠ ɾݟͮΒ͍ɺޙͰݟฦ͍ͨ͠౳͕͋Ε͹ͪ͜Βࢀর ɹΑΖ͓͘͠ئ͍͠·͢ ʢ࣌ؒͳ͍ͷͰεϥΠυαΫαΫਐΊ·͢ʣ ΞΧ΢ϯτ͸ @akatsuki174Ͱ͢

Slide 4

Slide 4 text

ࠓ೔ͷεϥΠυ ※iOS11ͷ࿩΋ग़͖ͯ·͕͢ɺެ։͞Ε͍ͯΔ৘ใΛ ݩʹεϥΠυΛ࡞͍ͬͯ·͢ɻ

Slide 5

Slide 5 text

ࢲͱࣗવݴޠॲཧ ɾେֶͷଔۀݚڀͰΏΔΏΔ1೥ؒʢॏཁޠ൑ఆʣ ɾ࠷ॳͷձࣾͰ2,3ϲ݄ʢτϐοΫ൑ఆʣ ɾ2ࣾ໨ͰΏΔΏΔยखؒ൒೥ʢݕࡧνϡʔχϯάʣ

Slide 6

Slide 6 text

͜ͷηογϣϯͷ໨త ɾNLP API͸ͲͷΑ͏ͳ΋ͷͳͷ͔஌ͬͯ΋Β͏ ɾࣗવݴޠॲཧʹগ͠Ͱ΋ڵຯΛ࣋ͬͯ΋Β͏

Slide 7

Slide 7 text

͜ͷηογϣϯͷେ࿮ NLP APIΛઆ໌ͭͭͦ͠ͷཪଆͰ࢖ΘΕ͍ͯΔ ࣗવݴޠॲཧͷٕज़ʹ͍ͭͯ঺հ͠·͢

Slide 8

Slide 8 text

ͦ΋ͦ΋ࣗવݴޠॲཧͬͯʁ

Slide 9

Slide 9 text

ࣗવݴޠͱ͸ ʮਓ͕͓ؒޓ͍ʹίϛϡχέʔγϣϯΛߦ͏ͨΊͷ ࣗવൃੜతͳݴޠʯ by Wikipedia 㱻ਓ޻ݴޠʢϓϩάϥϛϯάݴޠ౳ʣͳͲ https://ja.wikipedia.org/wiki/ࣗવݴޠ

Slide 10

Slide 10 text

ࣗવݴޠॲཧͱ͸ ʮਓ͕ؒ೔ৗతʹ࢖͍ͬͯΔࣗવݴޠΛίϯϐϡʔλʹ ॲཧͤ͞ΔҰ࿈ͷٕज़Ͱ͋Γɺਓ޻஌ೳͱݴޠֶͷҰ෼໺ʯ by Wikipedia https://ja.wikipedia.org/wiki/ࣗવݴޠॲཧ

Slide 11

Slide 11 text

ࣗવݴޠॲཧͷ׆༻ྫ ɾػց຋༁ ɾ͔ͳ׽ࣈม׵ ɾର࿩γεςϜʢνϟοτϘοτ౳ʣ ɾ৘ใநग़ɺ৘ใݕࡧ

Slide 12

Slide 12 text

ࣗવݴޠॲཧͷશମ૾ େن໛σʔλ࣌୅ʹٻΊΒΕΔࣗવݴޠॲཧ https://www.slideshare.net/pfi/ss-11474303

Slide 13

Slide 13 text

ࣗવݴޠॲཧͷશମ૾ େن໛σʔλ࣌୅ʹٻΊΒΕΔࣗવݴޠॲཧ https://www.slideshare.net/pfi/ss-11474303 ΈΜͳͷେ޷͖ͳ ܗଶૉղੳ͸ ୯ޠ෼ׂͷҰ෼໺

Slide 14

Slide 14 text

ࣗવݴޠॲཧͷશମ૾ େن໛σʔλ࣌୅ʹٻΊΒΕΔࣗવݴޠॲཧ https://www.slideshare.net/pfi/ss-11474303 NLP API͕ѻ͏ ൣғ͸͜͜Β΁Μ

Slide 15

Slide 15 text

WWDC2017Ͱͷ ηογϣϯ಺༰ʹ͍ͭͯ

Slide 16

Slide 16 text

[WWDC 2017] Natural Language Processing and your Apps ɾϑΝʔετύʔςΟΞϓϦͰͲͷΑ͏ͳ׆༻͕͞ΕΔ͔ ɾࣗવݴޠॲཧͷجૅతͳઆ໌ ɾNLP APIͱ͸ ɾNLP API׆༻ྫ ɾNLP APIΛ࢖͏ϝϦοτ ɾσόοά࣌ͷώϯτ

Slide 17

Slide 17 text

[WWDC 2017] Natural Language Processing and your Apps ɾϑΝʔετύʔςΟΞϓϦͰͲͷΑ͏ͳ׆༻͕͞ΕΔ͔ ɾࣗવݴޠॲཧͷجૅతͳઆ໌ ɾNLP APIͱ͸ ɾNLP API׆༻ྫ ɾNLP APIΛ࢖͏ϝϦοτ ɾσόοά࣌ͷώϯτ

Slide 18

Slide 18 text

Natural Language Processing and your Apps / https://developer.apple.com/videos/play/wwdc2017/208/ iMessageΛ։͘ ݻ༗໊ࢺ͕ม׵ީิ ʹग़ͯ͜ͳ͍

Slide 19

Slide 19 text

Natural Language Processing and your Apps / https://developer.apple.com/videos/play/wwdc2017/208/ χϡʔεΞϓϦΛ։͘ ͖ͬ͞ม׵͠Α͏ͱ ͨ͠ݻ༗໊ࢺؚ͕·Ε ͍ͯΔχϡʔεΛಡΉ

Slide 20

Slide 20 text

Natural Language Processing and your Apps / https://developer.apple.com/videos/play/wwdc2017/208/ iMessageʹ໭Δ ͖ͬ͞ग़ͯ͜ͳ͔ͬͨ ݻ༗໊ࢺ͕ม׵ ީิʹʂʂ

Slide 21

Slide 21 text

ͦͷଞηογϣϯ಺༰ʹؔ͢Δ ৄ͍͠৘ใ͸QiitaͰɻ

Slide 22

Slide 22 text

͔͜͜Β͸NLP APIʹԊͬͯ ࣗવݴޠॲཧͦͷ΋ͷʹ͍ͭͯ ࿩͍ͨ͠ͱࢥ͍·͢ɻ

Slide 23

Slide 23 text

NLP APIͷॲཧͷྲྀΕ ݴ ޠ ൑ ఆ τ ʛ Ϋ ϯ Խ ඼ ࢺ λ ά ෇ ͚ Ϩ ϯ Ϛ Խ ݻ ༗ ද ݱ ந ग़

Slide 24

Slide 24 text

NLP APIͷॲཧͷྲྀΕ ݴ ޠ ൑ ఆ τ ʛ Ϋ ϯ Խ ඼ ࢺ λ ά ෇ ͚ Ϩ ϯ Ϛ Խ ݻ ༗ ද ݱ ந ग़ ೔ຊޠඇରԠ

Slide 25

Slide 25 text

NLP APIͷॲཧͷྲྀΕ ݴ ޠ ൑ ఆ τ ʛ Ϋ ϯ Խ ඼ ࢺ λ ά ෇ ͚ Ϩ ϯ Ϛ Խ ݻ ༗ ද ݱ ந ग़

Slide 26

Slide 26 text

ݴޠ൑ఆ ɾԿΛ͢Δʹͯ͠΋ݴޠ͕Θ͔Βͳ͚Ε͹Կ΋Ͱ͖ͳ͍ ɾͦͷͨΊʢݴޠͷ൑ఆ͕ඞཁͳ৔߹͸ʣҰ൪࠷ॳʹ ɹߦΘΕΔλεΫ ɾจࣈN-gramΛ׆༻ͯ͠൑ఆΛߦ͏͜ͱ͕ଟ͍༷ࢠ

Slide 27

Slide 27 text

N-gramʹΑΔݴޠ൑ఆ ɾݴޠ൑ఆͩͬͯͦΜͳ؆୯͡Όͳ͍ ɾɾಉ͡ޠ೿ɺޠ܈ͷݴޠ͸Α͘ࣅ͍ͯΔ ɾͦ͜ͰN-gramͷొ৔ ɾNจࣈ(or N୯ޠ)͝ͱʹ۠੾Γɺͦͷմ͕ͲͷݴޠͰΑ͘ ɹݟΒΕΔ͔Λ൑ఆʢ㲈෼ྨʣ

Slide 28

Slide 28 text

จࣈN-gramʹΑΔݴޠ൑ఆͷྫ ɾN = 1 ɹcafé ʢϑϥϯεޠʣ ɹˠ ӳޠʹ͸ʮéʯͱ͍͏දه͸ͳ͍͔Β… etc ɾN = 2 ɹthe peopleʢӳޠʣɹ ɹˠʮthʯͱ͍͏ฒͼ͸ӳޠʹଟ͍͕υΠπޠʹ͸গͳ͘… etc

Slide 29

Slide 29 text

iOSʹ͓͚Δݴޠ൑ఆ iOS11Ͱ৽ొ৔ ݴޠίʔυͷจࣈྻͰग़ྗ͞ΕΔ

Slide 30

Slide 30 text

ɾʮHelloʯͱ͍͏จࣈΛݴޠ൑ఆ͢Δͱ”it”͕ฦͬͯ͘Δ ɾɾ͔͠͠”en”ͱ͍͏Մೳੑ΋͋Γ͏Δ ↓ ༧Ίݴޠ͕Θ͔͍ͬͯΔͳΒͪ͜Β͔ΒݴޠΛࢦఆͯ͠ ͋͛ͨํ͕ྑ͍ ؾΛ͚ͭΔ΂͖͜ͱ

Slide 31

Slide 31 text

NLP APIͷॲཧͷྲྀΕ ݴ ޠ ൑ ఆ τ ʛ Ϋ ϯ Խ ඼ ࢺ λ ά ෇ ͚ Ϩ ϯ Ϛ Խ ݻ ༗ ද ݱ ந ग़

Slide 32

Slide 32 text

ʮτʔΫϯʯʮτʔΫϯԽʯ ɾτʔΫϯʢ㲈ࣈ۟ʣ ɹςΩετதͷ୯ޠͱ۟ಡ఺ͷ͜ͱ ɾτʔΫϯԽʢ㲈ࣈ۟ղੳʣʢ㱭 ܗଶૉղੳʣ ɹࣗવݴޠ΍ϓϩάϥϛϯάݴޠͳͲͷจࣈྻΛղੳͯ͠ ɹτʔΫϯΛಘΔ͜ͱ ɹ˞ܗଶૉղੳͷղੳର৅͸ࣗવݴޠͷΈ

Slide 33

Slide 33 text

iOSʹ͓͚ΔτʔΫφΠζ

Slide 34

Slide 34 text

೔ຊޠʹ΋௅ઓʂ

Slide 35

Slide 35 text

·͋͜Μͳ͜ͱ΋͋ΔΑͶ…ʁ

Slide 36

Slide 36 text

ࡶஊɿίϯύΠϥ͕ίʔυΛʮཧղʯ͢Δʹ͸ ࣈ۟ղੳɺߏจղੳɺ࣮ߦίʔυੜ੒ͳͲͷաఔΛܦͯ ίϯύΠϥ͸ίʔυΛղऍ͢Δ

Slide 37

Slide 37 text

ࡶஊɿίϯύΠϥ͕ίʔυΛʮཧղʯ͢Δʹ͸ ࣈ۟ղੳͷաఔͰ͸ιʔείʔυΛϓϩάϥϜ্ͷ ࠷খ୯Ґʢҙຯͷ͋Δ୯Ґʣʹ෼ׂ͢Δ ྫɿwhile (abc < 10) { abc += 1 } (͜ͷྫจڐ͍ͯͩ͘͠͞) while / ( / abc / < / 10 / ) / { / abc / += / 1 / } /* hoge */ ͳͲͷίϝϯτ΋Ұմͱͯ͠ѻ͏

Slide 38

Slide 38 text

ࡶஊɿίϯύΠϥ͕ίʔυΛʮཧղʯ͢Δʹ͸ ߏจղੳͷաఔͰ͸ɺ༩͑ΒΕͨτʔΫϯྻ͔Βߏจنଇʹ ͕ͨͬͯ͠ߏจΛղੳ͢Δ 1 + 3 * ( 9 - 3 ) + - *

Slide 39

Slide 39 text

NLP APIͷॲཧͷྲྀΕ ݴ ޠ ൑ ఆ τ ʛ Ϋ ϯ Խ ඼ ࢺ λ ά ෇ ͚ Ϩ ϯ Ϛ Խ ݻ ༗ ද ݱ ந ग़

Slide 40

Slide 40 text

඼ࢺλά෇͚ ɾ୯ޠʹରͯ͠඼ࢺΛ͚͍ͭͯ͘͜ͱ ɾ׆༻ྫʢࣙॻΞϓϦʣɿςΩετதͷ͋Δ୯ޠ͕ ɹಈࢺͳͷ໊͔ࢺͳͷ͔͕Θ͔͍ͬͯΕ͹ ɹΑΓద੾ͳ༁ΛৼΔ͜ͱ͕Ͱ͖Δɹ

Slide 41

Slide 41 text

ͲͷΑ͏ʹ඼ࢺΛܾఆͯ͠Δʁ ɾܗଶૉతͳख͕͔Γ͔Β ɹhappiness → ܗ༰ࢺ, establishment → ໊ࢺ ɾ౷ޠʢ㲈ߏจʣతͳख͕͔Γ͔Β ɹӳޠͰ͸ܗ༰ࢺ͸໊ࢺͷ௚લɺbeಈࢺͷ௚ޙʹஔ͔ΕΔ ɹ͜ͱ͕ଟ͍ɺͳͲ ɾҙຯతͳख͕͔Γ͔Β ɹ໊ࢺͱ͸ɺਓɺ৔ॴɺ෺ࣄͷ໊લͰ͋ΔɺͳͲ

Slide 42

Slide 42 text

iOSʹ͓͚Δλά෇͚

Slide 43

Slide 43 text

NLP APIͷॲཧͷྲྀΕ ݴ ޠ ൑ ఆ τ ʛ Ϋ ϯ Խ ඼ ࢺ λ ά ෇ ͚ Ϩ ϯ Ϛ Խ ݻ ༗ ද ݱ ந ग़

Slide 44

Slide 44 text

ϨϯϚԽ ࣙॻͷݟग़͠ޠΛநग़͢Δॲཧ ྫɿpresided → presideʢաڈܗ͔Βݱࡏܗ΁ʣ ɹɹhours → hourʢෳ਺ܗ͔Β୯਺ܗ΁ʣ

Slide 45

Slide 45 text

iOSʹ͓͚ΔϨϯϚԽ աڈܗ͔Βݱࡏܗʹͳ͍ͬͯΔ খจࣈʹͳ͍ͬͯͳ͍

Slide 46

Slide 46 text

NLP APIͷॲཧͷྲྀΕ ݴ ޠ ൑ ఆ τ ʛ Ϋ ϯ Խ ඼ ࢺ λ ά ෇ ͚ Ϩ ϯ Ϛ Խ ݻ ༗ ද ݱ ந ग़

Slide 47

Slide 47 text

ݻ༗දݱநग़ ɾݻ༗໊ࢺʢਓ໊ɺ஍໊౳ʣɺ࣌ؒදݱʢ೔෇ɺ࣌ࠁʣͳͲ ɹΛςΩετ͔Βநग़͢Δٕज़ ɾςΩετʹ͓͍ͯݻ༗දݱ͸ॏཁ৘ใͳͷͰ ɹ৘ใநग़΍νϟοτϘοτͳͲͷର࿩γεςϜʹ͓͍ͯ ɹ׆༻͞Ε͍ͯΔ

Slide 48

Slide 48 text

ݻ༗දݱநग़ͷख๏ ɾ஌ࣝϕʔεख๏ ɾ౷ܭతख๏

Slide 49

Slide 49 text

஌ࣝϕʔεख๏ ɾنଇʢύλʔϯʣΛਓखͰ࡞੒͠ɺͦΕʹ౰ͯ͸·Δ ɹ΋ͷΛநग़͢Δ ɹྫɿ໊ࢺʴʮ͞Μʯˠਓ໊ ɹɹɹ໊ࢺʴʮࢢʯˠ஍໊ ɾنଇΛ໢ཏతʹߏங͠Α͏ͱ͢Δͱലେͳίετ͕͔͔Δ

Slide 50

Slide 50 text

౷ܭతख๏ ɾڭࢣ͋ΓֶशΛͤ͞ɺநग़نଇΛࣗಈֶश͢ΔΑ͏ʹ͢Δ ɾSVMʢSupport Vector Machine / ࣝผؔ਺ʣ΍CRF ɹʢConditional Random Fields / ࣝผϞσϧʣ͕༗໊

Slide 51

Slide 51 text

iOSʹ͓͚Δݻ༗දݱநग़ joinNamesΛઃఆ͍ͯ͠ΔͷͰ ෳ߹ޠͰ΋நग़Մʂ

Slide 52

Slide 52 text

·ͱΊ

Slide 53

Slide 53 text

·ͱΊ ɾNLP API͸ཪଆͷࣗવݴޠॲཧΛҙࣝ͠ͳͯ͘΋खܰʹ ɹ࢖͏͜ͱ͕Ͱ͖Δ ɾࣗવݴޠॲཧ͸Ԟਂָ͍ͯ͘͠ʂʂʂ

Slide 54

Slide 54 text

ิ଍ɿؔ࿈ࢿྉҰཡ ɾNLP APIͰ͍Ζ͍Ζࢼͯ͠Έͨʢۙ೔ެ։ʣ ɹʢNDAͷؔ܎Ͱʣ ɾNatural Language APIͱͦͷཪଆΛ೷͘[׬શ൛] https://speakerdeck.com/akatsuki174/natural-language- apitosofalseli-ce-wosi-ku-wan-quan-ban ɾࣗવݴޠॲཧͱΞϓϦ http://qiita.com/akatsuki174/items/9f273ecfd29245a9f39d

Slide 55

Slide 55 text

ऴΘΓɻ͋Γ͕ͱ͏͍͟͝·ͨ͠ɻ ͋ͱɺϦδΣΫτίϯདྷͯͶɻ

Slide 56

Slide 56 text

དྷͦ͏ͳ࣭໰ͱճ౴ ※͋͘·Ͱ΋ࢲͷ༧૝ͱߟ͑Ͱ͋Γɺ ճ౴ͷਖ਼֬ੑ͸อূ͠·ͤΜɻ

Slide 57

Slide 57 text

NLP APIͲ͜Ͱ࢖͏ͷʁ ͍͍࣭໰Ͱɺ೉͍࣭͠໰Ͱ͢Ͷɻ ͿͬͪΌ͚ϩʔΧϧͰࣗવݴޠॲཧΛ΍Δ৔໘͸ͦΜͳ ͳ͍ͱࢥ͍·͢ɻ Ͱ͕͢ɺ͋͑ͯڍ͛Δͱͨ͠Β࣍ͷϝϦοτ͕͋Δͱࢥ͍· ͢ɻ

Slide 58

Slide 58 text

ϩʔΧϧͰNLPΛ΍ΔϝϦοτ ɾΦϑϥΠϯͰ΋࢖͑Δ ɾɾจষೖྗ͕සൟʹൃੜ͢ΔΞϓϦͳΒ಺෦ʹࣙॻ࣋ͬͯ ɹɹNLP APIΛ࢖ͬͯ΋͍͍͔΋ ɾɾݴޠ൑ఆ͔͠࢖Θͳ͍৔໘ͳΒɺΘ͟Θ͟αʔόαΠυ ɹɹ͔Βݺ͹ͳ͍͍ͯ͘ͷ͸ྑ͍…͔΋ʁ ɾΩʔϘʔυΞϓϦͳΒࠓ·ͰΑΓॲཧָʹॻ͚Δ͔΋ʁ

Slide 59

Slide 59 text

ߟ͑ΔͳɺՄೳੑΛײ͡Ζ i M e s s a g e N e w s NLPͰॲཧͨ͠΋ͷΛڞ༗͢Δ෦෼

Slide 60

Slide 60 text

ߟ͑ΔͳɺՄೳੑΛײ͡Ζ i M e s s a g e N e w s NLPͰॲཧͨ͠΋ͷΛڞ༗͢Δ෦෼ y o u r a p p