Slide 1

Slide 1 text

Answer Finder ʹ͓͚Δ
 ݕࡧपΓͷ՝୊ղܾ +α େࡕେֶେֶӃ৘ใՊֶݚڀՊ M1 ໺ຊ ӳསࢠ ϝϯλʔɿେ࡚ ᘯɹɹ, ෢Ҫ ༟໵

Slide 2

Slide 2 text

໺ຊӳསࢠ ʹ͍ͭͯ • ॴଐɿେࡕେֶେֶӃ৘ใՊֶݚڀՊ
 ɹɹɹϚϧνϝσΟΞ޻ֶઐ߈Ϗοάσʔλ޻ֶߨ࠲
 ɹɹɹَ௩ݚڀࣨ म࢜1ճੜ • ݚڀɿςΩετʹجͮ͘ը૾ੜ੒ • झຯɿಡॻ, Twitter, లࣔձ८Γ, γϯɾΰδϥ, Ϙυή • ݴޠɿ೔ຊޠ, Python • ࣗવݴޠॲཧٕज़Λ࢖ͬͨ੡඼։ൃʹڵຯ͕͋Γ
 ࠓճͷΠϯλʔϯʹࢀՃ 2

Slide 3

Slide 3 text

ΠϯλʔϯͰ΍ͬͨ͜ͱ • લ൒1ϲ݄ڧ: Answer Finder ʹ͓͚ΔݕࡧपΓͷҎԼͷ՝୊ղܾ • ൪߸໰୊ • ࢈ۀഇغ෺ͱ͓ห౰໰୊ • ΠΤϞϯ໰୊ • ޙ൒1ϲ݄ऑ: ϨΨγʔίʔυͷվળ • ςετ੔උ • ίʔυΛಡΈ΍͘͢੔ܗ 3 ϨτϦό͕ఏڙ͢Δ
 '"2ݕࡧγεςϜ

Slide 4

Slide 4 text

ΠϯλʔϯͰ΍ͬͨ͜ͱ 4 • લ൒1ϲ݄ڧ: Answer Finder ʹ͓͚ΔݕࡧपΓͷҎԼͷ՝୊ղܾ • ൪߸໰୊ • ࢈ۀഇغ෺ͱ͓ห౰໰୊ • ΠΤϞϯ໰୊ • ޙ൒1ϲ݄ऑ: ϨΨγʔίʔυͷվળ • ςετ੔උ • ίʔυΛಡΈ΍͘͢੔ܗ ϨτϦό͕ఏڙ͢Δ
 '"2ݕࡧγεςϜ

Slide 5

Slide 5 text

Answer Finder ʹ͍ͭͯ Answer Finder ʹ͓͚ΔݕࡧपΓͷ՝୊ղܾ ୈ1ষ 5

Slide 6

Slide 6 text

Sedue ੡඼ϑΝϛϦʹଐ͢Δ
 FAQ ݕࡧγεςϜ ࣭໰จΛ౤͛Δͱ
 ؔ࿈͢Δ Q&A ΛݕࡧͰ͖Δ Ωʔϫʔυ΍ಉٛޠͳͲΛ
 Ϣʔβࣙॻͱͯ͠ొ࿥Ͱ͖Δ 6 Answer Finder ͱ͸

Slide 7

Slide 7 text

7 Answer Finder ͷίϯϙʔωϯτ Answer Finder ϢʔβΠϯλʔϑΣʔεΛఏڙ จॻొ࿥ɺϢʔβࣙॻొ࿥ɺ
 ΫΤϦͷൃߦͳͲ͕ߦΘΕΔ Hotate ݕࡧγεςϜͷຊମ ΫΤϦͱจॻͱͷؔ࿈౓Λݩʹ
 ؔ࿈จॻΛݕࡧ )PUBUF

Slide 8

Slide 8 text

Hotate ʹ͍ͭͯ • Answer Finder ͷཪͰճ͍ͬͯΔ ؔ࿈จॻநग़Τϯδϯ • ΫΤϦͱจॻͱͷؔ࿈౓Λݩʹؔ࿈จॻΛݕࡧ͢Δ • ؔ࿈౓͸ΫΤϦ͓Αͼจॻʹؚ·ΕΔΩʔϫʔυͷ TF-IDF ͷ COSྨࣅ౓ Λϕʔεʹܭࢉ͞ΕΔ • Ωʔϫʔυ͸ࣙॻ಺ͷจࣈྻͱͷ࠷௕ҰகͰநग़͞ΕΔ • ݩ͸ χϡʔεهࣄݕࡧ ༻ʹ࡞ΒΕͨγεςϜ 8

