Slide 1

Slide 1 text

Python Beginners ԭೄ ΞΠύʔୂ௕@ླྀٿେֶ

Slide 2

Slide 2 text

ຊ೔͓࿩͢Δ͜ͱ

Slide 3

Slide 3 text

ຊ೔͓࿩͢Δ͜ͱ • ஡൪ • σʔλΛ֬ೝ͢Δ͜ͱେࣄ • TF-IDF

Slide 4

Slide 4 text

ࣗݾ঺հ

Slide 5

Slide 5 text

ࣗݾ঺հ • ΞΠύʔୂ௕ • ͪΎΒσʔλגࣜձࣾ • PyData.OkinawaڞಉΦʔΨφΠβʔ • ࠷ۙͷΠϕϯτ ࢠڙ͕ੜ·Εͨ

Slide 6

Slide 6 text

஡൪

Slide 7

Slide 7 text

஡൪ • ࣍ͷεϥΠυͰ঺հ͢Δөըʹ͍ͭͯɺ
 ͦΕͧΕԿσϏϧϚϯ͔౴͑ͳ͍͞

Slide 8

Slide 8 text

σϏϧϚϯ(୯Ґ)ͱ͸ https://twitter.com/1gho/status/936593895453900800

Slide 9

Slide 9 text

͊͞ɺ౴͍͑ͯͩ͘͞

Slide 10

Slide 10 text

ਖ਼ղʢҟ࿦͸ೝΊΔʣ -10σϏϧϚϯ 0.2σϏϧϚϯ

Slide 11

Slide 11 text

Կ͕ݴ͍͍ͨͷ͔ʢҰൠ޲͚ʣ • ύοέʔδࣅ͗͢ → ࠮ٗߴ౓ͳςΫχοΫͰ ஍ཕΛΧϞϑϥʔδϡ • ஍ཕΛ౿Ήͱ໿1࣌ؒ൒ͱ100ԁ͕ফ͑ͯͳ͘ ͳΔ → ΋͍ͬͨͳ͍ • ஍ཕΛࣄલʹճආ͢ΔͨΊͷ৘ใ͕΄͍͠

Slide 12

Slide 12 text

Կ͕ݴ͍͍ͨͷ͔ʢݰਓ޲͚ʣ • ஍ཕͱࢥ͚ͬͨͲ໘ന͍өըͩͬͨͱ͍͏ύλʔϯ͸Α͋͘Δ • ΈΜͳBڃөըͷϨϏϡʔதʑͯ͘͠Εͳ͍ • ·ͱΊͨϨϏϡʔΛ෼ੳͨ͠WebαΠτ࡞Ζ͏ • ͪͳΈʹͲͬͪ΋Έͨʢ͔ͤͬ͘ͳͷͰ͝঺հʣ • σΟηϯτ → ಎ۸ด͡ࠐΊΒΕεϦϥʔͱࢥ͍͖΍ಥવͷ஍ఈਓ • έΠϰϑΟΞʔ → ಎ۸γʔϯ͸̏෼ɻέΠϰͱ͸ɾɾɾʁ

Slide 13

Slide 13 text

஡൪ऴΘΓ • ͱΓ͋͑ͣWebαΠτΛ࡞͍ͬͯ·͢ • BڃөըΛϨϏϡʔ͍ͯ͠ΔϒϩάهࣄΛΫϩʔϧ • ϨϏϡʔهࣄʹϥϕϧ෇ʢ໘ന͔ͬͨ or ͭ·Βͳ͔ͬͨʣ • σʔλ֬ೝ • લॲཧ • Ϟσϧߏங • Vue.jsͰαΠτΛߏங

Slide 14

Slide 14 text

஡൪ऴΘΓ • ͱΓ͋͑ͣWebαΠτΛ࡞͍ͬͯ·͢ • BڃөըΛϨϏϡʔ͍ͯ͠ΔϒϩάهࣄΛΫϩʔϧ • ϨϏϡʔهࣄʹϥϕϧ෇ʢ໘ന͔ͬͨ or ͭ·Βͳ͔ͬͨʣ • σʔλ֬ೝ • લॲཧ • Ϟσϧߏங • Vue.jsͰαΠτΛߏங

Slide 15

Slide 15 text

