XP祭り2018 LT祭り にて発表
TDDもせずに "AI" とは何事だ? 機械学習ではなく、機械学習で用いるデータのクレンジングにTDDを適用した話をしました。
15%%͠ͳ͍Ͱz"*zͱԿࣄͩ91ࡇΓInspired by @iwaoRd
View Slide
2ϓϩϑΟʔϧాޱେथ %BJLJ5BOPHVDIJ !EQSPKFDUϛʔΧϯύχʔגࣜձࣾ(PMBOH0VUTUBOEJOH%BUBFOHJOFFS (0%ྵࡉιϑτϋε 7#/&54*FS8FCαʔϏεاۀྲྀ࿘ͷຽ$+BWBػցֶश *P5τϥΠΞϧࢀը 1ZUIPO(PMBOH લॲཧϥΠϒϥϦ։ൃͳͲ"LJCBHP$PEFGPS+BQBOϦʔμʔक़%FW-07& 1VC50$G& #PPUDBNQ8"$"5&ϛʔΧϯύχʔגࣜձࣾೖ͙ͬͯ͢ɺϦʔϚϯγϣοΫͰ֎ʹग़Εͳ͔ͬͨ lड͚z91ࡇΓॳࢀՃ
3ϓϩϑΟʔϧాޱେथ %BJLJ5BOPHVDIJ !EQSPKFDUϛʔΧϯύχʔגࣜձࣾ(PMBOH0VUTUBOEJOH%BUBFOHJOFFS (0%ྵࡉιϑτϋε 7#/&54*FS8FCαʔϏεاۀྲྀ࿘ͷຽ$+BWBػցֶश *P5τϥΠΞϧࢀը 1ZUIPO(PMBOH લॲཧϥΠϒϥϦ։ൃͳͲ"LJCBHP$PEFGPS+BQBOϦʔμʔक़%FW-07& 1VC50$G& #PPUDBNQ8"$"5&ϛʔΧϯύχʔגࣜձࣾೖ͙ͬͯ͢ɺϦʔϚϯγϣοΫͰ֎ʹग़Εͳ͔ͬͨ lड͚z91ࡇΓॳࢀՃ ͯ͢ͷόουσʔλΛੜ·ΕΔલʹফ͠ڈΓ͍ͨͤΊͯ"*#*ʹ৯ΘͤΔલʹফ͠ڈΓ͍ͨ࠷ۙͷϙϦγʔ
mecompany Inc. 48C:%#G+K$/&/0B -!8XVWV WX)Y(,J'EZSYYSXQ XeQ3 I ¡A>#¢P* 9 ¡bci¢WRVVVW_51N?D M6Fldgeanmjg"[email protected]B" VYS\Z[]S^[]_VYS\\\]SZ_XXt||y`UUvrpxvyow~Tvrt||y`UU{p}ruTvrt||y`UU{p}ruqo|oTvrt||y`UU{p}ruZvzTvr[email protected]?51 U7DU? =2H // /fl / / ; / 4O?.< kbmdg kbmdgQsxzQhj2018 9)8(ϓϩϑΟʔϧ
mecompany Inc. 5ҩྍػؔɾༀہɾհޢࣄۀॴͷࢪઃɾ๏ਓσʔλϕʔεϥΠηϯεͷൢചɾϝϯςφϯεΛߦ͍ͬͯ·͢ɻ201898ϓϩϑΟʔϧ
mecompany Inc.65%%͠ͳ͍Ͱz"*zͱԿࣄͩ91ࡇΓػցֶशͷ΄΅͠·ͤΜ
mecompany Inc.75%%͠ͳ͍Ͱz"*zͱԿࣄͩ91ࡇΓςετۦಈ։ൃ͖ͪΜͱಡΜͰͳ͔ͬͨͰ͍͢͢·ͤΜ
<3Smecompany Inc. 87> QP#?y!9/w (Az<[R'_Uw4KwF6_HXZ^\Wkxg* Y^]r`xmoic_\'_%Xy!9/w (Az'U[email protected] ;[email protected];3uxbx;3S MJ O2(SCUEL ProjectpxlnxVL$=NdxqfI8G&G;wMwOdxqdxwwA1DsvoahM0WEBWEBWEBSCUEL Projectpxlnxkxg58)+:T]HP2018"9-8,ϓϩϑΟʔϧ
2+Hmecompany Inc. 9-4 FE5t/'r !7ut/'r !7uJ9`bem6 18&;61+ns\s1+H B? D*!SCUEL ProjectjsghsKA 3C_skb> .==1rBrD_sk_srr7):lpi[dB(WEBWEBWEBSCUEL Projectjsghsfsc,."#0IWHP20189%8$G Z<[email protected]fsc]oqaq^VQMRWASNLϓϩϑΟʔϧ
mecompany Inc. 10ެతͳެ։ใ͔Β z͑Δzσʔλʹ্ཱͯ͛ͨҩྍػؔɾༀہɾհޢࣄۀॴͷࢪઃɾ๏ਓσʔλϕʔεϥΠηϯεͷൢചɾϝϯςφϯεΛߦ͍ͬͯ·͢ɻ201898ϓϩϑΟʔϧ
5-Kࠓͷʜmecompany Inc. 1107 IH8r2)p #:sr2)p #:s"M94-nq_q4-K EB G,#SCUEL ProjectjqghqND 6F`qkb[email protected][email protected]4pEpG`qk`qpp:+=loi^dE*WEBWEBWEBSCUEL Projectjqghqfqc.1$%3LZHP20189'8&J"]?Q\R[Y CWXSRfqc /YTPUZDVQO#*͚ͷσʔλΫϨϯδϯάͷͰ͢
5-Kࠓͷʜmecompany Inc. 1207 IH8r2)p #:sr2)p #:s"M94-nq_q4-K EB G,#SCUEL ProjectjqghqND 6F`qkb[email protected][email protected]4pEpG`qk`qpp:+=loi^dE*WEBWEBWEBSCUEL Projectjqghqfqc.1$%3LZHP20189'8&J"]?Q\R[Y CWXSRfqc /YTPUZDVQOࣗવݴޠॲཧدΓͷͰ͢
13• σʔλͦͷͷͷ࣭ΛҾ্͖͛ΔͨΊʹσʔλΫϨϯδϯάΛ͢Δ• σʔλΫϨϯδϯάΛ͢ΔͨΊʹϓϩάϥϜΛॻ͘• σʔλΫϨϯδϯάϓϩάϥϜͷ࣭Λ୲อ͢ΔͨΊʹςετίʔυॻ͘z͑ΔzσʔλΛཱͯΔͨΊʹ
14 EC UFDITIPXDBTF%ηογϣϯhttps://www.db-tech-showcase.com/dbts/tokyo r $PEF GPS +BQBO 4VNNJU ৽ׁlόουΦʔϓϯσʔλڙཆࣉzηογϣϯhttps://summit2018.code4japan.org/session/210/Ͱશ൛ΛΓ·͢
201898 15σʔλ։ൃͷݱ
mecompany Inc. 16 201898ެతػ͔ؔΒ։ࣔ͞Ε͍ͯΔσʔλ &YDFM $47ͷଞ1%' 8FCαΠτ ࢴʢཧʣ͕͋Δࢴͱઓ͏ͨΊʹ0$3Λͬͨ͋ͱޡೝࣝσʔλͱઓΘͳ͚Ε͍͚ͳ͍ɻσʔλ։ൃͷݱ
mecompany Inc. 17 201898ެతػ͔ؔΒ։ࣔ͞Ε͍ͯΔσʔλதʹzόουσʔλz ଘࡏ͢Δ• ޡࣈࣈ• දهΏΕ• ҟମࣈ• ༣ศ൪߸ؒҧ͍• ి൪߸ ͳ͔ͥ&ϝʔϧΞυϨε• ʙࢢʙ۠ ͷ͕۠ൈ͚͍ͯΔσʔλ։ൃͷݱ
18ྫ͑ʜ
201898 19ॅॴ ۽ຊࢢձொYYY
201898 20۽ຊࢢձொʹྩࢦఆࢢҠߦ
201898 21۽ຊࢢձொ۽ຊࢢೆ۠ձொ˓ ✕
201898 225FMYYZZZ[[[[ʲNBJMYQKVH!FYBNQMFDPNʳ
201898 235FMYYZZZ[[[[ʲNBJMYQKVH!FYBNQMFDPNʳͳΜͰϝʔϧΞυϨεೖ͍ͬͯΔΜͰ͢ʁ
201898 24͖Ε͍ͳσʔλʹͯ͋͛͠ͳ͍ͱੳਫ਼্͕͠ͳ͍
201898 25ͦ͜Ͱ5%%Ͱ͢Α
https://www.slideshare.net/t_wada/tdd-agile-samurai-base-camp
σʔλΫϨϯδϯάϓϩάϥϜͷ։ൃαΠΫϧϚτϞͳσʔλΛߟ͑ΔϚτϞͳσʔλΛzҙਤͨ͠ܗࣜzʹมͨ݁͠ՌΛςετέʔεͱͯ͠Ճ͢ΔͦͷςετΛ࣮ߦࣦͯ͠ഊͤ͞Δ 3FE lҙਤͨ͠ܗࣜzʹม͢ΔίʔυΛॻ͘Ͱॻ͍ͨςετΛޭͤ͞Δ (SFFOςετ͕௨Δ··ͰϦϑΝΫλϦϯάΛߦ͏3FGBDUPS ߥΕͨσʔλΛՃͯ͠ʙΛ܁Γฦ͢
28import ("testing""github.com/stretchr/testify/assert”)func TestCleansingExample (t *testing.T) {var testCases := []struct {desc stringin stringwant string}{{“ϚτϞͳσʔλ”,“03-1234-5678”,“03-1234-5678”},{“ϝΞυೖͬͯΔߥΕͨσʔλ”,“TEL:03-1234-9876 email:[email protected]”,“03-1234-9876”},}for _, test := range testCases {assert.Equal(t, Cleansing(test.in), test.want, test.desc)}}͜͜ʹlߥΕͨσʔλzͱl·͍͠σʔλzͷςετέʔεΛՃ͑ͯɺ5%%ͷαΠΫϧΛճ͢
29https://www.slideshare.net/hironoriwashizaki/ess2018-1122582142017σʔλΫϨϯδϯά͜ͷαΠΫϧΛճ͢
͜ͷಓͷΓͰσʔλΫϨϯδϯάϓϩάϥϜΛҭͯͯʜ
ੳͰ͖Δɺ͖Ε͍ͳσʔλ ͜ͷಓͷΓͰߴ͍ਫ਼ͷσʔληοτΛ࡞Δ
!mecompany Inc. 32 / -0/ -0"201898લॲཧରσʔλ ԯ߲ʢेສϨίʔυ ºສ߲ʣ%'+.*+.*,.)ࠃ๏ਓ ສϨίʔυެతػ͔ؔΒ։ࣔ͞Ε͍ͯΔσʔλΛ౷߹͠l͑Δzσʔλʹ͢ΔͨΊɺલॲཧ͕ඞཁ#($&+.*,.)ଞ͔ࣾΒߪೖͨ͠σʔλϕʔε ԯϨίʔυσʔλ։ൃͷݱ
33େྔͷσʔλΫϨϯδϯάͰॲཧ݁ՌΛ֬ೝ͢ΔͨΊʹ• খ͍͞σʔληοτͰϑΟʔυόοΫαΠΫϧΛখ͘͞ճ͢• ΑΓେ͖͍σʔληοτΛ૬खʹؒόονͰ$*Λճ͢• l໊دͤzՄࢹԽγεςϜ·ͰσʔλΛσϦόϦͯ͠ϑΟʔυόοΫαΠΫϧΛճ͢
201898 34σʔλΫϨϯδϯάΛ͖ͬͪΓΔͱԿ͕ඒຯ͍͔͠• දهΏΕΛഉআͯ͠NFDBCͰ͔ͪॻ͖͍͢͠σʔλʹͳΔ• ༨ͳจࣈྻΛഉআͯ͠ɺଞͷσʔληοτͱܨ͛ΒΕΔ• ΧςΰϦ͚ϥϕϦϯά͕͖Ε͍ʹͰ͖ͯɺσʔλੳਫ਼্͕͕Δ
201898 35ػցֶशͰਫ਼େࣄͰ͢ΑͶ
36https://www.slideshare.net/hironoriwashizaki/ess2018-112258214σʔλͷ࡞ΓࠐΈɺػցֶशͷΠϯϑϥैདྷͷΤϯδχΞϦϯά͕
37https://www.slideshare.net/hironoriwashizaki/ess2018-112258214ػցֶशϞσϧɺσʔλϑΟʔυόοΫΛճͯ͠ҭͯΔ
38https://www.slideshare.net/hironoriwashizaki/ess2018-112258214͜ͷ͋ͨΓͷlεϚʔτΤεΠʔzΛཤम͢Δͱ͍͍ͱࢥ͍·͢ʢࢲ͕ཤम͍ͨ͠ʣ
mecompany Inc. 39ެతͳެ։ใ͔Β z͑Δzσʔλʹ্ཱͯ͛ͨҩྍػؔɾༀہɾհޢࣄۀॴͷࢪઃɾ๏ਓσʔλϕʔεϥΠηϯεͷൢചɾϝϯςφϯεΛߦ͍ͬͯ·͢ɻ201898σʔλ։ൃͷݱ
40• σʔλͦͷͷͷ࣭ΛҾ্͖͛ΔͨΊʹσʔλΫϨϯδϯάΛ͢Δ• σʔλΫϨϯδϯάΛ͢ΔͨΊʹϓϩάϥϜΛॻ͘• σʔλΫϨϯδϯάϓϩάϥϜͷ࣭Λ୲อ͢ΔͨΊʹςετίʔυॻ͘z͑ΔzσʔλΛཱͯΔͨΊʹ
41۩ମతͳऔΓΈ EC UFDITIPXDBTF%ηογϣϯlຊൃʂ.Z42-6%'ͱ(PݴޠͰ࡞ΔϏοάσʔλલॲཧج൫zͰ͓͠·͢https://www.db-tech-showcase.com/dbts/tokyo
42۩ମతͳऔΓΈr $PEF GPS +BQBO 4VNNJU ৽ׁlόουΦʔϓϯσʔλڙཆࣉzͰ͓͠·͢https://summit2018.code4japan.org/session/210/։ࣔՄೳͳόουσʔλͷߘ͓͓ͪͯ͠Γ·͢
201898 43݁ہͷͱ͜Ζ
201898 44ػցֶशΞδϟΠϧ։ൃ͕zલఏz
455%%͠ͳ͍Ͱz"*zͱԿࣄͩ91ࡇΓ
201898 46lΞδϟΠϧ։ൃ·ͩͬͯͳ͍z
201898 47͍͋ͨͬͯ͠·͞ο
4891ͱιʔγϟϧνΣϯδͰ͋ΔUPCFDPOUJOVFˠ EC UFDITIPXDBTF