Lock in $30 Savings on PRO—Offer Ends Soon! ⏳
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
LT@PythonBeginners沖縄
Search
Aipa
November 17, 2018
Technology
1
980
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
Gemini CLI x gcloud CLI x Chrome DevTools MCP で、Google Cloudに乗っているアプリケーションのバグFixをいい感じにする
commander_aipa
0
62
ピンチヒッターです。なにか話します
commander_aipa
0
140
おれたちはいつDXできるのか
commander_aipa
1
84
ウンケーニオキタコワイハナシ
commander_aipa
0
140
Nuxt3 Deeeeeeeeeeeeeeeeeeeeeploy
commander_aipa
0
200
Meilisearchでハイブリッドベクトル検索
commander_aipa
0
160
Honoの導入を検討していたが、Honoの人が来沖するらしいので、急いでHonoを導入した話
commander_aipa
0
210
Dの意思は神を殺す
commander_aipa
0
110
ファインチューニングがしたい
commander_aipa
0
210
Other Decks in Technology
See All in Technology
ChatGPTで論⽂は読めるのか
spatial_ai_network
9
28k
IAMユーザーゼロの運用は果たして可能なのか
yama3133
1
260
「図面」から「法則」へ 〜メタ視点で読み解く現代のソフトウェアアーキテクチャ〜
scova0731
0
120
[JAWS-UG 横浜支部 #91]DevOps Agent vs CloudWatch Investigations -比較と実践-
sh_fk2
2
260
Lambdaの常識はどう変わる?!re:Invent 2025 before after
iwatatomoya
1
520
Debugging Edge AI on Zephyr and Lessons Learned
iotengineer22
0
200
チーリンについて
hirotomotaguchi
6
2k
手動から自動へ、そしてその先へ
moritamasami
0
300
re:Inventで気になったサービスを10分でいけるところまでお話しします
yama3133
1
120
Sansanが実践する Platform EngineeringとSREの協創
sansantech
PRO
2
850
生成AIでテスト設計はどこまでできる? 「テスト粒度」を操るテーラリング術
shota_kusaba
0
760
SREには開発組織全体で向き合う
koh_naga
0
240
Featured
See All Featured
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
254
22k
Building an army of robots
kneath
306
46k
GitHub's CSS Performance
jonrohan
1032
470k
Practical Orchestrator
shlominoach
190
11k
Java REST API Framework Comparison - PWX 2021
mraible
34
9k
KATA
mclloyd
PRO
32
15k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
25
1.6k
Facilitating Awesome Meetings
lara
57
6.7k
[SF Ruby Conf 2025] Rails X
palkan
0
520
Why You Should Never Use an ORM
jnunemaker
PRO
61
9.6k
A designer walks into a library…
pauljervisheath
210
24k
Keith and Marios Guide to Fast Websites
keithpitt
413
23k
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