Slide 9

Slide 9 text

͓٬༷ͷظ଴͢Δݕࡧ݁Ռ͕ಘΒΕͳ͍৔໘ ൪߸໰୊ ൪߸ͰݕࡧͰ͖ͳ͍ ࢈ۀഇغ෺ͱ͓ห౰໰୊ ෳ਺ͷΩʔϫʔυ͕͋Δͱ͖ʹยํ͔͠ώοτ͠ͳ͍ ΠΤϞϯ໰୊ εϖʔεΛؚΉ୯ޠ͕ಉٛޠࣙॻͰ͏·͘ѻ͑ͳ͍ 9 Answer Finder ๊͕͑Δ՝୊

Slide 10

Slide 10 text

൪߸໰୊ Answer Finder ʹ͓͚ΔݕࡧपΓͷ՝୊ղܾ ୈ2ষ 10

Slide 11

Slide 11 text

໰୊ɿ਺ࣈͷΈͷΩʔϫʔυΛநग़Ͱ͖ͳ͍ ʰ202ʱͰݕࡧ͢Δͱ… 11 ظ଴͞ΕΔݕࡧ݁Ռ ݱঢ়ͷݕࡧ݁Ռ

Slide 12

Slide 12 text

จࣈ + ਺ࣈͷΩʔϫʔυ͸நग़Ͱ͖Δ ʰE202ʱͰݕࡧ͢Δͱ... 12

Slide 13

Slide 13 text

ݪҼɿ਺ࣈͷΈͰߏ੒͞ΕΔ୯ޠʢ൪߸ʣ͕
 ɹɹɹΩʔϫʔυநग़࣌ʹ஄͔Ε͍ͯͨ • Hotate ಺෦Ͱ൪߸Λແࢹ͢Δ࣮૷͕ͳ͞Ε͍ͯͨ • Hotate ։ൃ࣌ʹ͸ɺݕࡧର৅͕χϡʔεهࣄͩͬͨͨΊʹɺ
 ൪߸͸೔෇ͳͲෆཁͳώοτΛট͘ͱ͞Εͨ • ϢʔεέʔεʹΑͬͯ͸೔෇ͳͲ͕ೖ͍ͬͯͳ͍σʔλ΋ଟ͘
 ·ͨɺ൪߸Ͱݕࡧ͍ͨ͠৔໘΋ग़͖ͯͨ • ࣙॻʹҙຯͷ͋Δ൪߸͚ͩΛొ࿥͠Ωʔϫʔυͱͯ͠༻͍Δ 13

Slide 14

Slide 14 text

ରԠɿ൪߸Λແࢹ͢ΔΦϓγϣϯΛઃஔ • ignore_number_only ΦϓγϣϯΛઃஔ • ͜ͷΦϓγϣϯ͕ True Ͱ͋Ε͹
 ൪߸Λແࢹ͢Δ • ΦϓγϣϯΛ False ʹઃఆ͠
 ʰ202ʱͰݕࡧ͢Δͱ
 ӈͷݕࡧ݁Ռ͕ಘΒΕΔ 14

Slide 15

Slide 15 text

࢈ۀഇغ෺ͱ͓ห౰໰୊ Answer Finder ʹ͓͚ΔݕࡧपΓͷ՝୊ղܾ ୈ3ষ 15

Slide 16

Slide 16 text

໰୊ɿΩʔϫʔυͷҰ෦͕ແࢹ͞ΕΔ ʰձࣾͰͷ͓ห౰ͷΰϛ͸࢈ۀഇغ෺Ͱ͔͢ʁʱͰݕࡧ͢Δͱ... 16 ظ଴͞ΕΔݕࡧ݁Ռ ݱঢ়ͷݕࡧ݁Ռ

Slide 17

Slide 17 text

ݪҼɿλΠτϧΛॏཁࢹ͍͗ͯͨ͢͠ • Hotate ͸ؔ࿈౓ܭࢉ࣌ʹ
 λΠτϧʹؚ·ΕΔΩʔϫʔυʹॏΈΛ࣋ͨͤΔ • Answer Finder Ͱ͸͜ͷॏΈ͕େ͖ͳ஋Ͱݻఆ͞Ε͍ͯͨ • λΠτϧʹΩʔϫʔυؚ͕·Ε͍ͯΔจॻ͕ਅͬઌώοτ͠ɺ
 ͦΕҎ֎͕ώοτ͠ͳ͘ͳ͍ͬͯͨ 17 ظ଴͞ΕΔݕࡧ݁ՌʢλΠτϧʣ ݱঢ়ͷݕࡧ݁ՌʢλΠτϧʣ