ͦ͏͍͑͹ɺࠓ೔͸͜ͷձ৔ʹࣗવݴޠॲཧͷϓϩ͕͍Δͷ Ͱͳʹ͔ࠔͬͨ͜ͱ͋Δਓ͸ฉ͍ͯΈΔͱ͍͍͔΋͠·ͤΜ ※΅͘΋ϚαΧϦΛ໯͍ʹདྷ·ͨ͠ ʮϚαΧϦΛ଱͑Δ΅͘ʯͷ Πϝʔδਤʢ༧૝ʣ

Slide 16

Slide 16 text

ϨϏϡʔهࣄʹϥϕϧ෇ ʢ໘ന͔ͬͨ or ͭ·Βͳ͔ͬͨʣ

Slide 17

Slide 17 text

ϨϏϡʔهࣄʹϥϕϧ෇ • Ϋϩʔϥʔ࡞ͬͯूΊ͖ͯͨөըͷϨϏϡʔ σʔλʹϥϕϧ෇Λߦ͏ • ϥϕϧ෇ͱ͸ʁ → ྫ͑͹ը૾Λ֬ೝͨ͠ͱ͖ ʹೣ or ೣ͡Όͳ͍ͷ෇ᝦΛషΔΠϝʔδ • ػցֶश͢Δͱ͖ʹඞཁʹͳΔ

Slide 18

Slide 18 text

ͤͬͤͱϥϕϧΛ;Δ 0 → ໘ന͔ͬͨ 1 → ͭ·Βͳ͔ͬͨ

Slide 19

Slide 19 text

ʢ͜ͷ࡞ۀʣ ͭ·Βͳ͔ͬͨ

Slide 20

Slide 20 text

ͱΓ͋͑ͣΦϫλʢ࡞ۀ͕ʣ • 5αΠτ͔͠ऩू͍ͯ͠ͳ͍͕هࣄ͸શ෦Ͱ650݅ • ͏ͪ607݅ʹϥϕϧΛ͚ͭΔ͜ͱ͕Ͱ͖ͨ • ʮͭ·Βͳ͔ͬͨʯ374݅ʮ໘ന͔ͬͨʯ233݅ • ࢒Γ43݅͸өըͷϨϏϡʔهࣄͰ͸ͳ͔ͬͨ • ͍ۙ͏ͪʹ͜͏͍͏࡞ۀ΋ࣗಈͰ΍Γ͍ͨ
 ʢϥϕϧ෇ͱ͔ϨϏϡʔ͡Όͳ͍هࣄআ֎ͱ͔ʣ

Slide 21

Slide 21 text

Ͷ͘͢ͱ

Slide 22

Slide 22 text

Ͷ͘͢ͱ • ϨϏϡʔ෼ੳͷهࣄ͕ݟ͔ͭΒͳ͍ͷͰɺ
 ΍Γํ͕Θ͔Βͳ͍ • ࣗવݴޠॲཧͰ͙͙ͬͨΒʮ୯ޠग़ݱස౓ʯɺ ʮTF-IDFʯɺʮFastTextʯͰͳΜ͔΍͍ͬͯΔ هࣄ͕͋ͬͨ • FastTextਫ਼౓Αͦ͞͏

Slide 23

Slide 23 text

Α͠ʂ·ͣ͸ FastTextΛࢼͯ͠ΈΑ͏ʂ

Slide 24

Slide 24 text

ͦΜͳ࣌ظ͕ ΅͘ʹ΋͋Γ·ͨ͠

Slide 25

Slide 25 text

σʔλΛ֬ೝ͠Α͏ • ػցֶशઌߦͯ͠΍Γ͍ͨؾ࣋ͪ͸Θ͔Δ͕ɺσʔλ͸Ͳ͏ ͍͏ಛ௃Λ͍࣋ͬͯΔͷ͔౳ɺ֬ೝͤͣʹ΍Δͱ௧͍໨ʹ
 ʢಛʹ࢓ࣄͰ͸ʣ • զʑͷ໨త͸ϞσϧΛ࡞Δ͜ͱ͕໨తͰ͸ͳ͍ɺ
 ϞσϧΛ࢖ͬͯͳʹ͔Λղܾ͢Δ͜ͱ͕໨త • σʔλͷ֬ೝ࡞ۀ͸టष͍͕ɺ͜ͷۀքͰͷట༡ͼ͸ਖ਼ٛ

Slide 26

Slide 26 text

σʔλͷ֬ೝ

Slide 27

Slide 27 text

