Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
iOSエンジニアのためのNLP基礎
Search
akatsuki174
September 17, 2017
Technology
2
2k
iOSエンジニアのためのNLP基礎
iOSDC2017での登壇資料です。
akatsuki174
September 17, 2017
Tweet
Share
More Decks by akatsuki174
See All by akatsuki174
SwiftUI、UIKitでキャプチャを撮ろう!
akatsuki174
1
42
Appleにおけるプライバシーの全容を把握する
akatsuki174
0
5.4k
近年のAppleにおける位置情報とプライバシー
akatsuki174
3
400
オフライン勉強会ぼっち対策
akatsuki174
1
580
Xcode 15の新機能
akatsuki174
0
2.6k
AndroidにもSelect Photosがやってきた
akatsuki174
0
1.2k
Famm Android改善記
akatsuki174
0
340
Flutterアプリ開発にネイティブコードはどこまで求められるのか
akatsuki174
2
4.5k
UIKitのアップデート #WWDC22
akatsuki174
4
1.3k
Other Decks in Technology
See All in Technology
サイバー攻撃を想定したセキュリティガイドライン 策定とASM及びCNAPPの活用方法
syoshie
3
1.2k
Amazon SageMaker Unified Studio(Preview)、Lakehouse と Amazon S3 Tables
ishikawa_satoru
0
150
大幅アップデートされたRagas v0.2をキャッチアップ
os1ma
2
520
サーバレスアプリ開発者向けアップデートをキャッチアップしてきた #AWSreInvent #regrowth_fuk
drumnistnakano
0
190
非機能品質を作り込むための実践アーキテクチャ
knih
3
900
NW-JAWS #14 re:Invent 2024(予選落ち含)で 発表された推しアップデートについて
nagisa53
0
250
第3回Snowflake女子会_LT登壇資料(合成データ)_Taro_CCCMK
tarotaro0129
0
180
Wvlet: A New Flow-Style Query Language For Functional Data Modeling and Interactive Data Analysis - Trino Summit 2024
xerial
1
110
OpenAIの蒸留機能(Model Distillation)を使用して運用中のLLMのコストを削減する取り組み
pharma_x_tech
4
550
DevOps視点でAWS re:invent2024の新サービス・アプデを振り返ってみた
oshanqq
0
180
社内イベント管理システムを1週間でAKSからACAに移行した話し
shingo_kawahara
0
180
バクラクのドキュメント解析技術と実データにおける課題 / layerx-ccc-winter-2024
shimacos
2
1k
Featured
See All Featured
Large-scale JavaScript Application Architecture
addyosmani
510
110k
Designing Experiences People Love
moore
138
23k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
PRO
10
810
Building a Modern Day E-commerce SEO Strategy
aleyda
38
7k
Why You Should Never Use an ORM
jnunemaker
PRO
54
9.1k
What’s in a name? Adding method to the madness
productmarketing
PRO
22
3.2k
Mobile First: as difficult as doing things right
swwweet
222
9k
Site-Speed That Sticks
csswizardry
2
190
Java REST API Framework Comparison - PWX 2021
mraible
PRO
28
8.3k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
26
1.5k
A designer walks into a library…
pauljervisheath
204
24k
A Tale of Four Properties
chriscoyier
157
23k
Transcript
iOSΤϯδχΞͷͨΊͷ NLPجૅ @akatsuki174
ࣗݾհ • ਢ౻ຘ • iOSΤϯδχΞ • גࣜձࣾZaimॴଐ • iOSDC 2017ίΞελοϑ
• Twitter, Qiita, SlideShare, Github, SpeakerDeck →akatsuki174
ࠓͷεϥΠυ ɾSpeakerdeckͷϦϯΫΛઌఔTwitterͰྲྀ͠·ͨ͠ ɾݟͮΒ͍ɺޙͰݟฦ͍͕ͨ͋͠Εͪ͜Βࢀর ɹΑΖ͓͘͠ئ͍͠·͢ ʢ࣌ؒͳ͍ͷͰεϥΠυαΫαΫਐΊ·͢ʣ ΞΧϯτ @akatsuki174Ͱ͢
ࠓͷεϥΠυ ※iOS11ͷग़͖ͯ·͕͢ɺެ։͞Ε͍ͯΔใΛ ݩʹεϥΠυΛ࡞͍ͬͯ·͢ɻ
ࢲͱࣗવݴޠॲཧ ɾେֶͷଔۀݚڀͰΏΔΏΔ1ؒʢॏཁޠఆʣ ɾ࠷ॳͷձࣾͰ2,3ϲ݄ʢτϐοΫఆʣ ɾ2ࣾͰΏΔΏΔยखؒʢݕࡧνϡʔχϯάʣ
͜ͷηογϣϯͷత ɾNLP APIͲͷΑ͏ͳͷͳͷ͔ͬͯΒ͏ ɾࣗવݴޠॲཧʹগ͠ͰڵຯΛ࣋ͬͯΒ͏
͜ͷηογϣϯͷେ NLP APIΛઆ໌ͭͭͦ͠ͷཪଆͰΘΕ͍ͯΔ ࣗવݴޠॲཧͷٕज़ʹ͍ͭͯհ͠·͢
ͦͦࣗવݴޠॲཧͬͯʁ
ࣗવݴޠͱ ʮਓ͕͓ؒޓ͍ʹίϛϡχέʔγϣϯΛߦ͏ͨΊͷ ࣗવൃੜతͳݴޠʯ by Wikipedia 㱻ਓݴޠʢϓϩάϥϛϯάݴޠʣͳͲ https://ja.wikipedia.org/wiki/ࣗવݴޠ
ࣗવݴޠॲཧͱ ʮਓ͕ؒৗతʹ͍ͬͯΔࣗવݴޠΛίϯϐϡʔλʹ ॲཧͤ͞ΔҰ࿈ͷٕज़Ͱ͋ΓɺਓೳͱݴޠֶͷҰʯ by Wikipedia https://ja.wikipedia.org/wiki/ࣗવݴޠॲཧ
ࣗવݴޠॲཧͷ׆༻ྫ ɾػց༁ ɾ͔ͳࣈม ɾରγεςϜʢνϟοτϘοτʣ ɾใநग़ɺใݕࡧ
ࣗવݴޠॲཧͷશମ૾ େنσʔλ࣌ʹٻΊΒΕΔࣗવݴޠॲཧ https://www.slideshare.net/pfi/ss-11474303
ࣗવݴޠॲཧͷશମ૾ େنσʔλ࣌ʹٻΊΒΕΔࣗવݴޠॲཧ https://www.slideshare.net/pfi/ss-11474303 ΈΜͳͷେ͖ͳ ܗଶૉղੳ ୯ޠׂͷҰ
ࣗવݴޠॲཧͷશମ૾ େنσʔλ࣌ʹٻΊΒΕΔࣗવݴޠॲཧ https://www.slideshare.net/pfi/ss-11474303 NLP API͕ѻ͏ ൣғ͜͜ΒΜ
WWDC2017Ͱͷ ηογϣϯ༰ʹ͍ͭͯ
[WWDC 2017] Natural Language Processing and your Apps ɾϑΝʔετύʔςΟΞϓϦͰͲͷΑ͏ͳ׆༻͕͞ΕΔ͔ ɾࣗવݴޠॲཧͷجૅతͳઆ໌
ɾNLP APIͱ ɾNLP API׆༻ྫ ɾNLP APIΛ͏ϝϦοτ ɾσόοά࣌ͷώϯτ
[WWDC 2017] Natural Language Processing and your Apps ɾϑΝʔετύʔςΟΞϓϦͰͲͷΑ͏ͳ׆༻͕͞ΕΔ͔ ɾࣗવݴޠॲཧͷجૅతͳઆ໌
ɾNLP APIͱ ɾNLP API׆༻ྫ ɾNLP APIΛ͏ϝϦοτ ɾσόοά࣌ͷώϯτ
Natural Language Processing and your Apps / https://developer.apple.com/videos/play/wwdc2017/208/ iMessageΛ։͘ ݻ༗໊ࢺ͕มީิ
ʹग़ͯ͜ͳ͍
Natural Language Processing and your Apps / https://developer.apple.com/videos/play/wwdc2017/208/ χϡʔεΞϓϦΛ։͘ ͖ͬ͞ม͠Α͏ͱ
ͨ͠ݻ༗໊ࢺؚ͕·Ε ͍ͯΔχϡʔεΛಡΉ
Natural Language Processing and your Apps / https://developer.apple.com/videos/play/wwdc2017/208/ iMessageʹΔ ͖ͬ͞ग़ͯ͜ͳ͔ͬͨ
ݻ༗໊ࢺ͕ม ީิʹʂʂ
ͦͷଞηογϣϯ༰ʹؔ͢Δ ৄ͍͠ใQiitaͰɻ
͔͜͜ΒNLP APIʹԊͬͯ ࣗવݴޠॲཧͦͷͷʹ͍ͭͯ ͍ͨ͠ͱࢥ͍·͢ɻ
NLP APIͷॲཧͷྲྀΕ ݴ ޠ ఆ τ ʛ Ϋ ϯ
Խ ࢺ λ ά ͚ Ϩ ϯ Ϛ Խ ݻ ༗ ද ݱ ந ग़
NLP APIͷॲཧͷྲྀΕ ݴ ޠ ఆ τ ʛ Ϋ ϯ
Խ ࢺ λ ά ͚ Ϩ ϯ Ϛ Խ ݻ ༗ ද ݱ ந ग़ ຊޠඇରԠ
NLP APIͷॲཧͷྲྀΕ ݴ ޠ ఆ τ ʛ Ϋ ϯ
Խ ࢺ λ ά ͚ Ϩ ϯ Ϛ Խ ݻ ༗ ද ݱ ந ग़
ݴޠఆ ɾԿΛ͢Δʹͯ͠ݴޠ͕Θ͔Βͳ͚ΕԿͰ͖ͳ͍ ɾͦͷͨΊʢݴޠͷఆ͕ඞཁͳ߹ʣҰ൪࠷ॳʹ ɹߦΘΕΔλεΫ ɾจࣈN-gramΛ׆༻ͯ͠ఆΛߦ͏͜ͱ͕ଟ͍༷ࢠ
N-gramʹΑΔݴޠఆ ɾݴޠఆͩͬͯͦΜͳ؆୯͡Όͳ͍ ɾɾಉ͡ޠɺޠ܈ͷݴޠΑ͘ࣅ͍ͯΔ ɾͦ͜ͰN-gramͷొ ɾNจࣈ(or N୯ޠ)͝ͱʹ۠Γɺͦͷմ͕ͲͷݴޠͰΑ͘ ɹݟΒΕΔ͔Λఆʢ㲈ྨʣ
จࣈN-gramʹΑΔݴޠఆͷྫ ɾN = 1 ɹcafé ʢϑϥϯεޠʣ ɹˠ ӳޠʹʮéʯͱ͍͏දهͳ͍͔Β… etc ɾN
= 2 ɹthe peopleʢӳޠʣɹ ɹˠʮthʯͱ͍͏ฒͼӳޠʹଟ͍͕υΠπޠʹগͳ͘… etc
iOSʹ͓͚Δݴޠఆ iOS11Ͱ৽ొ ݴޠίʔυͷจࣈྻͰग़ྗ͞ΕΔ
ɾʮHelloʯͱ͍͏จࣈΛݴޠఆ͢Δͱ”it”͕ฦͬͯ͘Δ ɾɾ͔͠͠”en”ͱ͍͏Մೳੑ͋Γ͏Δ ↓ ༧Ίݴޠ͕Θ͔͍ͬͯΔͳΒͪ͜Β͔ΒݴޠΛࢦఆͯ͠ ͋͛ͨํ͕ྑ͍ ؾΛ͚ͭΔ͖͜ͱ
NLP APIͷॲཧͷྲྀΕ ݴ ޠ ఆ τ ʛ Ϋ ϯ
Խ ࢺ λ ά ͚ Ϩ ϯ Ϛ Խ ݻ ༗ ද ݱ ந ग़
ʮτʔΫϯʯʮτʔΫϯԽʯ ɾτʔΫϯʢ㲈ࣈ۟ʣ ɹςΩετதͷ୯ޠͱ۟ಡͷ͜ͱ ɾτʔΫϯԽʢ㲈ࣈ۟ղੳʣʢ㱭 ܗଶૉղੳʣ ɹࣗવݴޠϓϩάϥϛϯάݴޠͳͲͷจࣈྻΛղੳͯ͠ ɹτʔΫϯΛಘΔ͜ͱ ɹ˞ܗଶૉղੳͷղੳରࣗવݴޠͷΈ
iOSʹ͓͚ΔτʔΫφΠζ
ຊޠʹઓʂ
·͋͜Μͳ͜ͱ͋ΔΑͶ…ʁ
ࡶஊɿίϯύΠϥ͕ίʔυΛʮཧղʯ͢Δʹ ࣈ۟ղੳɺߏจղੳɺ࣮ߦίʔυੜͳͲͷաఔΛܦͯ ίϯύΠϥίʔυΛղऍ͢Δ
ࡶஊɿίϯύΠϥ͕ίʔυΛʮཧղʯ͢Δʹ ࣈ۟ղੳͷաఔͰιʔείʔυΛϓϩάϥϜ্ͷ ࠷খ୯Ґʢҙຯͷ͋Δ୯Ґʣʹׂ͢Δ ྫɿwhile (abc < 10) { abc +=
1 } (͜ͷྫจڐ͍ͯͩ͘͠͞) while / ( / abc / < / 10 / ) / { / abc / += / 1 / } /* hoge */ ͳͲͷίϝϯτҰմͱͯ͠ѻ͏
ࡶஊɿίϯύΠϥ͕ίʔυΛʮཧղʯ͢Δʹ ߏจղੳͷաఔͰɺ༩͑ΒΕͨτʔΫϯྻ͔Βߏจنଇʹ ͕ͨͬͯ͠ߏจΛղੳ͢Δ 1 + 3 * ( 9 -
3 ) + - *
NLP APIͷॲཧͷྲྀΕ ݴ ޠ ఆ τ ʛ Ϋ ϯ
Խ ࢺ λ ά ͚ Ϩ ϯ Ϛ Խ ݻ ༗ ද ݱ ந ग़
ࢺλά͚ ɾ୯ޠʹରͯ͠ࢺΛ͚͍ͭͯ͘͜ͱ ɾ׆༻ྫʢࣙॻΞϓϦʣɿςΩετதͷ͋Δ୯ޠ͕ ɹಈࢺͳͷ໊͔ࢺͳͷ͔͕Θ͔͍ͬͯΕ ɹΑΓదͳ༁ΛৼΔ͜ͱ͕Ͱ͖Δɹ
ͲͷΑ͏ʹࢺΛܾఆͯ͠Δʁ ɾܗଶૉతͳख͕͔Γ͔Β ɹhappiness → ܗ༰ࢺ, establishment → ໊ࢺ ɾ౷ޠʢ㲈ߏจʣతͳख͕͔Γ͔Β ɹӳޠͰܗ༰ࢺ໊ࢺͷલɺbeಈࢺͷޙʹஔ͔ΕΔ
ɹ͜ͱ͕ଟ͍ɺͳͲ ɾҙຯతͳख͕͔Γ͔Β ɹ໊ࢺͱɺਓɺॴɺࣄͷ໊લͰ͋ΔɺͳͲ
iOSʹ͓͚Δλά͚
NLP APIͷॲཧͷྲྀΕ ݴ ޠ ఆ τ ʛ Ϋ ϯ
Խ ࢺ λ ά ͚ Ϩ ϯ Ϛ Խ ݻ ༗ ද ݱ ந ग़
ϨϯϚԽ ࣙॻͷݟग़͠ޠΛநग़͢Δॲཧ ྫɿpresided → presideʢաڈܗ͔Βݱࡏܗʣ ɹɹhours → hourʢෳܗ͔Β୯ܗʣ
iOSʹ͓͚ΔϨϯϚԽ աڈܗ͔Βݱࡏܗʹͳ͍ͬͯΔ খจࣈʹͳ͍ͬͯͳ͍
NLP APIͷॲཧͷྲྀΕ ݴ ޠ ఆ τ ʛ Ϋ ϯ
Խ ࢺ λ ά ͚ Ϩ ϯ Ϛ Խ ݻ ༗ ද ݱ ந ग़
ݻ༗දݱநग़ ɾݻ༗໊ࢺʢਓ໊ɺ໊ʣɺ࣌ؒදݱʢɺ࣌ࠁʣͳͲ ɹΛςΩετ͔Βநग़͢Δٕज़ ɾςΩετʹ͓͍ͯݻ༗දݱॏཁใͳͷͰ ɹใநग़νϟοτϘοτͳͲͷରγεςϜʹ͓͍ͯ ɹ׆༻͞Ε͍ͯΔ
ݻ༗දݱநग़ͷख๏ ɾࣝϕʔεख๏ ɾ౷ܭతख๏
ࣝϕʔεख๏ ɾنଇʢύλʔϯʣΛਓखͰ࡞͠ɺͦΕʹͯ·Δ ɹͷΛநग़͢Δ ɹྫɿ໊ࢺʴʮ͞Μʯˠਓ໊ ɹɹɹ໊ࢺʴʮࢢʯˠ໊ ɾنଇΛཏతʹߏங͠Α͏ͱ͢Δͱലେͳίετ͕͔͔Δ
౷ܭతख๏ ɾڭࢣ͋ΓֶशΛͤ͞ɺநग़نଇΛࣗಈֶश͢ΔΑ͏ʹ͢Δ ɾSVMʢSupport Vector Machine / ࣝผؔʣCRF ɹʢConditional Random Fields
/ ࣝผϞσϧʣ͕༗໊
iOSʹ͓͚Δݻ༗දݱநग़ joinNamesΛઃఆ͍ͯ͠ΔͷͰ ෳ߹ޠͰநग़Մʂ
·ͱΊ
·ͱΊ ɾNLP APIཪଆͷࣗવݴޠॲཧΛҙࣝ͠ͳͯ͘खܰʹ ɹ͏͜ͱ͕Ͱ͖Δ ɾࣗવݴޠॲཧԞਂָ͍ͯ͘͠ʂʂʂ
ิɿؔ࿈ࢿྉҰཡ ɾ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
ऴΘΓɻ͋Γ͕ͱ͏͍͟͝·ͨ͠ɻ ͋ͱɺϦδΣΫτίϯདྷͯͶɻ
དྷͦ͏ͳ࣭ͱճ ※͋͘·Ͱࢲͷ༧ͱߟ͑Ͱ͋Γɺ ճͷਖ਼֬ੑอূ͠·ͤΜɻ
NLP APIͲ͜Ͱ͏ͷʁ ͍͍࣭Ͱɺ͍࣭͠Ͱ͢Ͷɻ ͿͬͪΌ͚ϩʔΧϧͰࣗવݴޠॲཧΛΔ໘ͦΜͳ ͳ͍ͱࢥ͍·͢ɻ Ͱ͕͢ɺ͋͑ͯڍ͛Δͱͨ͠Β࣍ͷϝϦοτ͕͋Δͱࢥ͍· ͢ɻ
ϩʔΧϧͰNLPΛΔϝϦοτ ɾΦϑϥΠϯͰ͑Δ ɾɾจষೖྗ͕සൟʹൃੜ͢ΔΞϓϦͳΒ෦ʹࣙॻ࣋ͬͯ ɹɹNLP APIΛ͍͍͔ͬͯ ɾɾݴޠఆ͔͠Θͳ͍໘ͳΒɺΘ͟Θ͟αʔόαΠυ ɹɹ͔Βݺͳ͍͍ͯ͘ͷྑ͍…͔ʁ ɾΩʔϘʔυΞϓϦͳΒࠓ·ͰΑΓॲཧָʹॻ͚Δ͔ʁ
ߟ͑ΔͳɺՄೳੑΛײ͡Ζ i M e s s a g e N
e w s NLPͰॲཧͨ͠ͷΛڞ༗͢Δ෦
ߟ͑ΔͳɺՄೳੑΛײ͡Ζ i M e s s a g e N
e w s NLPͰॲཧͨ͠ͷΛڞ༗͢Δ෦ y o u r a p p