2-2강 - 코퍼스 수집
0. data 수집 방법
1) 공개 data 사용
1> kaggle
2> 각종 대회
3> 논문을 위한 data
2) 구매
※ 하지만 양이 한정적이거나 비용이 들 수 있습니다.
3) web crawling (웹 크롤링)
1> 특정 도메인에 편향되지 않게 최대한 다양한 도메인에서 corpus를 크롤링하는 게 좋습니다.
2> 하지만 무분별한 크롤링을 하면 법적인 문제에 휘말릴 수 있습니다.
- 저작권 문제
- 불필요한 트래픽이 웹 서버에 가중되는 과정에서 문제
3> 해당 웹사이트의 크롤링 허용 여부는 해당 웹사이트의 최상단 주소에서 '/robots.txt'를 추가해서 접속하면 확인이 가능합니다.
(이는 다른 분의 티스토리를 참고하기 바랍니다.: https://kugancity.tistory.com/entry/robotstxt-사용하기 )
(robot.txt에 대한 더 자세한 내용은 https://www.robotstxt.org 에서 확인 가능합니다.)
4> 크롤링 하는 법 (간단히 소개)
- Selenium이라는 유명한 패키지를 사용하여 웹 브라우저 드라이버를 직접 컨트롤하면서 수행
- phantomJS나 크롬과 같은 headless browser를 사용하면 실제 사용자가 화면에서 보던 것과 같은 웹 페이지를 내려받을 수 있습니다.
- 이후 BeautifulSoup라는 패키지를 사용해서 HTML 코드를 쉽고 간단하게 파싱할 수 있습니다.
1. monolingual corpus 수집
이는 쉽게 어디서나 구할 수 있습니다.
1) 대표적인 예시
문체 | domain | 수집처 | 정제 난이도 |
대화체 | 일반 | 채팅 로그 | 높음 |
대화체 | 일반 | 블로그 | 높음 |
문어체 | 시사 | 뉴스 기사 | 낮음 |
문어체 | 과학, 교양, 역사 등 | wikipedia | 중간 |
문어체 | 과학, 교양, 역사, 서브컬쳐 등 | 나무위키 | 중간 |
대화체 | 일반 (각 분야별 게시판 존재) | 클리앙 | 중간 |
문어체 | 일반, 시사 | PGR21 | 중간 |
대화체 | 일반 | 드라마, 영화 자막 | 낮음 |
2. multilingual corpus 수집
machine translation을 위해 parallel corpus를 구하기는 monolingual corpus에 비해 어렵습니다.
1) 대표적인 예시
문체 | 도메인 | 수집처 | 정제 난이도 | 정렬 난이도 |
문어체 | 시사, 과학 등 | OPUS | 낮음 | 중간 |
대화체 | 시사, 교양, 과학 등 | TED | 낮음 | 중간 |
문어체 | 시사 | 중앙일보영자신문 | 낮음 | 중간 |
문어체 | 시사 | 동아일보영자신문 | 낮음 | 중간 |
문어체 | 일반 | Korean Parallel Data | 낮음 | 낮음 |
대화체 | 일반 | 드라마, 영화 | 낮음 | 중간 |
2) 주의할 점
1> (영어) 대명사가 사람 이름 등의 고유명사로 표현될 때
- 특히 존댓말이 있을 때
2> 그냥 번역 품질의 저하