σʔλͷ֬ೝ • ͭ·Βͳ͍өըͷϨϏϡʔهࣄͬͯɺ
 ωΨςΟϒͳΩʔϫʔυ͕ଟ͍ͱࢥ͏ • ·ͣ͸ɺจষதʹωΨςΟϒͳΩʔϫʔυ͕ ଘࡏ͍ͯ͠Δ͔ɺϥϕϧຖʹूܭͯ͠ΈΔ

Slide 28

Slide 28 text

өըͷωΨςΟϒΩʔϫʔυ
 ʢ๻ͷ૝૾ʣ ͦ͘ɺΫιɺฅɺμϝɺBڃɺCڃɺZڃɺνʔ ϓɺ͍҆ɺ໘ന͘ͳ͍ɺͭ·Βͳ͍ɺস͑Δɺ ςϯϙ͕ѱ͍ɺύΫϦɺ࣌ؒͷແବɺۚฦͤɺ ຾͍ɺ৸མͪɺύοέʔδ࠮ٗɺύοέʔδͱ ҧ͏ɺ಄͓͔͍͠ɺ͍͍͚ͭͯͳ͍ɺԋٕ͕Լ खɺΦν͕ͳ͍ɺݟॴ͕ͳ͍

Slide 29

Slide 29 text

ूܭ݁Ռ • ༧૝௨ΓɺωΨςΟϒͬ Ά͍஋Ͱɺ෼ྨͰ͖ͦ͏ ͳงғؾ • લͷϖʔδʹ͋ͬͨͷʹ ӈਤʹͳ͍୯ޠ͸هࣄʹ ଘࡏ͠ͳ͍୯ޠ • ωΨςΟϒͳ୯ޠ͕ώο τͨ͠Βʮͭ·Βͳ͔ͬ ͨʯͱ༧ଌͯ͠ΈΔ

Slide 30

Slide 30 text

ωΨςΟϒͳϫʔυ͚ͩͰ༧ଌͯ͠ΈΔ • ୯ޠΛݕࡧ͢Δ͚ͩͰ
 ໿60%ͷਫ਼౓ • ͜ͷ݁ՌΛϕʔεϥΠϯ
 ͱͯ͠ਐΊΔ • ϋζϨͷσʔλΛ
 ֬ೝͯ͠ΈΔ

Slide 31

Slide 31 text

ϋζϨͷ֬ೝ • ʮͭ·Βͳ͔ͬͨʯͷʹʮͭ·Βͳ͔ͬͨʯͱ༧ଌͰ͖ͳ͍ͷ͸ɺ༻ҙͨ͠ωΨςΟ ϒͳ୯ޠʹϚον͠ͳ͔͔ͬͨΒ • ྫʣಀ͍ͯ͠Δύλʔϯʮຊ࡞͸ඇৗʹ࢒೦ͳࢠͰ͋Δʯɺʮ๙ΊΔͱ͜Ζ͕ͳ ͍ʯɺʮָ͘͠ͳ͍ʯ • ௥Ճ͢Ε͹ྑ͍ɻ͕ɺͦͷ౎౓௥Ճ͸ΊΜͲ͍͘͞… • ʮ໘ന͔ͬͨʯͷʹʮͭ·Βͳ͔ͬͨʯͱ༧ଌͯ͠͠·ͬͨͷ͸ɺ༻ҙͨ͠ωΨςΟ ϒͳ୯ޠʹϚονͯ͠͠·͔ͬͨΒ • ϨϏϡʔهࣄʹʮBڃʯͱॻ͍ͯ͠·͚ͬͨͩͰɺʮͭ·Βͳ͔ͬͨʯͱ෼ྨͯ͠ ͠·͏ͷ͸·ͣͦ͏ • ୯७ͳΩʔϫʔυϚονϯάͰ͸ճආ͢Δ͜ͱ͸೉͍͠ͱࢥ͏

Slide 32

Slide 32 text

ͪͳΈʹ

Slide 33

Slide 33 text

ʮ໘ന͔ͬͨʯͷʹʮͭ·Βͳ͔ͬͨʯͱ ༧ଌͨ͠ݪҼΛௐ΂Δ1ྫ

Slide 34

Slide 34 text

ʮ໘ന͔ͬͨʯͷʹʮͭ·Βͳ͔ͬͨʯͱ ༧ଌͨ͠ݪҼΛௐ΂Δ1ྫ http://rottentaste.blog.fc2.com/blog-entry-23.html#more

