이 포스팅은 서적 '머신러닝, 딥러닝 실전개발 입문'을 참고한 포스팅입니다.
아이디어
이제 해당 나라별 기사 데이터를 활용해야 하지만
글자 데이터를 학습기에 곧바로 집어넣을 수 없기 때문에,
글자데이터를 나타내는 벡터로 변경해서 사용해야한다.
어떤 특징을 추출하여 벡터로 나타내면 될까?
각 언어에 해당하는 차이를 기반으로 학습을 시켜야하기 때문에 고려해본 결과
언어학적으로 알려진 사실인 언어가 다르면 알파벳의 출현 빈도가 다르다는 것을 기반으로 학습시키도록 해보겠다.
총 20개의 데이터만을 학습하였는데
테스트 데이터의 예측결과와 실제정답을 비교하여 본 결과
정답률 0.875로 생각보다 높은 정확도를 보이고 있으며,
하나 인도네시아어(id)만 오판한 것을 확인할 수 있다.
그 이유를 생각해보자.
해당 기사는 영어(en)로 오판한 인도네시아어(id)
테스트 데이터의 5번째 데이터이다.
해당 문서를 확인해보면 IT와 관련된 내용인데,
"Windows", "OS", "Microsoft" 등의 해당하는 특정 고유명사에 해당하는 영어이름이 굉장히 많이 등장하는 것을 확인할 수 있다.
그렇기 때문에 인도네시아어를 영어로 오판한 것으로 확인된다.
고찰
이론적으로만 머신러닝을 배우다가 실질적으로 간단한 프로그램이지만
구현하여 보니, 라이브러리가 잘되어있어서 그런지 이론만큼 어렵진 않았다.
허나 그만큼 부실한 점이 많은 프로그램이였다.
조금 생각을 해본 결과
고유명사에 해당하는 영어 이름의 경우는 웹에서 수집하여 하나의 사전 처럼 리스트를 만들어 놓은후 고유 명사에 해당하는 문자열을 제외한 뒤,
문장을 분석한다면 위의 사례처럼 오판이 나는 경우가 다소 줄어들 것으로 보인다.
한가지더
해당 프로그램은 영어권의 영향을 받은(영어 문화의 영향을 받은) 나라에만 적용가능 할 것같다는 생각이 든다.
왜냐하면
고유명사를 제외한
한국이나, 일본, 중국의 경우는 자국의 문자인 한국어, 일어, 중국어로만 기사가 작성되어 있는 경우가 많으며
그만큼 알파벳 문자의 비율이 아예 또는 거의 나타나지 않을 것으로 판단된다.
이러한 미묘한 차이는 엄청나게 수많은 데이터 학습이 없는 경우에는
알파벳의 출현빈도 차를 기반으로한 알고리즘에서
동양 문화의 국가에 대해서는 서로 다름을 비교해낼 수 없을 것으로 판단된다.
하지만 이는 내가 언어학에 대한 지식이 부족할 뿐 또 다른 특성을 추가한다면 분류해낼 수 있을 것으로 한편으로도 생각된다.
간단하게 알파벳의 출현빈도를 기반으로 학습하여 해당 언어를 판별하는 프로그램이지만,
똑같은 논리를 적용하여 응용 한다면
해당 일기를 읽고 그날의 감정이 어떠한 감정인지 판별하는 프로그램 또한 만들 수 있을 것이며,
해당 포스팅의 글의 내용을 읽고 자동으로 어떠한 카테고리의 글인지 분류를 해주는 프로그램 또한 만들 수 있을것으로 생각되며
이외에도 수없이 많은 응용이 가능하여 보인다.
'머신러닝(Machine Learning) > 실무' 카테고리의 다른 글
랜덤 포레스트를 이용한 식용 가능한 버섯 구분하기 (0) | 2018.01.10 |
---|---|
문장의 해당 언어 판별하기(그래프 분석) (0) | 2018.01.09 |
웹 상의 정보를 추출하기 (0) | 2018.01.08 |
머신러닝의 양분, 빅데이터(BigData)와 활용 (0) | 2018.01.05 |