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
LT@PythonBeginners沖縄
Search
Aipa
November 17, 2018
Technology
1
930
LT@PythonBeginners沖縄
ここでLTしてきた
https://python-beginners-okinawa.connpass.com/event/106466/
Aipa
November 17, 2018
Tweet
Share
More Decks by Aipa
See All by Aipa
ピンチヒッターです。なにか話します
commander_aipa
0
82
おれたちはいつDXできるのか
commander_aipa
1
46
ウンケーニオキタコワイハナシ
commander_aipa
0
95
Nuxt3 Deeeeeeeeeeeeeeeeeeeeeploy
commander_aipa
0
140
Meilisearchでハイブリッドベクトル検索
commander_aipa
0
91
Honoの導入を検討していたが、Honoの人が来沖するらしいので、急いでHonoを導入した話
commander_aipa
0
170
Dの意思は神を殺す
commander_aipa
0
82
ファインチューニングがしたい
commander_aipa
0
170
サクッと検索サーバを用意する
commander_aipa
0
180
Other Decks in Technology
See All in Technology
LINEギフトにおけるバックエンド開発
lycorptech_jp
PRO
0
290
わたしがEMとして入社した「最初の100日」の過ごし方 / EMConfJp2025
daiksy
14
5.1k
Amazon Q Developerの無料利用枠を使い倒してHello worldを表示させよう!
nrinetcom
PRO
2
120
Охота на косуль у древних
ashapiro
0
110
あなたが人生で成功するための5つの普遍的法則 #jawsug #jawsdays2025 / 20250301 HEROZ
yoshidashingo
2
300
Snowflakeの開発・運用コストをApache Icebergで効率化しよう!~機能と活用例のご紹介~
sagara
1
460
JavaにおけるNull非許容性
skrb
2
2.6k
LINE NEWSにおけるバックエンド開発
lycorptech_jp
PRO
0
250
大規模アジャイルフレームワークから学ぶエンジニアマネジメントの本質
staka121
PRO
3
1.2k
遷移の高速化 ヤフートップの試行錯誤
narirou
6
1.2k
分解して理解する Aspire
nenonaninu
2
1.1k
データベースの負荷を紐解く/untangle-the-database-load
emiki
2
520
Featured
See All Featured
Why You Should Never Use an ORM
jnunemaker
PRO
55
9.2k
YesSQL, Process and Tooling at Scale
rocio
172
14k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
7
640
GraphQLの誤解/rethinking-graphql
sonatard
68
10k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
30
2.2k
Become a Pro
speakerdeck
PRO
26
5.2k
The Power of CSS Pseudo Elements
geoffreycrofte
75
5.5k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
330
21k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
27
1.9k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
33
2.1k
Music & Morning Musume
bryan
46
6.4k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
28
9.3k
Transcript
Python Beginners ԭೄ ΞΠύʔୂ@ླྀٿେֶ
ຊ͓͢Δ͜ͱ
ຊ͓͢Δ͜ͱ • ൪ • σʔλΛ֬ೝ͢Δ͜ͱେࣄ • TF-IDF
ࣗݾհ
ࣗݾհ • ΞΠύʔୂ • ͪΎΒσʔλגࣜձࣾ • PyData.OkinawaڞಉΦʔΨφΠβʔ • ࠷ۙͷΠϕϯτ ࢠڙ͕ੜ·Εͨ
൪
൪ • ࣍ͷεϥΠυͰհ͢Δөըʹ͍ͭͯɺ ͦΕͧΕԿσϏϧϚϯ͔͑ͳ͍͞
σϏϧϚϯ(୯Ґ)ͱ https://twitter.com/1gho/status/936593895453900800
͊͞ɺ͍͑ͯͩ͘͞
ਖ਼ղʢҟೝΊΔʣ -10σϏϧϚϯ 0.2σϏϧϚϯ
Կ͕ݴ͍͍ͨͷ͔ʢҰൠ͚ʣ • ύοέʔδࣅ͗͢ → ٗߴͳςΫχοΫͰ ཕΛΧϞϑϥʔδϡ • ཕΛ౿Ήͱ1࣌ؒͱ100ԁ͕ফ͑ͯͳ͘ ͳΔ →
͍ͬͨͳ͍ • ཕΛࣄલʹճආ͢ΔͨΊͷใ͕΄͍͠
Կ͕ݴ͍͍ͨͷ͔ʢݰਓ͚ʣ • ཕͱࢥ͚ͬͨͲ໘ന͍өըͩͬͨͱ͍͏ύλʔϯΑ͋͘Δ • ΈΜͳBڃөըͷϨϏϡʔதʑͯ͘͠Εͳ͍ • ·ͱΊͨϨϏϡʔΛੳͨ͠WebαΠτ࡞Ζ͏ • ͪͳΈʹͲͬͪΈͨʢ͔ͤͬ͘ͳͷͰ͝հʣ •
σΟηϯτ → ಎ۸ด͡ࠐΊΒΕεϦϥʔͱࢥ͍͖ಥવͷఈਓ • έΠϰϑΟΞʔ → ಎ۸γʔϯ̏ɻέΠϰͱɾɾɾʁ
൪ऴΘΓ • ͱΓ͋͑ͣWebαΠτΛ࡞͍ͬͯ·͢ • BڃөըΛϨϏϡʔ͍ͯ͠ΔϒϩάهࣄΛΫϩʔϧ • ϨϏϡʔهࣄʹϥϕϧʢ໘ന͔ͬͨ or ͭ·Βͳ͔ͬͨʣ •
σʔλ֬ೝ • લॲཧ • Ϟσϧߏங • Vue.jsͰαΠτΛߏங
൪ऴΘΓ • ͱΓ͋͑ͣWebαΠτΛ࡞͍ͬͯ·͢ • BڃөըΛϨϏϡʔ͍ͯ͠ΔϒϩάهࣄΛΫϩʔϧ • ϨϏϡʔهࣄʹϥϕϧʢ໘ന͔ͬͨ or ͭ·Βͳ͔ͬͨʣ •
σʔλ֬ೝ • લॲཧ • Ϟσϧߏங • Vue.jsͰαΠτΛߏங
ͦ͏͍͑ɺࠓ͜ͷձʹࣗવݴޠॲཧͷϓϩ͕͍Δͷ Ͱͳʹ͔ࠔͬͨ͜ͱ͋Δਓฉ͍ͯΈΔͱ͍͍͔͠·ͤΜ ※΅͘ϚαΧϦΛ͍ʹདྷ·ͨ͠ ʮϚαΧϦΛ͑Δ΅͘ʯͷ Πϝʔδਤʢ༧ʣ
ϨϏϡʔهࣄʹϥϕϧ ʢ໘ന͔ͬͨ or ͭ·Βͳ͔ͬͨʣ
ϨϏϡʔهࣄʹϥϕϧ • Ϋϩʔϥʔ࡞ͬͯूΊ͖ͯͨөըͷϨϏϡʔ σʔλʹϥϕϧΛߦ͏ • ϥϕϧͱʁ → ྫ͑ը૾Λ֬ೝͨ͠ͱ͖ ʹೣ or
ೣ͡Όͳ͍ͷᝦΛషΔΠϝʔδ • ػցֶश͢Δͱ͖ʹඞཁʹͳΔ
ͤͬͤͱϥϕϧΛ;Δ 0 → ໘ന͔ͬͨ 1 → ͭ·Βͳ͔ͬͨ
ʢ͜ͷ࡞ۀʣ ͭ·Βͳ͔ͬͨ
ͱΓ͋͑ͣΦϫλʢ࡞ۀ͕ʣ • 5αΠτ͔͠ऩू͍ͯ͠ͳ͍͕هࣄશ෦Ͱ650݅ • ͏ͪ607݅ʹϥϕϧΛ͚ͭΔ͜ͱ͕Ͱ͖ͨ • ʮͭ·Βͳ͔ͬͨʯ374݅ʮ໘ന͔ͬͨʯ233݅ • Γ43݅өըͷϨϏϡʔهࣄͰͳ͔ͬͨ •
͍ۙ͏ͪʹ͜͏͍͏࡞ۀࣗಈͰΓ͍ͨ ʢϥϕϧͱ͔ϨϏϡʔ͡Όͳ͍هࣄআ֎ͱ͔ʣ
Ͷ͘͢ͱ
Ͷ͘͢ͱ • ϨϏϡʔੳͷهࣄ͕ݟ͔ͭΒͳ͍ͷͰɺ Γํ͕Θ͔Βͳ͍ • ࣗવݴޠॲཧͰ͙͙ͬͨΒʮ୯ޠग़ݱසʯɺ ʮTF-IDFʯɺʮFastTextʯͰͳΜ͔͍ͬͯΔ هࣄ͕͋ͬͨ • FastTextਫ਼Αͦ͞͏
Α͠ʂ·ͣ FastTextΛࢼͯ͠ΈΑ͏ʂ
ͦΜͳ࣌ظ͕ ΅͘ʹ͋Γ·ͨ͠
σʔλΛ֬ೝ͠Α͏ • ػցֶशઌߦͯ͠Γ͍ͨؾ࣋ͪΘ͔Δ͕ɺσʔλͲ͏ ͍͏ಛΛ͍࣋ͬͯΔͷ͔ɺ֬ೝͤͣʹΔͱ௧͍ʹ ʢಛʹࣄͰʣ • զʑͷతϞσϧΛ࡞Δ͜ͱ͕తͰͳ͍ɺ ϞσϧΛͬͯͳʹ͔Λղܾ͢Δ͜ͱ͕త • σʔλͷ֬ೝ࡞ۀటष͍͕ɺ͜ͷۀքͰͷట༡ͼਖ਼ٛ
σʔλͷ֬ೝ
σʔλͷ֬ೝ • ͭ·Βͳ͍өըͷϨϏϡʔهࣄͬͯɺ ωΨςΟϒͳΩʔϫʔυ͕ଟ͍ͱࢥ͏ • ·ͣɺจষதʹωΨςΟϒͳΩʔϫʔυ͕ ଘࡏ͍ͯ͠Δ͔ɺϥϕϧຖʹूܭͯ͠ΈΔ
өըͷωΨςΟϒΩʔϫʔυ ʢͷ૾ʣ ͦ͘ɺΫιɺฅɺμϝɺBڃɺCڃɺZڃɺνʔ ϓɺ͍҆ɺ໘ന͘ͳ͍ɺͭ·Βͳ͍ɺস͑Δɺ ςϯϙ͕ѱ͍ɺύΫϦɺ࣌ؒͷແବɺۚฦͤɺ ͍ɺ৸མͪɺύοέʔδٗɺύοέʔδͱ ҧ͏ɺ಄͓͔͍͠ɺ͍͍͚ͭͯͳ͍ɺԋٕ͕Լ खɺΦν͕ͳ͍ɺݟॴ͕ͳ͍
ूܭ݁Ռ • ༧௨ΓɺωΨςΟϒͬ Ά͍ͰɺྨͰ͖ͦ͏ ͳงғؾ • લͷϖʔδʹ͋ͬͨͷʹ ӈਤʹͳ͍୯ޠهࣄʹ ଘࡏ͠ͳ͍୯ޠ •
ωΨςΟϒͳ୯ޠ͕ώο τͨ͠Βʮͭ·Βͳ͔ͬ ͨʯͱ༧ଌͯ͠ΈΔ
ωΨςΟϒͳϫʔυ͚ͩͰ༧ଌͯ͠ΈΔ • ୯ޠΛݕࡧ͢Δ͚ͩͰ 60%ͷਫ਼ • ͜ͷ݁ՌΛϕʔεϥΠϯ ͱͯ͠ਐΊΔ • ϋζϨͷσʔλΛ ֬ೝͯ͠ΈΔ
ϋζϨͷ֬ೝ • ʮͭ·Βͳ͔ͬͨʯͷʹʮͭ·Βͳ͔ͬͨʯͱ༧ଌͰ͖ͳ͍ͷɺ༻ҙͨ͠ωΨςΟ ϒͳ୯ޠʹϚον͠ͳ͔͔ͬͨΒ • ྫʣಀ͍ͯ͠Δύλʔϯʮຊ࡞ඇৗʹ೦ͳࢠͰ͋Δʯɺʮ๙ΊΔͱ͜Ζ͕ͳ ͍ʯɺʮָ͘͠ͳ͍ʯ • Ճ͢Εྑ͍ɻ͕ɺͦͷՃΊΜͲ͍͘͞… •
ʮ໘ന͔ͬͨʯͷʹʮͭ·Βͳ͔ͬͨʯͱ༧ଌͯ͠͠·ͬͨͷɺ༻ҙͨ͠ωΨςΟ ϒͳ୯ޠʹϚονͯ͠͠·͔ͬͨΒ • ϨϏϡʔهࣄʹʮBڃʯͱॻ͍ͯ͠·͚ͬͨͩͰɺʮͭ·Βͳ͔ͬͨʯͱྨͯ͠ ͠·͏ͷ·ͣͦ͏ • ୯७ͳΩʔϫʔυϚονϯάͰճආ͢Δ͜ͱ͍͠ͱࢥ͏
ͪͳΈʹ
ʮ໘ന͔ͬͨʯͷʹʮͭ·Βͳ͔ͬͨʯͱ ༧ଌͨ͠ݪҼΛௐΔ1ྫ
ʮ໘ന͔ͬͨʯͷʹʮͭ·Βͳ͔ͬͨʯͱ ༧ଌͨ͠ݪҼΛௐΔ1ྫ http://rottentaste.blog.fc2.com/blog-entry-23.html#more
http://rottentaste.blog.fc2.com/blog-entry-23.html#more ʮ໘ന͔ͬͨʯͷʹʮͭ·Βͳ͔ͬͨʯͱ ༧ଌͨ͠ݪҼΛௐΔ1ྫ
ͳΔ΄Ͳɾɾɾ ʢϥϕϧ͕ؒҧͬͯͨʣ
σʔλΛ֬ೝ͠Α͏ʢ࠶ܝʣ • ͜͏͍͏͜ͱ͕͋Δ • ͜ΕΛং൫Ͱؾͮ͘ͷ͔ɺੳத൫·ͨ ऴ൫Ͱؾͮ͘ͷ͔ͰɺϦΧόϦͷେม͕͞ ҧ͏ • ͥͻɺػցֶश͢Δ·͑ʹσʔλͷ֬ೝΛ
ͪͳΈʮϩϘΫϩίʯ͖Ͱ͢ ޙ৸མ͔ͪͨ͠Β͋Μ·Γ֮͑ͯͳ͍
Ͷ͘͢ͱ͋͘͠ΐΜ
Ͷ͘͢ͱ͋͘͠ΐΜ • ωΨςΟϒͳϫʔυͰྨͰ͖ͦ͏ͳงғؾͳͷΘ͔ͬͨ • ͔͠͠ɺΩʔϫʔυϚονϯά͚ͩͰ͍͜͠ͱΘ͔ͬͨ • ୯ޠग़ݱසΛ֬ೝͯ͠ɺ্Ґ10Ґ·Ͱϥϕϧຖʹൺֱͨ͠Βɺ ͳʹ͔ಛ͕ݟ͑ͳ͍ͩΖ͏͔ • ଟʮαϝʯ͕༏উ͢Δͱ༧
• ୯ޠग़ݱසͳΜͱͳ݁͘Ռ͕༧Ͱ͖ͯɺ͏·͍͔͘ͳͦ͞ ͏ͳͷͰɺॏΈ͚͢Δ͜ͱ͕Ͱ͖ΔTF-IDFͰ֬ೝͯ͠ΈΑ͏͔
୯ޠग़ݱසͷ֬ೝ
୯ޠग़ݱසͷ֬ೝ • ϨϏϡʔهࣄຖʹ୯ޠͷग़ݱසΛܭࢉ͢Δ • ͭ·Βͳ͍өըͲΜͳ୯ޠ͕ଟ͍͔ͳʁ • scikit-learnͷCountVectorizerΛ͏
݁Ռ • ʮαϝʯʮΤΠϦΞϯʯʮκϯϏʯ্͕Ґ • ͏Μɺͬͯͨ • ωΨςΟϒͬΆ͍୯ޠ্Ґʹ͖ͯͳ͍ • ͲͪΒࣅͨΑ͏ͳ୯ޠ্͕ҐʹฒΜͰ͍Δ •
ΫιөըΛ໘ന͍ͱ͍͍ͬͯΔਓ͕͍ΔͨΊ • ͦͦॳճΫϩʔϧ͍ͯ͠Δϒϩάͷ өըδϟϯϧʹภΓ͕… • ͜ͷใͰʮ໘ന͔ͬͨʯʮͭ·Βͳ͔ͬͨʯΛ͚Δͷͦ͠͏Ͱ͋Δ • ໘ന͘ͳ͍өը_wordͷ8Ґͷʮୂʯͬͯͳʹʁ → ͷϒϩάͷ͍ͤͰ͢
TF-IDFͰ୯ޠॏΈ͚
TF-IDFͬͯͳʹʁ • จষதʹؚ·ΕΔ୯ޠͷॏཁΛධՁ͢Δख ๏ͷ̍ͭ • TF͋ΔυΩϡϝϯτdͷ୯ޠtͷग़ݱස • IDFଟ͘ͷυΩϡϝϯτʹଘࡏ͢Δ୯ޠt ɺυΩϡϝϯτdͰॏཁΛԼ͛Δ
TF-IDFͬͯͳʹʁ http://datanerd.hateblo.jp/entry/2017/09/18/201907
ࣜಡΊͳ͍ http://datanerd.hateblo.jp/entry/2017/09/18/201907 ͋ΔυΩϡϝϯτʹؚ·ΕΔ୯ޠͷ× ͋ΔυΩϡϝϯτʹؚ·ΕΔ୯ޠͷ૯ υΩϡϝϯτͷ૯× ͋Δ୯ޠؚ͕·Ε͍ͯΔυΩϡϝϯτͷ w 5'ˠ5FSN'SFRVFODZɺ୯ޠͷग़ݱස w *%'ˠ*OWFSTF%PDVNFOU'SFRVFODZɺٯจॻස
*%' MPH 5' TF-IDFͬͯͳʹʁ(ྫ: ୯ޠ͕ʮϫχʯͷ߹) ΤΠϦΞϯ✕ ϫχ✕ αϝ✕ ϫχ✕ ×
✕ ͋ΔυΩϡϝϯτ શυΩϡϝϯτ ϫχΛؚΉυΩϡϝϯτ✕ × શυΩϡϝϯτ
TF-IDFΛ͏
TF-IDFΛ͏ʢ݁Ռʣ • өըͱͯ͠ͷಛ্͕Ґʹ͖ͯ ͍Δงғؾ • ͔͠͠ʮͭ·Βͳ͔ͬͨʯ ͱ͍͏ಛʹͳ͍ͬͯͳ͍ ͱࢥ͏ • ͏খखೖΕ͕ඞཁͦ͏
• ampͱ͔urlͳͲͷWebͷϝλޠ Έ͍ͨͳϫʔυετοϓϫʔ υʹՃ • ϒϩάͷओͷλΠτϧ໊ͱ͔ ϒϩάಛ༗ͷ໊ࢺՃͯ͠ ͍͍͔
TF-IDFΛͬͯΈͯ • ಛͬΆ͍୯ޠΛ؆୯ʹूܭɺ֬ೝͰ͖ͯΑ͍ɻߟ͕ḿΔ • TF-IDF͕ߴ͍͚ͭͩ͡Όͳͯ͘ɺதؒɺ͍ͰִؒΛ ༻ҙͯ͠୯ޠ֬ೝ͢Δͷ͍͍͔ • ͬͯͯࢥ͕ͬͨɺҧ͏ϒϩάͷهࣄಉ࢜Λ·ͱΊͯTF-IDF͢ Δͬͯ݁ߏཚͳͷͰɾɾɾʁ •
ͦΕͧΕจମ͕ҧ͏͔Βɺ͋ΔϒϩάͰϙδςΟϒͬΆ͍Ωʔ ϫʔυผϒϩάͰωΨςΟϒʹͳ͍ͬͯΔΜ͡Όͳ͍ͩΖ ͏͔ → ࣍ͷΞΫγϣϯͷࢀߟ
ࡶʢͳʣײʢʣ
ࡶײ • ಓʹσʔλͱ͖߹͏͜ͱͰͳΜͱͳ͘ ࣍ͷΞΫγϣϯ͕ݟ͖͑ͯͨ • ·ͩ·ͩࣗવݴޠॲཧྗ͕Γͳ͍ • BڃϥΠϑΛόϥ৭ʹ͢ΔͨΊʹҾ͖ଓ͖ؤுΔ
None