Slide 35

Slide 35 text

http://rottentaste.blog.fc2.com/blog-entry-23.html#more ʮ໘ന͔ͬͨʯͷʹʮͭ·Βͳ͔ͬͨʯͱ ༧ଌͨ͠ݪҼΛௐ΂Δ1ྫ

Slide 36

Slide 36 text

ͳΔ΄Ͳɾɾɾ ʢϥϕϧ෇͕ؒҧͬͯͨʣ

Slide 37

Slide 37 text

σʔλΛ֬ೝ͠Α͏ʢ࠶ܝʣ • ͜͏͍͏͜ͱ͕͋Δ • ͜ΕΛং൫Ͱؾͮ͘ͷ͔ɺ෼ੳத൫·ͨ͸
 ऴ൫Ͱؾͮ͘ͷ͔Ͱ͸ɺϦΧόϦͷେม͕͞ ҧ͏ • ͥͻɺػցֶश͢Δ·͑ʹσʔλͷ֬ೝΛ

Slide 38

Slide 38 text

ͪͳΈʮϩϘΫϩίʯ๻͸޷͖Ͱ͢ ޙ൒৸མ͔ͪͨ͠Β͋Μ·Γ֮͑ͯͳ͍

Slide 39

Slide 39 text

Ͷ͘͢ͱ͋͘͠ΐΜ

Slide 40

Slide 40 text

Ͷ͘͢ͱ͋͘͠ΐΜ • ωΨςΟϒͳϫʔυͰ෼ྨͰ͖ͦ͏ͳงғؾͳͷ͸Θ͔ͬͨ • ͔͠͠ɺΩʔϫʔυϚονϯά͚ͩͰ͸೉͍͜͠ͱ΋Θ͔ͬͨ • ୯ޠग़ݱස౓Λ֬ೝͯ͠ɺ্Ґ10Ґ·Ͱϥϕϧຖʹൺֱͨ͠Βɺ ͳʹ͔ಛ௃͕ݟ͑ͳ͍ͩΖ͏͔ • ଟ෼ʮαϝʯ͕༏উ͢Δͱ༧૝ • ୯ޠग़ݱස౓͸ͳΜͱͳ݁͘Ռ͕༧૝Ͱ͖ͯɺ͏·͍͔͘ͳͦ͞ ͏ͳͷͰɺॏΈ෇͚͢Δ͜ͱ͕Ͱ͖ΔTF-IDFͰ֬ೝͯ͠ΈΑ͏͔

Slide 41

Slide 41 text

୯ޠग़ݱස౓ͷ֬ೝ

Slide 42

Slide 42 text

୯ޠग़ݱස౓ͷ֬ೝ • ϨϏϡʔهࣄຖʹ୯ޠͷग़ݱස౓Λܭࢉ͢Δ • ͭ·Βͳ͍өը͸ͲΜͳ୯ޠ͕ଟ͍͔ͳʁ • scikit-learnͷCountVectorizerΛ࢖͏

Slide 43

Slide 43 text

݁Ռ • ʮαϝʯʮΤΠϦΞϯʯʮκϯϏʯ্͕Ґ • ͏Μɺ஌ͬͯͨ • ωΨςΟϒͬΆ͍୯ޠ͸্Ґʹ͖ͯͳ͍ • ͲͪΒ΋ࣅͨΑ͏ͳ୯ޠ্͕ҐʹฒΜͰ͍Δ • ΫιөըΛ໘ന͍ͱ͍͍ͬͯΔਓ͕͍ΔͨΊ • ͦ΋ͦ΋ॳճΫϩʔϧ͍ͯ͠Δϒϩάͷ
 өըδϟϯϧʹภΓ͕… • ͜ͷ৘ใͰ͸ʮ໘ന͔ͬͨʯʮͭ·Βͳ͔ͬͨʯΛ෼͚Δͷ͸೉ͦ͠͏Ͱ͋Δ • ໘ന͘ͳ͍өը_wordͷ8Ґͷʮୂ௕ʯͬͯͳʹʁ → ๻ͷϒϩάͷ͍ͤͰ͢

Slide 44

Slide 44 text

TF-IDFͰ୯ޠॏΈ෇͚

Slide 45

Slide 45 text

