Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

파이썬과 커뮤니티와 한국어 오픈데이터

26 views

Published on

PyCon Korea 2019 키노트 발표 자료입니다.
슬라이드쉐어 아직도 이러네요 ㅠㅠ 아래 스피커덱 링크로 가주시거나 다운로드 받으시면 잘 보여요 ㅠㅠhttps://speakerdeck.com/e9t/paisseongwa-keomyunitiwa-hangugeo-opeundeiteo

Published in: Technology
  • Be the first to comment

  • Be the first to like this

파이썬과 커뮤니티와 한국어 오픈데이터

  1. 1. 파이썬과 커뮤니티와 한국어 오픈데이터 2019-08-17 박은정
  2. 2. 박은정 a.k.a. lucypark, echojuliett, e9t • 기계번역을 하는 머신러닝 엔지니어 • 데이터로 지식의 장벽을 낮추고 싶은 사람 • Yak shaver 2
  3. 3. 때는 2019년 5월 • 기회가 된다면 하고 싶은 말이 있었어! • "제안해주셔서 감사합니다! 어떤 얘기를 해야할지 확신이 들지는 않지만 유 익한 얘기를 할 수 있도록 준비해볼게요." • 발표까지 3개월이나 있으니 준비할 시간도 충분하다! 3
  4. 4. 꼼꼼한 계획 • 한국어 NLP의 오픈소스/데이터에 대한 서베이를 해서, 현황을 공유하고 다 같이 발전시켜나가자고 제안해야겠어! • 키노트라면 정보를 전달하기보다는 포용inclusion, 다양성diversity, 커뮤니티와 같은 가치를 부각하는 발표면 좋을 것 같아 • 그런데 또 파이콘이니까 파이썬에 대한 얘기도 해야지 • 그렇다면 3년만에 konlpy도 좀 업데이트 해볼까? 각종 데이터셋을 konlpy.download에 포함해서 사람들이 쉽게 다운로드 받게 하면 좋을 것 같다! 4
  5. 5. 그리고 2019년 8월 • konlpy는 고칠게 너무 많다... 같이 만들어가요! • 아직 발표자료도 없네... ㅠㅠ • 다행히 이른 아침의 첫 발표니까 사람이 별로 안올거야... 5
  6. 6. 오늘 할 이야기 • 문제 의식 공유 • 커뮤니티에 작게나마 기여할 수 있었던 개인적인 경험 공유 옛날 얘기 • 한국어 오픈데이터 이야기도 조금 주변 사람들은 맨날 들었던 얘기 Image source: Sandra and Woo, Richard's guide to software development, 2012. 6
  7. 7. 여러분은 프로그래밍을 왜 하시나요? 7
  8. 8. 프로그래밍은 왜 하는가? • 취미 • 먹고사니즘 • 개인의 성장 • 나의 커뮤니티에 기여하기 이 항목들은 상호배타적이지 않다! 8
  9. 9. 옛날 이야기 하나: 팀포퐁 파이썬을 좋아한 시빅 해커들 9
  10. 10. 때는 2011년 10
  11. 11. 11
  12. 12. 12
  13. 13. 잠깐, 자료가 부족하다고요? 13
  14. 14. 여기에 다 있는데요? http://likms.assembly.go.kr 14
  15. 15. 하지만 너무 어렵고 재미없음 누가 누군지도 모르겠고 2014년 당시 캡쳐 화면입니다. 지금의 의안정보시스템은 좀 더 편리하게 바뀌었어요! ! 15
  16. 16. 문서는 접근성이 떨어짐 논문 느낌 물씬 나는 PDF 16
  17. 17. 검색엔진이 접근할 수 없는 정책 하지만 국회 자료는 공공재. 국민이 검색할 수 있어야! 17
  18. 18. 우리가 가진 기술을 이용해서 세상을 바꿔보자! 18
  19. 19. 팀포퐁 http://popong.com • 예비 디자이너, 개발자, 기획자 등으로 구성된 학생 10여 명 • 기술로써 대한민국 정치를 뒤흔드는게 목표 • 직접 서비스를 만들어보면서 우리가 성장하는 것은 덤! (또는 더 큰 목적) POPONG = "Public Open POlitical engineeriNG" 19
  20. 20. 서비스 프로토타이핑을 하고 당시 핫했던 프로토타이핑 툴 Balsamiq ! 프로토타이핑 과정이 궁금하면 여기로 가주세요. 20
  21. 21. 의원 네트워크 분석도 하고 Read more about this here. 21
  22. 22. 매주 토요일마다 모여 기획과 토론과 스터디 대다수가 입법과정 대해 아는게 하나도 없었거든요 그렇게 2번의 크리스마스를 함께 맞이한 후... 22
  23. 23. 웹서비스 "대한민국 정치의 모든 것" 탄생 이것 때문에 크롤링도 열심히 하고 아쉽게도 지금은 효용 대비 비용이 많이 지출된다고 판단해서 2018년 12월부터 out of service 하지만 팀포퐁 3기가 다시 심폐소생 중이라 다시 세상에 나올 수도 있어요! 23
  24. 24. 웹서비스 "대한민국 정치의 모든 것" 탄생 프론트엔드도 배우고 24
  25. 25. 웹서비스 "대한민국 정치의 모든 것" 탄생 D3와 NLP에도 관심을 가지게 되고 25
  26. 26. 웹서비스 "대한민국 정치의 모든 것" 탄생 PDF 파싱도 익히고 26
  27. 27. South Korea/Seoul Maps 데이터 공개 메르카토르 같은 투영법도 배움 shp 파일을 TopoJSON으로 바꾸는데만 1년이나 걸렸어요 ! 27
  28. 28. 국회의원/의안 데이터 REST API • 사실 웹서비스는 쇼케이스 • 이게 원래 진행하려던 프로젝트 • 더 많은 사람들이 정치 데이터를 분석하거나 활용해서 서비스를 만들기를 바랬음 아쉽게도 지금은 이것도 out of service고 코드만 남아있지만, 이제는 국회에서 직접 데이터를 제공합니다! (회의록, 의안, 의원) 28
  29. 29. 오픈소스, 오픈데이터: 모든 것을 공유하려는 노력 29
  30. 30. 대한민국 정치를 뒤흔들겠다고 생각한 패기 넘치는 청년들은 • 한편으로는 주변의 작은 사회로부터 인정을 받기도 했지만 • 세상은 그렇게 쉽게 변하는게 아니라는 것을 배웠고 서버 비용이 비싸다는것도 알게 되고 • 무엇보다도 소중한 좋은 친구를 얻고 30
  31. 31. 그 어떤 경험보다 값진 좋은 개발 문화를 배웠습니다 • 문서화 해주세요. 팀 내외와 소통하는 방법 • Git의 좋은 프랙티스는 이거래요. 팀 내외와 소통할 때 지키면 좋은 매너 • 새 프로젝트에서는 Flask라는 프레임워크를 써볼까요? 새로운 도구를 익히는 방법 • 아이디어는 working prototype으로 보여주세요. 탁상공론을 벗어나 팀을 움직이는 방법 • 그 코드/데이터 라이센스가 뭐에요? 타인의 저작물을 존중하는 자세 31
  32. 32. 세상을 바꾸는 것 나와 내 주변을 바꾸는 것 32
  33. 33. 시간이 좀 걸려도 괜찮다 모르는 건 배우면 된다 33
  34. 34. 오픈소스가 큰 의미를 가지듯이 데이터를 가공해서 오픈데이터로 릴리즈하는 것도 의미있다 34
  35. 35. 옛날 이야기 둘: KoNLPy 필요가 탄생시킨 파이썬 라이브러리 35
  36. 36. 때는 2014년 • 제 전공이 원래 텍스트랑은 상관없고 숫자를 분석하는 데이터마이닝 • 학교 프로젝트를 수행하던 중 한국어 분석을 편리하게 하기 위해 시작 • 한국어 분석을 하려면 일단 토크나이징을 해야하는데 어떻게 하지? • 형태소 분석을 하면 된다는데 오픈소스는 있나? • 몇 가지가 있는 것 같은데 성능은 어떻게 다르지? 36
  37. 37. Enter KoNLPy >>> from konlpy.tag import Okt >>> okt = Okt() >>> okt.pos('만나서 반가워요!') [('만나서', 'Verb'), ('반가워요', 'Adjective'), ('!', 'Punctuation')] • 각종 오픈소스 형태소 분석기를 모음 • nltk 등 다른 라이브러리와 같이 편리하게 쓸 수 있게 인터페이스를 통일 • 한글을 다룰 때 필요한 각종 util을 추가함 37
  38. 38. KoNLPy와 첫번째 PyCon KR • 당시 파이썬 스승: "파이콘이 한국에서 처음 열린대!" • 나: "나와 비슷한 불편함을 겪고 있는 사람이 많지 않을까?" • 만들던 걸 잘 패키징해서 공개해보자! 38
  39. 39. 39
  40. 40. 사람들은 왜 KoNLPy를 사용했을까? • 초보자: 사용법이 쉬워서? 더 쉬우면 좋겠네요 • 학생: 보고 따라할 예시가 있어서? • 실무자: 다양한 구현체 간 성능 비교가 편해서? • 외국인: 문서가 영어로도 쓰여 있어서? • 환경적 요인: 이후 파이썬이 국내외에서 한창 인기몰이를 해서? 40
  41. 41. 내가 필요한 도구는 내가 만들어 공유한다 그러면 생각지도 못한 도움을 주고 받을 수 있다! 41
  42. 42. 이듬해에 두번째 PyCon KR • 개인적 동기: 첫 파이콘 경험이 너무 좋았다 • 당시 학계에서는 representation learning이 핫해진 시점 • word2vec, doc2vec을 국내의 파이썬 커뮤니티에 소개해볼까? • 작년에 오픈소스로 KoNLPy를 공개했지만 막상 토이데이터가 별로 없다. 일단 한국어로 된 데이터셋을 만들어보자! 42
  43. 43. 한국어 영화평 데이터 nsmc $ head ratings_train.txt id document label 9976970 아 더빙.. 진짜 짜증나네요 목소리 0 3819312 흠...포스터보고 초딩영화줄....오버연기조차 가볍지 않구나 1 10265843 너무재밓었다그래서보는것을추천한다 0 9045019 교도소 이야기구먼 ..솔직히 재미는 없다..평점 조정 0 6483659 사이몬페그의 익살스런 연기가 돋보였던 영화!스파이더맨에서 늙어보이기만 했던 커스틴 던스트가 너무나도 이뻐보였다 1 5403919 막 걸음마 뗀 3세부터 초등학교 1학년생인 8살용영화.ㅋㅋㅋ...별반개도 아까움. 0 7797314 원작의 긴장감을 제대로 살려내지못했다. 0 9443947 별 반개도 아깝다 욕나온다 이응경 길용우 연기생활이몇년인지..정말 발로해도 그것보단 낫겟다 납치.감금만반복반복.. 0 7156791 액션이 없는데도 재미 있는 몇안되는 영화 1 • 주어진 영화평을 긍정 또는 부정으로 분류하는 데이터셋 • Maas et al. 2011의 IMDB 데이터셋(영어)을 벤치마크 43
  44. 44. 내가 가진 기술이 대단하지 않아도 커뮤니티에 기여할 수 있다 누구나 무엇이든! 44
  45. 45. 마지막으로 요즘 한국어 오픈데이터 이야기 45
  46. 46. 들어가기에 앞서 꼭 하고 싶었던 이야기 46
  47. 47. 알파벳은 영어가 아니다! Alphabet NLP가 아니라 English NLP 47
  48. 48. 한글은 한국어가 아니다! Hangul NLP가 아니라 Korean NLP 한글은 문자, 한국어가 언어 48
  49. 49. 한국어 오픈데이터 현황: Sequence classification / labeling 공개시기 이름 목적 크기 라이센스 2007 세종코퍼스 품사태깅 838k sentences CC BY-NC-ND 4.0 2012 KOSAC 감성분류 (감성어 사전도 배포) 7.7k sentences Custom 2015 nsmc 감성 분류 200k sentences (Train: 150k, Test: 50k) CC0 (Public Domain) 2016 KoreanNERCorpus NER 3.5k sentences - 2018 nlp-challenge NER 90k sentences - 2018 nlp-challenge SRL 35k sentences - 2018 Question pair Paraphrase detection 7k sentence pairs - 라이센스가 안 적혀 있는 줄은 라이센스가 명시되어 있지 않거나 제가 못 찾은 경우입니다. 49
  50. 50. 한국어 오픈데이터 현황: Sequence generation 공개시기 이름 목적 크기 라이센스 2015 JPO patent corpus 기계번역 ja-ko, 특허 도메인 257k sentence pairs Custom (상업적 이용 불가) 2017 Korean parallel corpora 기계번역 ko-{en, fr, ja} 각 언어쌍별 0.7k, 95k, 0.2k sentence pairs CC BY-NC-ND 3.0 (상업적 사용 불가) 2018 KSS 음성 합성/인식 12.9k pairs CC BY-NC-SA 4.0 (상업적 이용 불가) 2018 Chatbot data 대화 12k pairs - 2018 OpenSubtitles2018 기계번역 ko-* 1.3m sentence pairs (For ko-en only) - 2019 AIHub 한국어-영어 번역 병렬 말뭉치 기계번역 ko-en 16k sentence pairs (To be 1.6m within 2019) - 라이센스가 안 적혀 있는 줄은 라이센스가 명시되어 있지 않거나 제가 못 찾은 경우입니다. AIHub의 경우 라이센스가 명시되어 있지 않지만, "중소기업, 벤처기업, 스타트업, 개인개발자, 연구자" 등이 타겟유저인 정부 사업이므로 CC0 또는 CC BY이지 않을까 추측해봅니다. 또, 제가 기계번역에 관심이 있어서 다른 분야에 비해 상대적으로 더 나열할 수 있는 것 같은데 놓친 좋은 데이터셋이 있다면 awesome-korean-nlp 같은 리스트에 공유해주세요 50
  51. 51. 한국어 오픈데이터 현황: Others 공개시기 이름 목적 크기 라이센스 2018 KorQUAD MRC 66k Q/A pairs - 2019? AIHub 기계독해 MRC 450k Q/A pairs - 2019 cc-kedict 한영 사전 13.7k entries CC BY-SA 3.0 2019 kosentences Self-supervised learning 31m sentences MIT + GNU Free Documentation + CC BY-NC-SA 라이센스가 안 적혀 있는 줄은 라이센스가 명시되어 있지 않거나 제가 못 찾은 경우입니다. 이 중 몇 가지는 제가 직접 이용해보지 못했습니다. 51
  52. 52. 생각보다 많다! ! 더 많으면 좋겠지만... 52
  53. 53. 좋은 사례 1: KorQUAD https://korquad.github.io/ • 충분한 양의 데이터 공개 • 심지어 리더보드까지 공유! 53
  54. 54. 좋은 사례 2: KSS https://kaggle.com/bryanpark/korean-single-speaker-speech-... • 국내 최초의 음성 오픈데이터 • 제법 많은 분량 • 라이센스가 뚜렷하게 명시되어 있어서 무엇을 할 수 있고 없는지가 명확함 54
  55. 55. 왜 오픈데이터가 중요한가요? 1. 벤치마크가 될 수 있기 때문! • ML 모델들은 데이터와 지표가 같아야 모델 간 서로 비교가 가능 • 비교가 가능해지면 기술 발전이 온다 2. 누구나 바로 분석이나 모델링을 시작할 수 있기 때문! • 프로그래밍에서 reinventing the wheel이 종종 경계의 대상이 되듯 • 모두가 데이터 취득과 정제를 할 필요는 없잖아요 55
  56. 56. 데이터를 공개할 때 확인하면 좋은 점 1. 사용자가 바로 다운로드해서 사용할 수 있는가? • 가급적이면 회원가입, 이용동의 절차 없이 바로 사용할 수 있게 함 2. 원문에 개인정보/저작권 문제는 없는가? • 오픈데이터는 기술 발전을 위해 매우 중요하지만 개인정보와 저작권도 존중받고 지켜져야 함! 3. 가급적이면 라이센스를 꼭 명시해주세요! • 이용자의 별도의 문의없이 가능한 것, 불가능한 것을 알리기 위함 56
  57. 57. 오픈데이터를 사용할 때 확인하면 좋은 점 1. 데이터가 충분히 큰가? 충분히 의미있는 결과를 낼 수 있는 정도로 충분한가? 2. 라이센스가 무엇인가? 재배포가 가능한가? 상업용으로 이용해도 되는가? 57
  58. 58. Call for partipation • 한국어 NLP 같이 발전시켜요! • 오픈소스로도, 오픈데이터로도 기여할 수 있습니다 • 오픈소스는 파이썬이어도 좋지만 꼭 파이썬은 아니어도 됩니다 • 오픈데이터는 정부, 기업, 학교 모두 함께해요 물론 개인 개발자도 • 한국어 NLP 말고 다른 재밌는 분야도 많이 기여하고 서로 공유해요! 58
  59. 59. 감사합니다 @echojuliett https://lucypark.kr 슬라이드를 보고 귀중한 피드백을 주신 @lovit, @shurain 님께 감사드립니다. 59

×