NLP + Pytorch/2강 - 전처리

2-2강 - 코퍼스 수집

intelligentcm 2020. 3. 3. 17:32

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> 그냥 번역 품질의 저하