TF-IDFͬͯͳʹʁ • จষதʹؚ·ΕΔ୯ޠͷॏཁ౓ΛධՁ͢Δख ๏ͷ̍ͭ • TF͸͋ΔυΩϡϝϯτdͷ୯ޠtͷग़ݱස౓ • IDF͸ଟ͘ͷυΩϡϝϯτʹଘࡏ͢Δ୯ޠt ͸ɺυΩϡϝϯτdͰ͸ॏཁ౓ΛԼ͛Δ

Slide 46

Slide 46 text

TF-IDFͬͯͳʹʁ http://datanerd.hateblo.jp/entry/2017/09/18/201907

Slide 47

Slide 47 text

਺ࣜಡΊͳ͍ http://datanerd.hateblo.jp/entry/2017/09/18/201907 ͋ΔυΩϡϝϯτʹؚ·ΕΔ୯ޠͷ਺× ͋ΔυΩϡϝϯτʹؚ·ΕΔ୯ޠͷ૯਺ υΩϡϝϯτͷ૯਺× ͋Δ୯ޠؚ͕·Ε͍ͯΔυΩϡϝϯτͷ਺ w 5'ˠ5FSN'SFRVFODZɺ୯ޠͷग़ݱස౓ w *%'ˠ*OWFSTF%PDVNFOU'SFRVFODZɺٯจॻස౓

Slide 48

Slide 48 text

*%' MPH 5' TF-IDFͬͯͳʹʁ(ྫ: ୯ޠ͕ʮϫχʯͷ৔߹) ΤΠϦΞϯ✕ ϫχ✕ αϝ✕ ϫχ✕ × ✕ ͋ΔυΩϡϝϯτ શυΩϡϝϯτ ϫχΛؚΉυΩϡϝϯτ✕ × શυΩϡϝϯτ

Slide 49

Slide 49 text

TF-IDFΛ࢖͏

Slide 50

Slide 50 text

TF-IDFΛ࢖͏ʢ݁Ռʣ • өըͱͯ͠ͷಛ௃্͕Ґʹ͖ͯ ͍Δงғؾ • ͔͠͠ʮͭ·Βͳ͔ͬͨʯ
 ͱ͍͏ಛ௃ʹ͸ͳ͍ͬͯͳ͍ ͱࢥ͏ • ΋͏খखೖΕ͕ඞཁͦ͏ • ampͱ͔urlͳͲͷWebͷϝλޠ Έ͍ͨͳϫʔυ͸ετοϓϫʔ υʹ௥Ճ • ϒϩάͷओͷλΠτϧ໊ͱ͔ ϒϩάಛ༗ͷ໊ࢺ΋௥Ճͯ͠ ΋͍͍͔΋

Slide 51

Slide 51 text

TF-IDFΛ࢖ͬͯΈͯ • ಛ௃ͬΆ͍୯ޠΛ؆୯ʹूܭɺ֬ೝͰ͖ͯΑ͍ɻߟ࡯͕ḿΔ • TF-IDF஋͕ߴ͍΍͚ͭͩ͡Όͳͯ͘ɺதؒɺ௿͍஋ͰִؒΛ ༻ҙͯ͠୯ޠ֬ೝ͢Δͷ΋͍͍͔΋ • ΍ͬͯͯࢥ͕ͬͨɺҧ͏ϒϩάͷهࣄಉ࢜Λ·ͱΊͯTF-IDF͢ Δͬͯ݁ߏཚ๫ͳͷͰ͸ɾɾɾʁ • ͦΕͧΕจମ͕ҧ͏͔Βɺ͋ΔϒϩάͰ͸ϙδςΟϒͬΆ͍Ωʔ ϫʔυ΋ผϒϩάͰ͸ωΨςΟϒʹͳ͍ͬͯΔΜ͡Όͳ͍ͩΖ ͏͔ → ࣍ͷΞΫγϣϯͷࢀߟ

Slide 52

Slide 52 text

ࡶʢͳʣײʢ૝ʣ

Slide 53

Slide 53 text

ࡶײ • ஍ಓʹσʔλͱ޲͖߹͏͜ͱͰͳΜͱͳ͘
 ࣍ͷΞΫγϣϯ͕ݟ͖͑ͯͨ • ·ͩ·ͩࣗવݴޠॲཧྗ͕଍Γͳ͍ • BڃϥΠϑΛόϥ৭ʹ͢ΔͨΊʹҾ͖ଓ͖ؤுΔ

Slide 54

Slide 54 text

No content