오늘은 외국어 문장 판별을 해보도록 하겠습니다
알파벳을 가지고 언어를 판단 할 수 있는지 알아보도록 하겠습니다
train폴더 안에 있는 txt파일을 한번 다 출력해보도록 하겠습니다
텍스트 팡리이 다 잘 출력이 된 것을 알 수 있습니다
이제 os.path를 사용하여 파일 이름만 추출해보도록 하겠습니다
파일 이름이 잘 추출 됌을 알 수 있습니다
이제 파일이름과 파일이름 -앞에 있는 외국어 label을 파싱하여 출력해보도록 하겠습니다
re를 이용해서 정규식으로 파싱해도 되지만 split을 사용하여 파싱하였습니다
이제 파일을 읽어들여서 알파벳 빈도수를 구하는 코드를 짜보도록 하겠습니다
# 대소문자가 섞여있으면 나중에 ord로 범위설정이 까다로움으로 소문자로 다 변경하였습니다
알파벳이 잘 출력되는 것을 볼 수 있습니다
이제 count list에 a부터 z까지 빈도수를 저장해보도록 하겠습니다
언어 label 마다 빈도수가 잘 저장되었음을 볼 수 있습니다
지금까지를 종합하여 아래코드는 train data를 만드는 코드입니다
아래 코드는 test data를 만드는 코드입니다
폴더명과 list명만 달라졌습니다
이제 train data와 test data를 가지고 학습을 시켜서 예측하는 코드를 짜보도록 하겠습니다
정답률이 87퍼센트로 나오고 classification_report를 이용해 report로 출력 했더니 더 깔끔하게 결과를 볼 수 있었습니다
느낀 점
조금씩 비슷한 예제들을 돌려보고 하니 이제야 학습과 예측에 대해서 감이 잡히는 거 같습니다
아직은 학습시켜서 예측한다는 것이 신기하지만 조금 더 공부해서 원하는 데이터를 집어 넣어
예측 값을 뽑아내보고 싶습니다
'Language > Python' 카테고리의 다른 글
[codility]CyclicRotation (0) | 2019.03.06 |
---|---|
[MACHINELEARNING]TIL13 4.4절 언어 구분 학습[2] (0) | 2019.01.01 |
[MACHINELEARNING]TIL11 scikit learn fit() 메서드의 매개 변수 (0) | 2019.01.01 |
[MACHINELEARNING]TIL10 scikit learn 기본 흐름 (0) | 2018.12.31 |
[MACHINELEARNING]TIL9 scikit learn 기본 구성 (0) | 2018.12.12 |