클라이언트/ 서버/ 엔지니어 " 게임 개발자"를 향한 매일의 공부일지

Orange 10 - 영화 리뷰 텍스트 분석 실습해보기 두번째 본문

인공지능/머신러닝

Orange 10 - 영화 리뷰 텍스트 분석 실습해보기 두번째

huenuri 2024. 9. 14. 12:22

영화 리뷰를 분석하는 또 다른 실습 예제를 진행해보려고 한다. 이번 실습은 선생님이 자세한 설명을 해주지 않고 파일부터 생성해서 솔직히 뭘 하는 건지 잘 모르겠다.

아무튼 영화 리뷰를 분석하는 또 다른 예제인 것 같다. 수업이 어느 정도 진행되면서 이 예제가 무엇인지 이제야 알게 되었다. 영화 리뷰를 모아놓은 것을 분석하는 실습이다.


 

 

 

영화 리뷰 텍스트 분석 실습해보기

1. 말뭉치 만들기

 

 

라벨에서 Role을 target으로 지정해준다. 라벨의 feature로 되어 있으면 0과 1로써 0이면 긍정, 1이면 부정인 데이터로 처리된다. 우리는 이것을 정답 데이터인 target으로 지정한 것이다.

이것을 Corpus로 설정해 말뭉치로 전달했다. 이를 Corpus Viewer로 확인해보았다.

 

 

 


 

 

2. 워드 클라우드로 만들어 담아주기

 

 

하지만 만들어진 데이터를 보니 1개만 들어오고 있다. 이는 워드 클라우드에서 Corpus로 넘어온 데이터가 1개라는 뜻이다. 코퍼스 뷰어를 열어 전체 데이터가 나가도록 표시하는 작업이 필요하다.

 

 

 

 

 

 

 

 

 

이제 전체 데이터가 잘 처리되고 있다. 이번에는 불용어 처리를 해주기로 하자.


 

 

 

 

3. 불용어 처리 및 감성 분석하기

 

전보다 정확한 데이터로 처리가 되고 있다. 이번에는 감성 분석을 진행해보자.

 

 

 

 

감성 분석은 별로 되어 있지 않다. 수치가 대부분 0으로 나온 것을 보면 알 수 있다.

 

 

 

카운팅 벡터로 확인되는 것을 볼 수 있다.


 

 

 

4. 모델 분류하여 평가해보기

이번에는 모델을 학습시키고 테스트하는 과정을 거치기 위해 knn 모델을 가져왔다.

 

 

 

점수는 거의 반타작으로 0.5점으로 나오고 있다. 평점을 한번 써서 우리가 작성한 데이터를 넣어주기로 하자.

 

 

 

 

이렇게 작성한 리뷰를 이전에 학습했던 데이터에 넣어준다.

 

 

 

 

 

예측한 결과를 보면 0번으로 부정 평가를 기록하고 있다. 여기에 한 가지 리뷰를 더 작성해보기로 하자.

 

 

 

긍정의 리뷰를 하나 추가하자 분석이 제대로 되지 않아 전의 것도 긍정으로 표시하고 있다. 아직은 오렌지가 한국어 분석은 잘 처리하지 못한다고 한다. knn 모델은 초기에 사용된 확인용 모델로 logistic regration이라고 하는 분류 모델을 잘 사용하는 편이다.

하지만 이름에는 회귀가 붙는다.

 


 

 

 

5. Logistic Regression 모델 가져오기

분류 모델 중의 하나인 Logistic Regression을 가져와서 연결해보았다.

 

Nomogram은 0번이라는 부정에 얼마나 큰 영향을 미치고 있는지 확인하는 시각화 구조이다. 숫자가 클수록 영향을 많이 미치는 요소인데 여기서는 숫자가 잘 표시되지 않는 것으로 보아 정확도가 떨어지는 것을 볼 수 있다.

 

 

 

 

Best ranks를 20으로 놓고 안이라는 그래프를 끝까지 오른쪽으로 밀어준다. '안'이라는 단어의 확률은70%까지 부정으로 영향을 미치고 있다.

숫자가 커지면서 작아지는 데이터는 1일 때 영향을 미치는 것들이다. 되는, 최고, 있고는 긍정의 단어이며, 안은 부정의 단어라는 것을 생각해볼 수 있다.

 

 

 


 

 

학습을 마치고

오렌지 공부는 이것으로 끝이다. 3일 동안 수업을 진행했는데 하루 반나절만에 모든 내용을 다 정리해볼 수 있었다. 머신러닝도 조금 재미있어지고 있다. 이제 12시가 조금 넘었는데 다른 프로그램 실습을 더 진행해보려고 한다.

허깅베이스와 플라스크에 대해서 배웠는데 오늘까지 이 부분을 학습하며 정리해볼 것이다.