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
レトリバインターン成果報告
Search
NomotoEriko
September 27, 2018
Education
0
1.8k
レトリバインターン成果報告
2018/8/1-2018/9/30 の期間参加したレトリバでのインターンの最終報告資料です.製品の改善をしました.
NomotoEriko
September 27, 2018
Tweet
Share
More Decks by NomotoEriko
See All by NomotoEriko
プレゼンのすゝめ
nomotoeriko
7
4.3k
集合・位相入門/松坂和夫 5.2 節:コンパクト性
nomotoeriko
1
120
集合・位相入門/松坂和夫 3.2 節:整列集合とその比較定理
nomotoeriko
0
550
集合・位相入門/松坂和夫 3.1 節:順序集合
nomotoeriko
0
320
Other Decks in Education
See All in Education
Ch1_-_Partie_1.pdf
bernhardsvt
0
430
DIP_2_Spatial
hachama
0
200
生態系ウォーズ - ルールブック
yui_itoshima
1
310
俺と地方勉強会 - KomeKaigi・地方勉強会への期待 -
pharaohkj
1
250
SISTEMA DE MEMORIA Y SU IMPACTO EN LAS DECISIONES.
jvpcubias
0
180
仏教の源流からの奈良県中南和_奈良まほろば館‗飛鳥・藤原DAO/asuka-fujiwara_Saraswati
tkimura12
0
150
Réaliser un diagnostic externe
martine
0
290
自分だけの、誰も想像できないキャリアの育て方 〜偶然から始めるキャリアプラン〜 / Career planning starting by luckly v2
vtryo
1
260
ハッカソンを活用したモノづくり教育について
yusk1450
PRO
2
120
Introdución ás redes
irocho
0
390
(2025) L'origami, mieux que la règle et le compas
mansuy
0
160
Sanapilvet opetuksessa
matleenalaakso
0
34k
Featured
See All Featured
Raft: Consensus for Rubyists
vanstee
140
7.2k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
162
15k
Git: the NoSQL Database
bkeepers
PRO
431
66k
GraphQLの誤解/rethinking-graphql
sonatard
73
11k
For a Future-Friendly Web
brad_frost
180
10k
The Invisible Side of Design
smashingmag
302
51k
StorybookのUI Testing Handbookを読んだ
zakiyama
31
6.3k
Stop Working from a Prison Cell
hatefulcrawdad
272
21k
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
4.1k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
249
1.3M
How To Stay Up To Date on Web Technology
chriscoyier
791
250k
Reflections from 52 weeks, 52 projects
jeffersonlam
355
21k
Transcript
Answer Finder ʹ͓͚Δ ݕࡧपΓͷ՝ղܾ +α େࡕେֶେֶӃใՊֶݚڀՊ M1 ຊ ӳསࢠ ϝϯλʔɿେ࡚
ᘯɹɹ, Ҫ ༟
ຊӳསࢠ ʹ͍ͭͯ • ॴଐɿେࡕେֶେֶӃใՊֶݚڀՊ ɹɹɹϚϧνϝσΟΞֶઐ߈Ϗοάσʔλֶߨ࠲ ɹɹɹَ௩ݚڀࣨ म࢜1ճੜ • ݚڀɿςΩετʹجͮ͘ը૾ੜ •
झຯɿಡॻ, Twitter, లࣔձ८Γ, γϯɾΰδϥ, Ϙυή • ݴޠɿຊޠ, Python • ࣗવݴޠॲཧٕज़Λͬͨ։ൃʹڵຯ͕͋Γ ࠓճͷΠϯλʔϯʹࢀՃ 2
ΠϯλʔϯͰͬͨ͜ͱ • લ1ϲ݄ڧ: Answer Finder ʹ͓͚ΔݕࡧपΓͷҎԼͷ՝ղܾ • ൪߸ • ࢈ۀഇغͱ͓ห
• ΠΤϞϯ • ޙ1ϲ݄ऑ: ϨΨγʔίʔυͷվળ • ςετඋ • ίʔυΛಡΈ͘͢ܗ 3 ϨτϦό͕ఏڙ͢Δ '"2ݕࡧγεςϜ
ΠϯλʔϯͰͬͨ͜ͱ 4 • લ1ϲ݄ڧ: Answer Finder ʹ͓͚ΔݕࡧपΓͷҎԼͷ՝ղܾ • ൪߸ •
࢈ۀഇغͱ͓ห • ΠΤϞϯ • ޙ1ϲ݄ऑ: ϨΨγʔίʔυͷվળ • ςετඋ • ίʔυΛಡΈ͘͢ܗ ϨτϦό͕ఏڙ͢Δ '"2ݕࡧγεςϜ
Answer Finder ʹ͍ͭͯ Answer Finder ʹ͓͚ΔݕࡧपΓͷ՝ղܾ ୈ1ষ 5
Sedue ϑΝϛϦʹଐ͢Δ FAQ ݕࡧγεςϜ ࣭จΛ͛Δͱ ؔ࿈͢Δ Q&A ΛݕࡧͰ͖Δ ΩʔϫʔυಉٛޠͳͲΛ Ϣʔβࣙॻͱͯ͠ొͰ͖Δ
6 Answer Finder ͱ
7 Answer Finder ͷίϯϙʔωϯτ Answer Finder ϢʔβΠϯλʔϑΣʔεΛఏڙ จॻొɺϢʔβࣙॻొɺ ΫΤϦͷൃߦͳͲ͕ߦΘΕΔ Hotate
ݕࡧγεςϜͷຊମ ΫΤϦͱจॻͱͷؔ࿈Λݩʹ ؔ࿈จॻΛݕࡧ )PUBUF
Hotate ʹ͍ͭͯ • Answer Finder ͷཪͰճ͍ͬͯΔ ؔ࿈จॻநग़Τϯδϯ • ΫΤϦͱจॻͱͷؔ࿈Λݩʹؔ࿈จॻΛݕࡧ͢Δ •
ؔ࿈ΫΤϦ͓Αͼจॻʹؚ·ΕΔΩʔϫʔυͷ TF-IDF ͷ COSྨࣅ Λϕʔεʹܭࢉ͞ΕΔ • Ωʔϫʔυࣙॻͷจࣈྻͱͷ࠷ҰகͰநग़͞ΕΔ • ݩ χϡʔεهࣄݕࡧ ༻ʹ࡞ΒΕͨγεςϜ 8
͓٬༷ͷظ͢Δݕࡧ݁Ռ͕ಘΒΕͳ͍໘ ൪߸ ൪߸ͰݕࡧͰ͖ͳ͍ ࢈ۀഇغͱ͓ห ෳͷΩʔϫʔυ͕͋Δͱ͖ʹยํ͔͠ώοτ͠ͳ͍ ΠΤϞϯ εϖʔεΛؚΉ୯ޠ͕ಉٛޠࣙॻͰ͏·͘ѻ͑ͳ͍ 9 Answer Finder
๊͕͑Δ՝
൪߸ Answer Finder ʹ͓͚ΔݕࡧपΓͷ՝ղܾ ୈ2ষ 10
ɿࣈͷΈͷΩʔϫʔυΛநग़Ͱ͖ͳ͍ ʰ202ʱͰݕࡧ͢Δͱ… 11 ظ͞ΕΔݕࡧ݁Ռ ݱঢ়ͷݕࡧ݁Ռ
จࣈ + ࣈͷΩʔϫʔυநग़Ͱ͖Δ ʰE202ʱͰݕࡧ͢Δͱ... 12
ݪҼɿࣈͷΈͰߏ͞ΕΔ୯ޠʢ൪߸ʣ͕ ɹɹɹΩʔϫʔυநग़࣌ʹ͔Ε͍ͯͨ • Hotate ෦Ͱ൪߸Λແࢹ͢Δ࣮͕ͳ͞Ε͍ͯͨ • Hotate ։ൃ࣌ʹɺݕࡧର͕χϡʔεهࣄͩͬͨͨΊʹɺ ൪߸ͳͲෆཁͳώοτΛট͘ͱ͞Εͨ •
ϢʔεέʔεʹΑͬͯͳͲ͕ೖ͍ͬͯͳ͍σʔλଟ͘ ·ͨɺ൪߸Ͱݕࡧ͍ͨ͠໘ग़͖ͯͨ • ࣙॻʹҙຯͷ͋Δ൪߸͚ͩΛొ͠Ωʔϫʔυͱͯ͠༻͍Δ 13
ରԠɿ൪߸Λແࢹ͢ΔΦϓγϣϯΛઃஔ • ignore_number_only ΦϓγϣϯΛઃஔ • ͜ͷΦϓγϣϯ͕ True Ͱ͋Ε ൪߸Λແࢹ͢Δ •
ΦϓγϣϯΛ False ʹઃఆ͠ ʰ202ʱͰݕࡧ͢Δͱ ӈͷݕࡧ݁Ռ͕ಘΒΕΔ 14
࢈ۀഇغͱ͓ห Answer Finder ʹ͓͚ΔݕࡧपΓͷ՝ղܾ ୈ3ষ 15
ɿΩʔϫʔυͷҰ෦͕ແࢹ͞ΕΔ ʰձࣾͰͷ͓หͷΰϛ࢈ۀഇغͰ͔͢ʁʱͰݕࡧ͢Δͱ... 16 ظ͞ΕΔݕࡧ݁Ռ ݱঢ়ͷݕࡧ݁Ռ
ݪҼɿλΠτϧΛॏཁࢹ͍͗ͯͨ͢͠ • Hotate ؔ࿈ܭࢉ࣌ʹ λΠτϧʹؚ·ΕΔΩʔϫʔυʹॏΈΛ࣋ͨͤΔ • Answer Finder Ͱ͜ͷॏΈ͕େ͖ͳͰݻఆ͞Ε͍ͯͨ •
λΠτϧʹΩʔϫʔυؚ͕·Ε͍ͯΔจॻ͕ਅͬઌώοτ͠ɺ ͦΕҎ֎͕ώοτ͠ͳ͘ͳ͍ͬͯͨ 17 ظ͞ΕΔݕࡧ݁ՌʢλΠτϧʣ ݱঢ়ͷݕࡧ݁ՌʢλΠτϧʣ
• Ϣʔβ͝ͱʹλΠτϧͷॏΈΛઃఆͰ͖ΔΑ͏ʹ Answer Finder ͷઃఆը໘ʹλΠτϧॏΈઃఆϑΥʔϜΛઃ͚ͨ • λΠτϧΛॏཁࢹ͠ͳ͍ ઃఆʹͯ͠ݕࡧ͢Δͱ ӈͷ݁Ռ͕ಘΒΕΔ ରԠɿAnswer
Finder ͔Β ɹɹɹλΠτϧͷॏΈΛઃఆͰ͖ΔΑ͏ʹͨ͠ 18
ΠΤϞϯ Answer Finder ʹ͓͚ΔݕࡧपΓͷ՝ղܾ ୈ4ষ 19
• Ϣʔβͷಉٛޠࣙॻʹ ʰΠΤϞϯ → THE YELLOW MONKEYʱΛొ ɿεϖʔεΛؚΉಉٛޠΛ͏·͘ѻ͑ͳ͍ 20 ظ͞ΕΔݕࡧ݁Ռ
ݱঢ়ͷݕࡧ݁Ռ
ݪҼɿಉٛޠࣙॻͷϑΥʔϚοτ͕ྑ͘ͳ͍ • Answer Finder ͰಉٛޠࣙॻΛλϒ۠ΓͰѻ͏ source \t target1 \t target2
\n “ΠΤϞϯ” ͷಉٛޠ “THE YELLOW MONKEY” • Hotate ͰಉٛޠࣙॻΛεϖʔε۠ΓͰѻ͏ source \n target1 ␣ target2 \n “ΠΤϞϯ” ͷಉٛޠ “THE” ͱ “YELLOW” ͱ “MONKEY” 21
ରԠɿHotate Ͱ json Λѻ͑ΔΑ͏ʹͨ͠ • Answer Finder Ͱ json ܗࣜಉٛޠࣙॻΛ࡞Δ
• Hotate Ͱ json ܗࣜͷಉٛޠࣙॻΛಡΉ • json ύʔαʹ rapidjson Λར༻ • ʰΠΤϞϯʱͰݕࡧ͢Δͱ ӈͷ݁Ռ͕ಘΒΕΔ 22
·ͱΊͱࡶஊ Answer Finder ʹ͓͚ΔݕࡧपΓͷ՝ղܾ ୈ5ষ 23
ͬͨ͜ͱ • Answer Finder ʹ͓͚ΔݕࡧपΓͷ՝ղܾ • ൪߸ • ࢈ۀഇغͱ͓ห •
ΠΤϞϯ • ͜ΕΒ࣮ࡍʹʹө͞ΕΔ༧ఆ ✌('ω'✌) 24
ϓϧϦΫϦετ 25
ࡶஊɿͭΒ͔ͬͨ͜ͱ • Answer Finder, Sedue, Hotate ͷ 3ͭͷίϯϙʔωϯτ͕བྷΜͰ͍ΔͨΊɺ ڥߏஙमਖ਼ͷөํ๏ͷཱ֬ʹखͣͬͨ͜ •
Hotate C++ Ͱॻ͔Ε͓ͯΓɺC++ ʹ׳ΕΔ·Ͱ͕खͣͬͨ͜ • ීஈ Python ͳͷͰԿΑΓϏϧυʹۤ࿑ͨ͠ 26
ΠϯλʔϯͰͬͨ͜ͱ • લ1ϲ݄ڧ: Answer Finder ʹ͓͚ΔݕࡧपΓͷҎԼͷ՝ղܾ • ൪߸ • ࢈ۀഇغͱ͓ห
• ΠΤϞϯ • ޙ1ϲ݄ऑ: ϨΨγʔίʔυͷվળ • ςετඋ • ίʔυΛಡΈ͘͢ܗ 27
Hotate ʹ͍ͭͯ ϨΨγʔίʔυͷվળ ୈ1ষ 28
Hotate ͷ֓ཁ • Answer Finder ͷཪͰճ͍ͬͯΔ ؔ࿈จॻநग़Τϯδϯ • ݩ χϡʔεهࣄݕࡧ
༻ʹ࡞ΒΕͨγεςϜ • ؔ࿈จॻಉ࢜ͷ TF-IDF ͷ COS ྨࣅ ϕʔεͰܭࢉ • ؔ࿈ͷܭࢉ͕ߴʹߦ͑ΔΑ͏࣮͕ͨ͠͞Ε͍ͯΔ • ݱࡏ Sedue ͷϓϥάΠϯͱͯ͠ͷΈ༻͍ΒΕ͍ͯΔ 29
Hotate ͷͭΒ͍ͱ͜Ζ • 10Ҏ্લʹ࡞ΒΕͨγεςϜͰɺ ͋·ΓखΛ͚ͭΒΕ͍ͯͳ͍ • ͷͪʹࣾͰ౷Ұ͞Εͨ C++ Style Guide
ʹଇ͍ͬͯͳ͍ • ςετ͕ػೳΛΧόʔ͍ͯ͠ͳ͍ • αʔόػೳͳͲɺ ݱࡏͷ͍ํʹෆཁͳػೳ͕͋Δ • ݱࡏ Hotate ͕ Sedue ͷϓϥάΠϯͱͯ͠ΘΕΔͨΊ Hotate ͕୯ମͰαʔόͱͯ͠ػೳ͢Δඞཁ͕ͳ͍ 30
Hotate ΛϦϑΝΫλϦϯά͠·͠ΐ͏ • ࠷ऴඪɿαʔόػೳΛΓ͢ • ʰϨΨγʔίʔυվળΨΠυʱʹैͬͯϦϑΝΫλϦϯάΛߦ͏ 1. มߋΛચ͍ग़͢ 2. ςετΛॻ͘ॴΛݟ͚ͭΔ
3. ґଘؔΛഉআ͢Δ 4. ςετΛॻ͘ 5. มߋΛߦ͏ 31 ಛఆͷϝιουͷΈΛ ςετͰ͖ΔΑ͏ʹ ༨ͳґଘؔΛഉআ͢Δ
Hotate ΛϦϑΝΫλϦϯά͠·͠ΐ͏ • ࠷ऴඪɿαʔόػೳΛΓ͢ • ʰϨΨγʔίʔυվળΨΠυʱʹैͬͯϦϑΝΫλϦϯάΛߦ͏ 1. มߋΛચ͍ग़͢ 2. ςετΛॻ͘ॴΛݟ͚ͭΔ
3. ςετΛॻ͘ 4. มߋΛߦ͏ 32
ϦϑΝΫλϦϯά ϨΨγʔίʔυͷվળ ୈ2ষ 33
1. มߋΛચ͍ग़͢ • શମΛ C++ Style Guide ʹैͬͨॻ͖ํʹ͢Δ • ෆཁͳมએݴͷআڈɺ
ར༻Օॴͷۙ͘Ͱมએݴ͢ΔͳͲɺ ʰϦʔμϒϧίʔυʱΛࢀߟʹݟ͍͢දهʹ͢Δ • αʔόػೳͷίʔυΛফ͢ 34
2-3. ςετΛॻ͘ॴΛݟ͚ͭΔ / ॻ͘ • Hotate Sedue ͷϓϥάΠϯͱͯ͠ͷΈ༻͍ΒΕΔͨΊ Sedue
͔ΒݺΕΔϝιουͷڍಈΛอূ͢Δ • Sedue ͔ΒݺΕΔϝιουͷ୯ମςετ • Hotate ΦϒδΣΫτͷॳظԽ • ֤छύϥϝʔλͷมߋ • ؔ࿈ܭࢉ • ؔ࿈จॻݕࡧ • Google Test Λͬͯ͜ΕΒͷ୯ମςετΛॻ͍ͨ 35 ܭݸͷϝιου
4. มߋΛߦ͏ • C++ Style Guide ʹै͏ • ແବͳมએݴΛআ͢Δ •
ϕΫτϧಉ࢜ͷ݁߹ΛཁૉՃͷ܁Γฦ͠Ͱͳ͘ insert Ͱ࣮ • มએݴΛར༻Օॴͷۙ͘Ͱߦ͏ • ૣظ return ͯ͠ෆཁͳϑϥάΛഉআ • ϝιουͷ ޭ/ࣦഊ ΛϑϥάԽ͢Δ • αʔόػೳΛআ͢Δ 36
·ͱΊͱࡶஊ ϨΨγʔίʔυͷվળ ୈ3ষ 37
·ͱΊ • ʰϨΨγʔίʔυվળΨΠυʱͷखॱʹै͍ Hotate ͷϦϑΝΫλϦϯάΛߦͳͬͨ • Sedue ͰݺΕΔ30ݸͷϝιουͷ୯ମςετΛॻ͍ͨ • ʰϦʔμϒϧίʔυʱΛࢀߟʹಡΈ͍͢ίʔυʹܗͨ͠
38
ϓϧϦΫϦετ 39
ࡶஊɿྑ͔ͬͨ͜ͱʢҰ෦ൈਮʣ ෩ͷʹϦϞʔτϫʔΫΛͤͯ͞Β͑ͨ͜ͱ 40
ࡶஊɿྑ͔ͬͨ͜ͱʢҰ෦ൈਮʣ ϘʔυήʔϜձ͕͠͠։࠵͞Ε͍ͯͨ͜ͱ 41
ࡶஊɿྑ͔ͬͨ͜ͱʢҰ෦ൈਮʣ ϦʔμϒϧίʔυͳͲɺॻ੶͕ॆ࣮͍ͯͨ͜͠ͱ 42
ࡶஊɿྑ͔ͬͨ͜ͱʢҰ෦ൈਮʣ ޕޙ3࣌ʹඞͣίʔώʔΛೖΕͯ ͓͚ͦͯ͘͢͠ΕΔࣾһ͞Μ͕͍Βͬ͠Όͬͨ͜ͱ 43
ΠϯλʔϯͰͬͨ͜ͱ • લ1ϲ݄ڧ: Answer Finder ʹ͓͚ΔݕࡧपΓͷҎԼͷ՝ղܾ • ൪߸ • ࢈ۀഇغͱ͓ห
• ΠΤϞϯ • ޙ1ϲ݄ऑ: ϨΨγʔίʔυͷվળ • ςετඋ • ίʔυΛಡΈ͘͢ܗ 44 ϨτϦό͕ఏڙ͢Δ '"2ݕࡧγεςϜ
ΠϯλʔϯΛ௨ͯ͠ͷײ • ʹ͕ͬͭΓܞΘΒ͍͚ͤͯͨͩͯɺ ༗ҙٛͳΠϯλʔϯظؒΛա͍͖ͤͯͨͩ͝͞·ͨ͠ • ༏लͳΠϯλʔϯؒͷՌɺ ͦΕʹର͢Δࣾһ͞Μͷண؟ͳͲڵຯਂ͔ͬͨͰ͢ • ཪͷతͰ͋Δ ɹ͕ࣗब৬ͯ͠ಇ͍ͨ߹ͷ࢟ΛΓਐ࿏બ
ɹʢത࢜՝ఔਐֶ or ब৬ʣͷஅࡐྉʹ͢Δ ͔ͬ͠ΓՌͨͤ·ͨ͠ 45 ✌('ω'✌) ✌('ω'✌)