[Text Mining] 9. 텍스트 규칙 빌더(Text Rule Builder)
안녕하세요 오늘은 텍스트 규칙 빌더에 대하여 알아보는 시간을 갖도록 하겠습니다.
텍스트 규칙 빌더라는 이름만 들어서는 대체 무엇을 위한 노드인지 가늠하기가 쉽지 않은데요,
간단히 말씀드리면 이렇습니다. 일단 규칙빌더는 타겟 변수를 필요로 하구요,
이 타겟 변수는 반드시 범주형(연속적이지 않은 변수, 별점 등급 학점 등)이어야 합니다.
이 타겟 변수의 각 범주별로 어떤 텍스트들이 속해 있는지 그 규칙(rule)을 찾아내는 것이
바로 규칙 빌더의 기능이라고 볼 수 있겠습니다.
오늘 만져볼 데이터는 2012년에 개봉했던 영화의 댓글을 모아놓은 데이터인데요, 약 18만건 정도가 됩니다.
이 데이터를 이용하여 텍스트 규칙 빌더를 실행해보면 상당히 재미있는 결과를 얻을 수 있습니다.
우선 텍스트 규칙 빌더의 메뉴부터 보시죠.
텍스트 규칙 빌더 메뉴에서 조정할 수 있는 항목은 일반화 오류, 규칙 순도, 전체 탐색 이렇게 세 가지입니다.
일반화 오류는 분석되지 않은 데이터를 사용하여 규칙에 대한 예측 확률을 결정하는 정도를 결정하는 메뉴입니다.
두 번째 항목인 규칙 순도가 높을수록 개수는 적지만 순도가 높은 규칙들이 생성되고,
낮을수록 순도는 낮지만 많은 개수의 규칙이 생성됩니다.
마지막으로 전체 탐색 항목을 높음으로 설정할수록 규칙을 검증할 때 대량의 단어를 사용하게 되어
속도가 느려지고 과다 분석하게 될 확률이 높습니다.
그러나 분석결과가 만족스럽지 못할 때는 전체 탐색의 정도를 높이는 방법도 고려해야겠죠.
자 이제 텍스트 규칙 빌더를 실행해 봅시다.
앗차차, 그전에 우리는 타겟변수를 지정해야 합니다.
이 타겟변수는 앞서 말씀드린 것처럼 범주형이어야 되구요,
저는 그래서 유틸리티 탭의 메타데이터 노드를 중간에 붙였습니다.
요렇게
이제 메타데이터 노드를 클릭하고 메뉴 중 분석-변수-분석 옆에 있는 땡땡땡을 클릭합니다.
타겟변수로 쓸 starscore(별점 변수입니다)의 새로운 역할을 “Target”으로 지정해준 뒤 확인을 클릭합니다.
자 이제 규칙 빌더 노드를 실행시켜 보겠습니다.
실행이 완료되었으면 결과를 확인해봅시다.
좌측 하단의 “가져온 규칙” 창을 최대화시켜보겠습니다.
타겟값은 타겟변수의 값, 즉 별점을 말하는 것이구요,
별점 1점을 준 댓글에는 어떤 단어들이 주로 들어가 있는지 살펴보겠습니다.
미리 말씀드릴 것은 2012년에 개봉한 영화 중에는 “26년” 이라는 영화가 있죠.
저는 안봤습니다만, 광주 민주화운동과 관계가 있는 영화라고 합니다.
그래서 그런지 “선동” “광주” “홍어” “북괴” 이런 단어들이 눈에 띄네요.
물론 정말 재미없는 영화들이 으레 듣는 소리인 “쓰레기” “최악” “졸작” 등의 단어들도 찾아볼 수 있습니다.
오른쪽의 예측 정확도를 보시면 “광주&총기”는 97.23%의 높은 정확도를 보여주네요.
이번에는 반대로 별점 10점을 부여한 댓글에는 어떤 단어들이 들어가 있는지 볼까요?
“최고” “진짜” “대박” “감동” 등의 단어들이 눈에 띄네요.
참고로 개봉영화 목록 중에는 가수 인피니트 콘서트도 있었습니다.
밑에서 두 번째 단어를 보시면 인피니트가 있네요.
가장 위의 단어인 “의영”은 아마 “최고의영화”처럼 붙여 쓴 단어를 잘못 인식한 결과가 아닐까 싶습니다.
그 아래 규칙인 “최고&진짜”는 96.66%의 높은 예측 정확도를 보여주는군요.
사실 어떻게 보면 특별할 것 없는 굉장히 당연한 결과이긴 한데요,
실제로 이렇게 분류가 되니 신기하기도 하고 재밌습니다.
이렇게 생성된 규칙들을 보면 추후에 어떤 작성자가 댓글을 작성하였을 때 그 내용을 보고
별점을 유추해내는 것도 가능하겠죠.
물론 이 경우에는 연구자에게 주는 implication이 조금은 부족하긴 하지만
다른 분야에서 충분히 활용할 만한 가치가 있다고 여겨집니다.
오늘 준비한 내용은 여기까지입니다. 지금까지는 텍스트마이닝(12.1기준)의 노드를 중심으로
각각 어떻게 활용하는 지에 대한 내용을 다루었다면,
다음 시간에는 실제로 비정형데이터를 분석할 때의 텍스트 마이너 활용법에 대하여
이야기를 나누는 시간을 갖도록 하겠습니다.
그리고 마지막 시간에는 비정형데이터와 정형데이터를 접목시켜 결과값을 비교하고
어느 모형이 더 좋은 판단하는 실습을 해보도록 하겠습니다.
오늘도 긴 글 읽어 주셔서 감사합니다. 궁금한 점이나 보완할 점은 언제든지 댓글로 말씀해 주시기 바랍니다.
좋은 하루 되세요! 감사합니다.