태터데스크 관리자

도움말
닫기
적용하기   첫페이지 만들기

태터데스크 메시지

저장하였습니다.


요즘 트위터, 페이스북와 같은 SNS 사용자가 급등하면서 이를 오피니언 마이닝에서 이용하는 시도가 늘어나고 있습니다.

그 중 다음소프트라는 기업이 오피니언 마이닝 분야를 계속적으로 연구하고 있습니다.

지난 서울 시장 보궐 선거에서도 박원순 시장의 당선 유력을 조심스럽게 데이터로 뽑아서 사람들의 주목을 받았습니다.

 



실제로 박원순 시장이 당선 되면서 오피니언 마이닝에서 다음 소프트의 입지가 매우 높아진 것 같습니다.

그러나 아직까지 조심스럽게 진짜 "오피니언"은 제공하고 있지 않습니다.

기술력의 부족이라기 보다는 정치적인 성향과 잘못 판단 되었을 때의 리스크가 매우 크기 때문일 것입니다.

실제로 다음소프트의 연구진분들은 석,박사로 이루어진 브레인의 집합체라고해도 과언이 아닐 것입니다.

그러나 위험하더라도 "오피니언" 을 제공하지 않아서 이번 민주당 대표 선출시에 잘못된 결과가 나타났습니다.

바로 한명숙, 문성근의 싸움에서 문성근의 우세를 점쳤기 때문인데요.

이는 단순 SNS에서 언급되는 비율만을 갖고 측정하였기 때문에 위와 같은 결과를 점친것 같습니다.




실제로 문성근을 트위터에서 검색해보면 대부분 내용들이 부정적이라는 것을 확인할 수 있습니다.

언급된 비율이 정확히 얼마인지 알 필요가 없는 일반 사용자들에게 차라리 언급된 비율과 그 비율 중 긍정, 부정으로 분류하여 "랭킹" 개념으로 접근하였다면,

순위가 뒤집힐 수 있지 않았나 조심스럽게 생각해봅니다.

"언급률" 이라는 내용보다는 "지지율"이라는 단어로 변경하여 긍정, 부정에 대한 결과를 내부적으로 심어버린다면, 

서비스를 이용하는 사람들에게  긍정, 부정에 대한 결과를 직접적으로 제공하지 않더라도 한명숙 대표의 승리를 알 수 있지 않을까..하는 생각을 해봅니다.


물론 긍정, 부정을 분류하는 일이 쉬운일은 아닐 것입니다.

SNS라는 비정규화된 글의 형태.

이에 따른 각종 철자 오류 및 신조어.

개인의 의견에 따른 긍정, 부정의 상대적인 기준 등등..

국내를 대표하는 오피니언 마이닝 전문 연구소인만큼 앞으로도 많은 연구를 하셔서 저희에게 좋은 서비스를 제공해주셨으면 좋겠습니다 ^^

사용자 삽입 이미지

제가 연구실에 있으면서 공식적으로 처음 만들었던 시스템입니다.

상품평이라는게 보는 관점에 따라서 좋은 말로, 또는 안 좋은 말로 판단 될 수 있습니다.

그래서 정확도 측정하는데 상당히 애를 많이 먹었습니다.

결국에는 카파테스트라는 검증을 사용해서 이 시스템이 실제 사람과 얼마나 유사한 판단을 하는지

테스트 하였는데, 그래도 봐줄만 한 정도로 나왔었습니다.

이 시스템은 단순히 구현을 넘어서..제 생애 첫 논문이 되었지요.

지금도 자연어처리를 열심히 공부하고 있는 학생이지만..지금 제 스스로 벌여놓은 일이 너무나 많네요.

그래도 매번 이런 "연구"를 하고 공부를 할 때 마다 기분은 좋네요^^;

실제로 사용해 볼 수도 있게 데모 사이트를 만들어 놨지만

한동안은 비공개로 해놔서, 저희 연구실 사람들만 데모 시스템을 사용할 수 있게 해놨었습니다.

하지만 오늘!.. 이 초라한 상품평 분류 시스템을 공개해보려고 합니다.

많이 사용해 주시고..코멘트도 달아주세요 ㅜ_ㅜ

업데이트 따위는 없습니다........(게으름뱅이..)

http://nlp.kangwon.ac.kr/~shin285/index.php

덧, 이 시스템을 공개하는 이유는 이보다 더 나은 성능의 시스템을 구현하려고 하는데 이에 대한 사용자들의 의견이 종합되어야 할 것 같다는 제 스스로의 판단 때문입니다.

ACL2009에서 나온 논문으로

여러가지 term weight 방법들을 비교하고 감정 분류 시스템에서 각 방법들을 평가하였다.

이 논문은 새로운 feature를 선택하는 방법이나, term weight를 주는 방법의 새로운 방법은 없었다.