Slide 18

Slide 18 text

• Ϣʔβ͝ͱʹλΠτϧͷॏΈΛઃఆͰ͖ΔΑ͏ʹ
 Answer Finder ͷઃఆը໘ʹλΠτϧॏΈઃఆϑΥʔϜΛઃ͚ͨ • λΠτϧΛॏཁࢹ͠ͳ͍
 ઃఆʹͯ͠ݕࡧ͢Δͱ
 ӈͷ݁Ռ͕ಘΒΕΔ ରԠɿAnswer Finder ͔Β
 ɹɹɹλΠτϧͷॏΈΛઃఆͰ͖ΔΑ͏ʹͨ͠ 18

Slide 19

Slide 19 text

ΠΤϞϯ໰୊ Answer Finder ʹ͓͚ΔݕࡧपΓͷ՝୊ղܾ ୈ4ষ 19

Slide 20

Slide 20 text

• Ϣʔβͷಉٛޠࣙॻʹ
 ʰΠΤϞϯ → THE YELLOW MONKEYʱΛొ࿥ ໰୊ɿεϖʔεΛؚΉಉٛޠΛ͏·͘ѻ͑ͳ͍ 20 ظ଴͞ΕΔݕࡧ݁Ռ ݱঢ়ͷݕࡧ݁Ռ

Slide 21

Slide 21 text

ݪҼɿಉٛޠࣙॻͷϑΥʔϚοτ͕ྑ͘ͳ͍ • Answer Finder Ͱ͸ಉٛޠࣙॻΛλϒ۠੾ΓͰѻ͏ source \t target1 \t target2 \n “ΠΤϞϯ” ͷಉٛޠ͸ “THE YELLOW MONKEY” • Hotate Ͱ͸ಉٛޠࣙॻΛεϖʔε۠੾ΓͰѻ͏ source \n target1 ␣ target2 \n “ΠΤϞϯ” ͷಉٛޠ͸ “THE” ͱ “YELLOW” ͱ “MONKEY” 21

Slide 22

Slide 22 text

ରԠɿHotate Ͱ json Λѻ͑ΔΑ͏ʹͨ͠ • Answer Finder Ͱ json ܗࣜಉٛޠࣙॻΛ࡞Δ • Hotate Ͱ json ܗࣜͷಉٛޠࣙॻΛಡΉ • json ύʔαʹ͸ rapidjson Λར༻ • ʰΠΤϞϯʱͰݕࡧ͢Δͱ
 ӈͷ݁Ռ͕ಘΒΕΔ 22

Slide 23

Slide 23 text

·ͱΊͱࡶஊ Answer Finder ʹ͓͚ΔݕࡧपΓͷ՝୊ղܾ ୈ5ষ 23

Slide 24

Slide 24 text

΍ͬͨ͜ͱ • Answer Finder ʹ͓͚ΔݕࡧपΓͷ՝୊ղܾ • ൪߸໰୊ • ࢈ۀഇغ෺ͱ͓ห౰໰୊ • ΠΤϞϯ໰୊ • ͜ΕΒ͸࣮ࡍʹ੡඼ʹ൓ө͞ΕΔ༧ఆ ✌('ω'✌) 24

Slide 25

Slide 25 text

ϓϧϦΫϦετ 25

Slide 26

Slide 26 text

ࡶஊɿͭΒ͔ͬͨ͜ͱ • Answer Finder, Sedue, Hotate ͷ
 3ͭͷίϯϙʔωϯτ͕བྷΜͰ͍ΔͨΊɺ
 ؀ڥߏங΍मਖ਼ͷ൓өํ๏ͷཱ֬ʹखͣͬͨ͜ • Hotate ͸ C++ Ͱॻ͔Ε͓ͯΓɺC++ ʹ׳ΕΔ·Ͱ͕खͣͬͨ͜ • ීஈ͸ Python ͳͷͰԿΑΓϏϧυʹۤ࿑ͨ͠ 26

Slide 27

Slide 27 text

ΠϯλʔϯͰ΍ͬͨ͜ͱ • લ൒1ϲ݄ڧ: Answer Finder ʹ͓͚ΔݕࡧपΓͷҎԼͷ՝୊ղܾ • ൪߸໰୊ • ࢈ۀഇغ෺ͱ͓ห౰໰୊ • ΠΤϞϯ໰୊ • ޙ൒1ϲ݄ऑ: ϨΨγʔίʔυͷվળ • ςετ੔උ • ίʔυΛಡΈ΍͘͢੔ܗ 27

