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.7k
レトリバインターン成果報告
2018/8/1-2018/9/30 の期間参加したレトリバでのインターンの最終報告資料です.製品の改善をしました.
NomotoEriko
September 27, 2018
Tweet
Share
More Decks by NomotoEriko
See All by NomotoEriko
プレゼンのすゝめ
nomotoeriko
6
4.3k
集合・位相入門/松坂和夫 5.2 節:コンパクト性
nomotoeriko
1
120
集合・位相入門/松坂和夫 3.2 節:整列集合とその比較定理
nomotoeriko
0
530
集合・位相入門/松坂和夫 3.1 節:順序集合
nomotoeriko
0
310
Other Decks in Education
See All in Education
生成AIとの上手な付き合い方【公開版】/ How to Get Along Well with Generative AI (Public Version)
handlename
0
440
Data Processing and Visualisation Frameworks - Lecture 6 - Information Visualisation (4019538FNR)
signer
PRO
1
2.4k
SkimaTalk Introduction for Students
skimatalk
0
370
探究的な学び:Monaca Educationで学ぶプログラミングとちょっとした課題解決
asial_edu
0
370
新卒交流ワークショップ
pokotyamu
0
360
より良い学振申請書(DC)を作ろう 2025
luiyoshida
1
3.2k
Info Session MSc Computer Science & MSc Applied Informatics
signer
PRO
0
180
2025年度春学期 統計学 第3回 クロス集計と感度・特異度,データの可視化 (2025. 4. 24)
akiraasano
PRO
0
110
Data Management and Analytics Specialisation
signer
PRO
0
1.4k
今も熱いもの!魂を揺さぶる戦士の儀式:マオリ族のハカ
shubox
0
200
ビジネスモデル理解
takenawa
0
1.8k
Are puppies a ranking factor?
jonoalderson
0
660
Featured
See All Featured
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
280
13k
Fantastic passwords and where to find them - at NoRuKo
philnash
51
3.3k
KATA
mclloyd
29
14k
Music & Morning Musume
bryan
46
6.6k
How To Stay Up To Date on Web Technology
chriscoyier
790
250k
For a Future-Friendly Web
brad_frost
179
9.8k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
32
5.9k
Fireside Chat
paigeccino
37
3.5k
A designer walks into a library…
pauljervisheath
206
24k
The Straight Up "How To Draw Better" Workshop
denniskardys
233
140k
The Cost Of JavaScript in 2023
addyosmani
50
8.3k
GraphQLの誤解/rethinking-graphql
sonatard
71
11k
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 ✌('ω'✌) ✌('ω'✌)