이 중에서 눈여겨 봐야할 점은 각 term wieght model들을 조합하였는데,

좋은 성능을 낸 model 조합도 있었지만 오히려 성능이 저하되는 model 조합도 있었다.

그리고 여기에 대한 결론으로 corpus가 다르고 추정 파라미터의 값이 다르기 때문이라고

논문에서는 이야기하고 있다.

이 논문을 읽으면 실제로 감정 분류에 대해서 중요한 아이디어들을 얻을 수 있을 것이라 예상했지만,

단순히 모델들에 대한 소개와 실험, 그리고 각종 corpus 소개 등이 주를 이루고 있어서 조금 아쉬웠다.

자연어처리에 대한 공부를 하다보면 가장 많이 듣는 단어 중 하나는 feature이다.

그리고 항상 실험 부분에서 많이 나오는 단어는 위 제목과 같이 accuracy, precision, recall 이다.

특히 문서 분류나 검색에서 많이 사용되는 실험 척도인데,

주로 precision과 recall을 구한 뒤에 F-measure로 최종 결과를 내는 논문들이 많았다.

그리고 accuracy로 최종 결과를 내는 논문들 역시 많이 있었는데.

정확률? 재현률? 정밀도?

나 역시 많은 논문을 접하면서 쉽게 단어가 노출되어서 익히 들어왔지만 항상 그때그때 마다 헷갈리는 부분이다.

마치, 일란성 쌍둥이를 한참 들여다보고 나서야 누가 형이고, 동생인지 알 수 있는 것처럼 말이다.

이제 accuracy, precision, recall을 확실하게 기억하기 위해서 집중하도록 하자!!

먼저 표를 살펴보자.


사용자 삽입 이미지

위의 표는 실제 정답(검색, 분류, 띄어쓰기 등..)과 실험 결과를 한 눈에 파악 가능하도록 나타낸 것이다.

먼저 precision에 대해서 알아보도록 하자.

사용자 삽입 이미지

위의 표에서 하늘색 부분을 살펴보자. 실험 결과 true라고 판단 한 것 들이다.

precision은 이렇게 시스템이 true라고 판단 한 것 중에서 실제 true인 것의 percent이다.

즉, 식으로 쓰자면 a/(a+c)가 된다.

이제 recall에 대해서 알아보자.

사용자 삽입 이미지

recall은 흔히 재현율이라고 번역된다. 실제 정답의 true 중 얼마나 많은 true를 찾아냈느냐 하는 percent이다.

위의 표에서 하늘색 부분이 실제 정답에서의 true이다.

이 중 시스템이 true라고 판단한 것의 비율이 바로 recall(재현율)이 된다.

즉, 식으로 쓰자면 a/(a+b)가 된다.

마지막으로 accuracy에 대해서 알아보도록 하자.


사용자 삽입 이미지

일반적인 상식(?) 봤을 때 이 시스템의 결과 중 얼마나 맞았는가를 시스템의 성능으로 판단하는 경우가 많다.

이 경우가 바로 accuracy이다.

쉽게 말해서 시스템이 출력해놓은 전체 결과 a, b, c, d 중에서 실제 정답과 같은 판단을 한 비율이 된다.

즉, (a+d)/(a+b+c+d)가 된다.

================================================================================================

이렇게 까지 직접 정리를 해놨으니..다시 까먹는 일이 없었으면 좋겠다..ㅜ_ㅜ

[참조]
http://en.wikipedia.org/wiki/Precision_and_recall
http://www.slideshare.net/nicbet/computing-accuracy-precision-and-recall-presentation


이번에 Python을 사용할 일이 있고 게다가 NLP(제 전공 분야)에서는 자주 쓰이는 언어라고 하기에

본격적으로 사용을 해보려고 합니다!

그러기 위해 필요한 준비물은


자바( 당연히 이클립스를 구동하기 위해서 필수겠죠? )

이클립스 (최신버전이라면 OK)

Python (파이썬으로 개발하는 건데..이것 역시 당연한거겠죠?)


그리고 다른 블로그에서 보게 되면 pydev..사이트에가서 뭘 어떻게 하고 그렇게 하라고 하는데..

솔직히 전 해봐도 잘 안되더군요 -_-;;

그러다가..이클립스의 업데이트를 사용하여 python을 사용할 수 있다길래!!

Help -> Software update -> Available Software -> Add site -> "http://pydev.sourceforge.net/updates/" 주소 입력 -> 플러그인 설치는 끝!

그리고 이제 이클립스 설정 단계..

이 단계는 다른 블로거 분께서 자세히 설명해 주셨기 때문에 링크로 대체하겠습니다!

http://whiteship.tistory.com/488

자 이제 할일은..

"Hello Python!!"