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
Appleにおけるプライバシーの全容を把握する
akatsuki174
0
5.1k
近年のAppleにおける位置情報とプライバシー
akatsuki174
3
350
オフライン勉強会ぼっち対策
akatsuki174
1
510
Xcode 15の新機能
akatsuki174
0
2.4k
AndroidにもSelect Photosがやってきた
akatsuki174
0
990
Famm Android改善記
akatsuki174
0
320
Flutterアプリ開発にネイティブコードはどこまで求められるのか
akatsuki174
2
4k
UIKitのアップデート #WWDC22
akatsuki174
4
1.1k
職能/職種横断でチームの生産性を高める
akatsuki174
2
5.7k
Other Decks in Technology
See All in Technology
プレイドにおけるDatadog APMの活用方法
plaidtech
PRO
2
120
DevIO2024_レガシー運用からの脱却 -クラウド活用の実践事例とベストプラクティス-
jun2882
0
210
ソフトウェアエンジニアリングの知見を活かして データ基盤をいい感じにする on Snowflake [MIERUNE BBQ #10]
mtpooh
2
150
コミュニティサービスに「あなたへ」フィードを リリースするまでの試行錯誤
takapy
1
140
エンジニアの生存戦略 〜クラウド潮流の経験から紐解く技術トレンドのメカニズムと乗りこなし方〜
shimy
9
1.9k
年間一億円削減した時系列データベースのアーキテクチャ改善~不確実性の高いプロジェクトへの挑戦~
lycorptech_jp
PRO
3
2.9k
セキュリティ研修 Day1【MIXI 24新卒技術研修】
mixi_engineers
PRO
0
150
[NIKKEI Tech Talk]Bias for Action!! 実践から学ぶための仕組とコミュニティ / Community for Practice and Learning
kanamasa
0
260
RAGのサービスをリリースして1年3ヶ月が経ちました
segavvy
4
900
MySQLのロックの種類とその競合
yoku0825
6
1.6k
dxd2024-生成AIに振り回された3か月間の成功と失敗/dxd2024-link-and-motivation
lmi
2
260
Docker互換のセキュアなコンテナ実行環境「Podman」超入門
devops_vtj
6
3.2k
Featured
See All Featured
Building Flexible Design Systems
yeseniaperezcruz
323
37k
A better future with KSS
kneath
231
17k
BBQ
matthewcrist
82
9k
Gamification - CAS2011
davidbonilla
78
4.9k
Code Review Best Practice
trishagee
58
16k
Scaling GitHub
holman
458
140k
For a Future-Friendly Web
brad_frost
173
9.2k
YesSQL, Process and Tooling at Scale
rocio
166
14k
Robots, Beer and Maslow
schacon
PRO
157
8.1k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
353
29k
How GitHub (no longer) Works
holman
305
140k
The Invisible Side of Design
smashingmag
294
50k
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