Slide 28

Slide 28 text

Hotate ʹ͍ͭͯ ϨΨγʔίʔυͷվળ ୈ1ষ 28

Slide 29

Slide 29 text

Hotate ͷ֓ཁ • Answer Finder ͷཪͰճ͍ͬͯΔ ؔ࿈จॻநग़Τϯδϯ • ݩ͸ χϡʔεهࣄݕࡧ ༻ʹ࡞ΒΕͨγεςϜ • ؔ࿈౓͸จॻಉ࢜ͷ TF-IDF ͷ COS ྨࣅ౓ ϕʔεͰܭࢉ • ؔ࿈౓ͷܭࢉ͕ߴ଎ʹߦ͑ΔΑ͏޻෉࣮ͨ͠૷͕͞Ε͍ͯΔ • ݱࡏ͸ Sedue ͷϓϥάΠϯͱͯ͠ͷΈ༻͍ΒΕ͍ͯΔ 29

Slide 30

Slide 30 text

Hotate ͷͭΒ͍ͱ͜Ζ • 10೥Ҏ্લʹ࡞ΒΕͨγεςϜͰɺ ͋·ΓखΛ͚ͭΒΕ͍ͯͳ͍ • ͷͪʹࣾ಺Ͱ౷Ұ͞Εͨ C++ Style Guide ʹଇ͍ͬͯͳ͍ • ςετ͕ػೳΛΧόʔ͍ͯ͠ͳ͍ • αʔόػೳͳͲɺ ݱࡏͷ࢖͍ํʹ͸ෆཁͳػೳ͕͋Δ • ݱࡏ͸ Hotate ͕ Sedue ͷϓϥάΠϯͱͯ͠࢖ΘΕΔͨΊ
 Hotate ͕୯ମͰαʔόͱͯ͠ػೳ͢Δඞཁ͕ͳ͍ 30

Slide 31

Slide 31 text

Hotate ΛϦϑΝΫλϦϯά͠·͠ΐ͏ • ࠷ऴ໨ඪɿαʔόػೳΛ੾Γ཭͢ • ʰϨΨγʔίʔυվળΨΠυʱʹैͬͯϦϑΝΫλϦϯάΛߦ͏ 1. มߋ఺Λચ͍ग़͢ 2. ςετΛॻ͘৔ॴΛݟ͚ͭΔ 3. ґଘؔ܎Λഉআ͢Δ 4. ςετΛॻ͘ 5. มߋΛߦ͏ 31 ಛఆͷϝιουͷΈΛ
 ςετͰ͖ΔΑ͏ʹ
 ༨෼ͳґଘؔ܎Λഉআ͢Δ

Slide 32

Slide 32 text

Hotate ΛϦϑΝΫλϦϯά͠·͠ΐ͏ • ࠷ऴ໨ඪɿαʔόػೳΛ੾Γ཭͢ • ʰϨΨγʔίʔυվળΨΠυʱʹैͬͯϦϑΝΫλϦϯάΛߦ͏ 1. มߋ఺Λચ͍ग़͢ 2. ςετΛॻ͘৔ॴΛݟ͚ͭΔ 3. ςετΛॻ͘ 4. มߋΛߦ͏ 32

Slide 33

Slide 33 text

ϦϑΝΫλϦϯά ϨΨγʔίʔυͷվળ ୈ2ষ 33

Slide 34

Slide 34 text

1. มߋ఺Λચ͍ग़͢ • શମΛ C++ Style Guide ʹैͬͨॻ͖ํʹ͢Δ • ෆཁͳม਺એݴͷআڈ΍ɺ
 ར༻Օॴͷۙ͘Ͱม਺એݴ͢ΔͳͲɺ
 ʰϦʔμϒϧίʔυʱΛࢀߟʹݟ΍͍͢දهʹ͢Δ • αʔόػೳͷίʔυΛফ͢ 34

Slide 35

Slide 35 text

2-3. ςετΛॻ͘৔ॴΛݟ͚ͭΔ / ॻ͘ • Hotate ͸ Sedue ͷϓϥάΠϯͱͯ͠ͷΈ༻͍ΒΕΔͨΊ
 Sedue ͔Βݺ͹ΕΔϝιουͷڍಈΛอূ͢Δ • Sedue ͔Βݺ͹ΕΔϝιουͷ୯ମςετ • Hotate ΦϒδΣΫτͷॳظԽ • ֤छύϥϝʔλͷมߋ • ؔ࿈౓ܭࢉ • ؔ࿈จॻݕࡧ • Google Test Λ࢖ͬͯ͜ΕΒͷ୯ମςετΛॻ͍ͨ 35 ܭݸͷϝιου

Slide 36

Slide 36 text

4. มߋΛߦ͏ • C++ Style Guide ʹै͏ • ແବͳม਺એݴΛ࡟আ͢Δ • ϕΫτϧಉ࢜ͷ݁߹Λཁૉ௥Ճͷ܁Γฦ͠Ͱ͸ͳ͘ insert Ͱ࣮૷ • ม਺એݴΛར༻Օॴͷۙ͘Ͱߦ͏ • ૣظ return ͯ͠ෆཁͳϑϥάΛഉআ • ϝιουͷ ੒ޭ/ࣦഊ ΛϑϥάԽ͢Δ • αʔόػೳΛ࡟আ͢Δ 36

Slide 37

Slide 37 text

·ͱΊͱࡶஊ ϨΨγʔίʔυͷվળ ୈ3ষ 37

Slide 38

Slide 38 text

·ͱΊ • ʰϨΨγʔίʔυվળΨΠυʱͷखॱʹै͍
 Hotate ͷϦϑΝΫλϦϯάΛߦͳͬͨ • Sedue Ͱݺ͹ΕΔ30ݸͷϝιουͷ୯ମςετΛॻ͍ͨ • ʰϦʔμϒϧίʔυʱΛࢀߟʹಡΈ΍͍͢ίʔυʹ੔ܗͨ͠ 38

Slide 39

Slide 39 text

ϓϧϦΫϦετ 39

Slide 40

Slide 40 text

ࡶஊɿྑ͔ͬͨ͜ͱʢҰ෦ൈਮʣ ୆෩ͷ೔ʹϦϞʔτϫʔΫΛͤͯ͞΋Β͑ͨ͜ͱ 40

Slide 41

Slide 41 text

ࡶஊɿྑ͔ͬͨ͜ͱʢҰ෦ൈਮʣ ϘʔυήʔϜձ͕͠͹͠͹։࠵͞Ε͍ͯͨ͜ͱ 41

Slide 42

Slide 42 text

ࡶஊɿྑ͔ͬͨ͜ͱʢҰ෦ൈਮʣ ϦʔμϒϧίʔυͳͲɺॻ੶͕ॆ࣮͍ͯͨ͜͠ͱ 42

Slide 43

Slide 43 text

ࡶஊɿྑ͔ͬͨ͜ͱʢҰ෦ൈਮʣ ޕޙ3࣌ʹඞͣίʔώʔΛೖΕͯ
 ͓ͦ͢෼͚ͯ͘͠ΕΔࣾһ͞Μ͕͍Βͬ͠Όͬͨ͜ͱ 43

Slide 44

Slide 44 text

ΠϯλʔϯͰ΍ͬͨ͜ͱ • લ൒1ϲ݄ڧ: Answer Finder ʹ͓͚ΔݕࡧपΓͷҎԼͷ՝୊ղܾ • ൪߸໰୊ • ࢈ۀഇغ෺ͱ͓ห౰໰୊ • ΠΤϞϯ໰୊ • ޙ൒1ϲ݄ऑ: ϨΨγʔίʔυͷվળ • ςετ੔උ • ίʔυΛಡΈ΍͘͢੔ܗ 44 ϨτϦό͕ఏڙ͢Δ
 '"2ݕࡧγεςϜ

Slide 45

Slide 45 text

ΠϯλʔϯΛ௨ͯ͠ͷײ૝ • ੡඼ʹ͕ͬͭΓܞΘΒ͍͚ͤͯͨͩͯɺ
 ༗ҙٛͳΠϯλʔϯظؒΛա͍͖ͤͯͨͩ͝͞·ͨ͠ • ༏लͳΠϯλʔϯ஥ؒͷ੒Ռɺ
 ͦΕʹର͢Δࣾһ͞Μͷண؟఺ͳͲ΋ڵຯਂ͔ͬͨͰ͢ • ཪͷ໨తͰ͋Δ
 ɹࣗ਎͕ब৬ͯ͠ಇ͍ͨ৔߹ͷ࢟Λ஌Γਐ࿏બ୒
 ɹʢത࢜՝ఔਐֶ or ब৬ʣͷ൑அࡐྉʹ͢Δ
 ΋͔ͬ͠ΓՌͨͤ·ͨ͠ 45 ✌('ω'✌) ✌('ω'✌)