Search results

'연구노트'에 해당하는 글들

  1. 2012.03.22  흥미로운 긍정어 부정어 분석 (2)
  2. 2010.08.25  기사에서 키워드 추출 (2)
  3. 2007.05.01  매트랩 프로그래밍
  4. 2007.04.30  데이터 수집 프로그램
  5. 2007.04.18  망했삼
  6. 2007.03.28  최종 transformation 계산 (1)
  7. 2007.03.21  transformation 유도
  8. 2006.11.24  시스템 구성도 & 데모 동영상
  9. 2006.11.21  가속도계를 사용한 remote control의 게임 응용
  10. 2006.11.06  Rope Simulation - project proposal

개인적인 연구를 위해 네이버 영화 평점 정보를 수집하고 있다. 다양한 추천 기법들을 테스트 하기 위해서인데, 사실 이를 위해서는, 영화 제목, 사용자, 사용자가 영화에 매긴 평점 정보만 있어도 된다. 그런데 덤으로 수집한 40자평이 아까워서 이번에 재미있는 분석을 해 보았다.

이름하여 긍정어 부정어 분석! 사실 이름만큼 그리 대단한 걸 한 건 아니고, 사용자가 남긴 평점과 40자평을 바탕으로, 단어에 대한 긍정 부정 정도를 계산 해 본 것이다. 3점 이하의 평점은 부정, 7점 이상의 평점은 긍정으로 가정하였으며, 40자평에서는 형태소분석을 통해 명사, 동사, 감탄사, 기호를 추출하고, 조사는 무시하였다. 그리고 10만 건의 평점 데이터에 대해 계산을 하였고, 긍정(부정)에 나타난 횟수 / 전체 단어의 발생 횟수 > 0.5 이상이고, 10만 건의 40자평 중에서 1% 이상 출연한 단어들을 정리 해 보았다.

뭔가 재미없고, 복잡한 설명은 이제 끝났고, 흥미로운 결과만 보자 :-)

먼저 긍정의 단어들.
 

type word pro count total
POS 최고 0.990 5556 5635
POS 아름답 0.990 985 995
POS 멋지 0.980 2254 2305
POS 오빠 0.980 826 842
POS 대박 0.980 1024 1043
POS 0.980 2054 2089
POS 굿 0.980 902 923
POS 사랑 0.980 2373 2429
POS 강추 0.980 1516 1543
POS 가슴 0.980 1239 1260
POS 눈물 0.970 1038 1066
POS 0.970 1659 1712
POS 슬프 0.970 1524 1568
POS 감동 0.970 5213 5369
POS > 0.960 998 1041
POS < 0.960 951 993
POS 괜찮 0.960 1264 1320
POS 재밌 0.960 4918 5136
POS 재미있 0.960 3943 4092
POS 멋있 0.950 1265 1329
POS 한번 0.950 850 895
POS 0.950 922 973
POS ^ 0.940 767 816
POS !! 0.940 5333 5672
POS 필요 0.940 838 892
POS !!! 0.940 1907 2037
POS 다시 0.940 1029 1094
POS 보고 0.940 875 929
POS ! 0.930 8522 9210
POS ~ 0.930 8231 8845
POS 느끼 0.930 1247 1338
POS 볼만하 0.930 1449 1560
POS 마지막 0.930 1149 1232
POS 0.930 1710 1832
POS 0.930 988 1059
POS 작품 0.930 1023 1103
POS 0.930 5036 5433
POS ㅋㅋ 0.930 1828 1975
POS 0.930 1773 1905
POS 0.930 7693 8308
POS ~~ 0.920 1910 2082
POS 추천 0.920 896 971
POS 연기 0.920 2622 2847
POS 이야기 0.920 842 914
POS 0.920 1529 1658
POS _ 0.910 829 911
POS 0.910 1370 1508
POS 0.910 990 1093
POS 정말 0.910 8889 9736
POS 하지만 0.910 827 913
POS 역시 0.900 1034 1151
POS 0.900 1858 2060
POS 0.900 1587 1759
POS 0.900 2859 3178
POS 우리 0.900 1075 1190
POS 0.890 1798 2031
POS 0.890 889 998
POS 0.890 2200 2474
POS 반전 0.890 812 913
POS 장면 0.890 745 838
POS 너무 0.890 4741 5306
POS 액션 0.880 1382 1563
POS 0.880 1341 1516
POS 0.880 925 1056
POS 기대 0.880 2522 2853
POS 0.880 998 1129
POS 재미 0.880 2877 3256
POS 보이 0.880 730 832
POS , 0.870 6991 8080
POS ,, 0.870 1142 1316
POS 0.870 2603 2996
POS 0.870 15250 17562
POS 생각 0.870 1913 2201
POS 0.870 4149 4777
POS 0.870 21093 24359
POS 0.870 860 989
POS ` 0.860 1187 1388
POS 진짜 0.860 2180 2521
POS 배우 0.860 1163 1351
POS 0.860 2172 2536
POS . 0.850 20983 24815
POS 웃기 0.850 753 891
POS 0.850 1559 1825
POS 영화 0.850 29549 34846
POS 10 0.840 1076 1288
POS 많이 0.840 797 950
POS 0.840 1149 1365
POS 무섭 0.840 744 885
POS 0.840 5652 6747
POS ) 0.830 762 918
POS 0.830 667 801
POS 0.830 668 805
POS 0.830 2204 2658
POS ( 0.820 678 827
POS .. 0.820 18443 22443
POS 한국 0.820 973 1184
POS 공포 0.820 797 970
POS 사람 0.820 1265 1545
POS 0.820 1059 1284
POS 0.820 786 961
POS 나오 0.820 1944 2365
POS 0.810 1571 1948
POS ... 0.810 10909 13480
POS 0.810 1071 1327
POS 못하 0.800 774 962
POS 이거 0.800 799 995
POS 모르 0.790 628 792
POS 0.790 863 1088
POS .... 0.790 1867 2354
POS 그냥 0.780 689 883
POS 0.780 918 1183
POS - 0.770 1301 1687
POS 2 0.770 848 1095
POS 아니 0.760 1480 1959
POS 만들 0.750 1744 2331
POS 감독 0.740 809 1098
POS ; 0.730 849 1171
POS 0.730 1162 1590
POS 스토리 0.730 1107 1519
POS 0.720 655 915
POS 이러 0.710 568 799
POS 내용 0.710 1051 1474
POS ? 0.690 2649 3841
POS 0.690 3136 4576
POS 이런 0.690 586 845
POS 시간 0.640 546 849
POS 0.630 1145 1806
POS 1 0.620 940 1516
POS 0.580 584 999
POS 이것 0.530 505 961

그럴듯한가? ㅎㅎ 
그리고 부정의 단어들
type word pro count total
NEG 최악 0.940 592 629
NEG 졸작 0.850 140 165
NEG 쓰레기 0.850 498 584
NEG 짜증나 0.790 138 174
NEG 어이없 0.770 124 161
NEG 재미없 0.710 537 757
NEG 아깝 0.680 891 1304
NEG 망하 0.650 102 156
NEG 별루 0.650 147 226
NEG 알바 0.630 193 304
NEG 0.630 469 747
NEG 0 0.610 179 294
NEG 실망 0.600 355 588
NEG 전지현 0.580 222 386
NEG 0.580 118 204
NEG 지마 0.550 160 293
NEG 어설프 0.550 130 238
NEG -- 0.540 97 178
NEG 별로 0.540 317 583
NEG 유치 0.540 279 515
NEG 억지 0.530 109 207
부정의 단어들은 한결 더 와 닿는다. ㅋㅋ 물론 중간의 전지현이 왜 들어갔는지는 좀 의문이지만. --; (아마 전지현이 출현해서 망한 영화에서 나온 리뷰들이 많이 포함된 것 같다)

이렇게 분석된 단어의 확률들을 바탕으로 Naive bayesian classifier 혹은 Fisher's classifier를 적용하면, 어떠한 상품에 리뷰가 상품에 대한 긍정의 리뷰인지, 부정의 리뷰인지를 계산할 수 있게 된다. 물론 나의 현재 관심사는 그곳이 아니기 때문에 여기까지만 하고 끝!

내일(아니, 오늘이구나) 아침 machine learning 스터디 때문에 집단지성 책을 보고 있는데, 막상 돌아가는 걸 보니 너무 신기하다. 난 처음에 한글 뉴스 기사에서 명사 단어를 추출하는데 힘을 너무 많이 뺐는데,  이 책 저자는 쿨하게 영어 단어를 빈칸 단위로 나눠서 썼다. 진작 나도 이렇게 할껄-_-

어쨌거나 저쨌거나, 내가 한글 형태소 분석기를 만들 수는 없었던 관계로, 각 단어를 빈칸 단위로 나눈 다음에, 네이버 사전에서 쿼리를 날린 다음, 네이버 사전이 “명사”라고 판단해 준 단어만 사용하였다. 조사가 포함된 단어를 던져도 네이버 사전은 알아서 분석해서 결과를 던져주니 그저 고마울 따름. :) 물론 네이버 사전을 파싱하는 삽집은 좀 했다.

매번 단어를 찾을 때 마다, 네이버 사전에 물어 볼 수가 없어서 DB에 ( 기존에 물었던 단어 / 결과 단어 / 품사 ) 형태로 저장한 다음, 새로운 단어를 찾을 때, 먼저 내 DB를 뒤지고, 해당 단어가 없을 때만 사전에 물어보게 했다. 그런데 이것도 속도가 너무 느리다. 찾아보니 MySQL에서 메모리 DB를 지원하길래, 이걸로 바꿨더니 이제 빨라졌다 :)

그리고 조사의 종류에 따라 단어양이 너무 많아져서 단어 Cache를 위한 DB가 너무 커지는 문제 때문에, 많이 사용되는 조사는 따로 분류한 다음, 단어가 해당 조사로 끝날 경우, 조사를 뺀 단어가 DB에 있을 경우, 그냥 조사를 제거한 단어를 사용하는 꽁수도 추가하였다.

이제 기사를 던지면 명사로 추측되는 단어들만 던져주고, 이 단어들을 사용하여 각 기사와 기사에 사용된 단어들의 count를 저장하는 커다란 matrix를 만든다. 너무 일반적인 단어나, 해당 기사에 조금 나온 단어는 제외하고, document – word count matrix를 만든다.

그리고 이 거대한 matrix를 feature matrix와 weights matrix로 분리하는데 non-negative matirx factorization (NMF) 방법이 사용되고, 여기에서 또 증배 갱신 규칙 (multiplicative update rules)을 사용한다.

뭔지 모를 복잡한 방법을 거치고 나면, 기사 마다 최적의 feature들이 나오고, 이 feature들에 포함된 단어들을 출력하면 해당 기사의 키워드가 된다.

오늘 뽑아본 기사 제목과 핵심 키워드

추신수, '명품어깨' 과시…개인 최다 '12호' 어시스트 : 추신수 어시스트 외야 안타 타구 바깥쪽

'박종윤 개인 최다 5타점' 롯데, 올 시즌 최다 5연승 : 타점 두산 안타 적시타 루타 선발

퍼거슨, "안데르손, 지난 시즌에 팀 떠나려 했다"  : 부상 연패 안데르손 퍼거슨 지난 차두리

이 정도면 며칠 동안 오밤중에 잠 안자고 삽질한 보람이? ㅋㅋㅋ

어제 끄적 끄적 공책에 디자인 해 놓았던 데이터 수집 프로그램을 완성하였다. 사실 뭐 대단한 건 없고, 그냥 랜덤하게 로봇의 위치와 방향들을 생성하고 그 데이터를 적용하여 로봇을 해당 위치로 옮긴 다음, 센서 값을 저장하고, 다음 위치로 다시 이동시키고.. 간단한 프로그램이다.

Haptic Device를 제어하는데 약간 문제가 있었는데, Haptic Device가 가까운 거리를 이동할 때는 잘 작동하다가, 꽤 먼 거리를 이동할 때는 갑자기 프로그램이 에러를 내면서 그냥 죽어버리는 거다. -_-; 어디서 에러가 났다는 메시지도 없고, 그냥 Error입니다. 한 마디를 던지고 죽어버린다. 나보고 어쩌라고 -.-;; 고치려고 상당한 노력을 들여봤으나.. 앞으로 해야 할 일을 적어놓은 노트를 보고 한 숨 푹 쉬고, 눈물을 머금고 그냥 넘어가기로 했다. 복잡하게 제어하지 말고 그냥 단순하게 제어해야지 T.T

어찌어찌 해서 모아놓은 데이터를 분석하기 위해 팔자에도 없는 매트랩 프로그래밍을 하고 있는데, 사실 디지털영상처리 수업을 들을 때부터 매트랩이랑 나랑은 사이가 안 좋았다. 당췌 variable대신에 matrix를 쓴다는 개념이 왜 이리도 안 와 닿는지.. 그래도 inverse matrix를 구하는 걸 C++로 짜는 것 보다는 매트랩으로 간단히 data processing을 하는 걸 배우는 게 더 속이 편할 듯 해서 매트랩으로 열심히 코딩을 하고 있다.

매트랩아~ 매트랩아~ 수식을 던져줄 테니 답을 다오~

요즘 블로그에 이런 지루한 글 밖에 안 올라오는데, 요즘 내가 연구실에만 박혀 있기 때문에 딱히 흥미로운 일이 없다. T.T

'연구노트 > Haptics' 카테고리의 다른 글

매트랩 프로그래밍  (0) 2007.05.01
데이터 수집 프로그램  (0) 2007.04.30
망했삼  (0) 2007.04.18
최종 transformation 계산  (1) 2007.03.28
transformation 유도  (0) 2007.03.21
시스템 구성도 & 데모 동영상  (0) 2006.11.24

Mobile Haptic Display 시스템에서는 두 개의 sensor를 사용하는데, 하나는 로봇의 움직임을 추적하기 위한 센서이고, 다른 하나는 사용자의 움직임을 추적하기 위한 센서이다.

그런데 여기서 문제가 되는 것이, 로봇에 부착한 센서인데, 실제로 센서를 로봇의 중심에 딱! 맞게 위치시킬 수 없으므로, 적당한 위치에 센서를 달고, offset만큼을 빼 줘서 로봇의 위치를 계산하게 된다.

로봇 좌표축의 중심을 모바일 로봇 원판의 중심으로 정의하고, 센서가 달려있는 곳에서부터 로봇의 중심까지의 거리를 자로 직접 재는 삽질을 했는데.. 사실 전자과에서 로봇을 만들 때 로봇의 무게를 줄이기 위해서 로봇 원판의 반 정도를 구멍을 뚫어 버리는 바람에 T.T 정확한 중심을 확인할 수 없는데다, 센서의 중심도 사실상 자로 잴 수가 없기 때문에 offset 측정에는 에러가 있을 수 밖에 없다.

이런 문제를 해결하기 위해 내가 측정한 link들의 길이를 하나의 변수로 보고 transformation matrix를 계산 한 다음, 실제 로봇 중심의 정확한 위치와 센서로 부터 계산된 로봇의 위치에 관한 data를 굉장히 많이 모으면, 변수의 개수보다 식의 수가 많아지기 때문에 선형대수에서 말하는 pseudo inverse matrix를 사용하여 정확한 link들의 길이를 estimation할 수 있게 된다.

목요일에 교수님께 data를 수집하는 작업을 적당히 손으로 한 다음, link 길이를 구해보겠다고 말씀드렸더니 "그거 자동화하는 프로그램을 하나 짜서 하는게 낫지 않겠어?" 하시는 바람에 T.T

오늘에야 간신히 데이터 수집 프로그램을 완성해서 돌리고 있다. 흑. 물론 자동화하면 편하고, 체계적으로 많은 데이터를 모을 수는 있지만, 그 프로그램 자체를 디자인하고, 코딩하고, 테스트 하고, 디버깅하고 하는데 걸리는 시간이 더 크다는 걸 왜 모르실까. -_ㅜ

아니면 아시면서도 나의 코딩 실력을 너무 믿으시는건가.. 에혀 orz 하여간 금요일이랑 일요일 이틀 삽질해서 프로그램 작성하고 테스트도 마쳤다;; 이제 내일은 이 프로그램 돌려서 데이터 모으고 분석해야지;; 오늘은 이만 //

'연구노트 > Haptics' 카테고리의 다른 글

매트랩 프로그래밍  (0) 2007.05.01
데이터 수집 프로그램  (0) 2007.04.30
망했삼  (0) 2007.04.18
최종 transformation 계산  (1) 2007.03.28
transformation 유도  (0) 2007.03.21
시스템 구성도 & 데모 동영상  (0) 2006.11.24

원래 내가 연구하고 있는 Mobile Haptic Display에서 논문이 될만한 부분은 haptic rendering 파트였다. 나머지 부분은 사실 독일 그룹이탈리아 그룹에서 연구가 많이 진행되었고, conference와 journal에 몇 편의 논문이 발표된 상태이다. 단지, 다른 나라 그룹들은 mobile haptic display를 telepresence system차원에서 접근하는 기계과 사람들이 대부분이었기 때문에, 다른 그룹들이 소홀이 여기는 haptic rendering을 연구 주제로 잡은 것이었다.

그러나 실상은 haptic rendering도 virtual proxy algorithm이라는 걸출한 스타가 자리잡고 있기 때문에, 기존 알고리즘을 최대한 이용하는 방향으로 연구를 진행하고 있었다. 기본적으로 사용자가 느껴야 하는 force는 virtual proxy algorithm으로 계산을 하고, mobile robot이 움직임으로써 발생되는 force를 haptic device에서 상쇄해 줌으로써, 사용자가 정확한 force feedback을 느낄 수 있도록 하는 것이다.

그런데 오늘 force와 torque사이의 유도식인 Jacobian을 계산해 보고, 뭔가 이상한 점이 있어 Robotics를 전공하신 지능로봇연센터의 박종훈 박사님을 찾아 뵙고 자문을 구했다. 약 1시간의 토론 끝에 나온 결론은, 실제 mobile robot이 움직임으로써 발생하는 힘은 최종 force를 계산할 때 무시해도 된다는 것. -_-;

어떡하냐 -.- 이거 졸업 한 달 남기고 논문의 핵심 주제가 쓸모 없게 되어 버렸네. 헐헐

'연구노트 > Haptics' 카테고리의 다른 글

매트랩 프로그래밍  (0) 2007.05.01
데이터 수집 프로그램  (0) 2007.04.30
망했삼  (0) 2007.04.18
최종 transformation 계산  (1) 2007.03.28
transformation 유도  (0) 2007.03.21
시스템 구성도 & 데모 동영상  (0) 2006.11.24

간만에 연구를 좀 하셔서 드디어 최종 transformation을 유도했다!

사용자 삽입 이미지


이렇게 생긴 Mobile Haptic Display 의 최종 tooltip까지의 transformation을 알기 위해서

사용자 삽입 이미지

위와 같은 coordinate들을 정의하고, 모든 matrix를 곱해서 최종 transformation을 구해보면,

사용자 삽입 이미지
위와 같이 복잡한 matrix가 나옴! 지금 계산해보니 대략 +- 5cm의 오차로 계산이 된다! 이렇게 기쁠 때가 있나!

처음에 column major order matrix로 계산을 했는데, vector를 왼쪽(pre multiply)에 곱해야 하는지 모르고, 오른쪽(post multiply)에 곱하는 바람에 계산이 엉망이 된 점,

최종 tooltip의 위치를 계산해서 그려보면 저기~ 어디 이상한 곳에 그려지는 바람에 잘못 계산한 줄 알고 한참을 오류를 찾았는데, OpenGL에서 orthorgonal view가 아닌 perspective view로 보는 바람에 계산은 정확했지만, 마치 다른 위치인 것처럼 보였던 점,

IS900 tracker의 원점이 바닥이 아니라, 천장에 붙어있었던 것.. 등등..

온갖 삽질 끝에 얻은 값진 승리라 더욱 빛이 나는구나. 캬캬

이제 내일은 여기서 Jacobian을 유도해야 한다. 화이팅!!

'연구노트 > Haptics' 카테고리의 다른 글

데이터 수집 프로그램  (0) 2007.04.30
망했삼  (0) 2007.04.18
최종 transformation 계산  (1) 2007.03.28
transformation 유도  (0) 2007.03.21
시스템 구성도 & 데모 동영상  (0) 2006.11.24
Force Sensor, Nano17  (1) 2006.11.02
사용자 삽입 이미지
World frame에서 PHANToM tooltip frame 까지의 trasnformation을 유도해야 하는데.. World coordinate에서 Robot coordinate까지는 transformation이 맞는데, robot coordinate에서 phantom coordinate로 가는 변환이 자꾸 어긋난다.

벌써 며칠 째 삽질인지.. 에휴. 분명 하나 하나 따져보면 다 맞는데, 막상 합쳐서 곱해보면 값이 영~ -_-;

transformation 유도가 얼른 끝나야 Jacobian을 유도하고, tool tip에 적용되는 force도 계산해낼텐데.. 과연 5월에 디펜스를 할 수 있을까? 허허..

'연구노트 > Haptics' 카테고리의 다른 글

데이터 수집 프로그램  (0) 2007.04.30
망했삼  (0) 2007.04.18
최종 transformation 계산  (1) 2007.03.28
transformation 유도  (0) 2007.03.21
시스템 구성도 & 데모 동영상  (0) 2006.11.24
Force Sensor, Nano17  (1) 2006.11.02
Mobile Haptic Display의 현 시스템 구성도

mobile robot과 user에 tracker를 달아서 위치 정보를 추적하고, 이를 이용해서 visual rendering을 하고, 이 정보를 다시 모바일 로봇 안에 있는 노트북으로 전송한 뒤, 노트북에서 haptic rendering과 mobile robot의 velocity control을 해 준다.

but.. 아직 전자과에서 만들고 있는 로봇은 뒤뚱 뒤뚱 거리고 있고, 난 아직 haptic rendering 부분을 손도 못 대고 있는데, 12월에 결과보고서를 써야 한단다. 아이고 ㅠ.ㅠ

'연구노트 > Haptics' 카테고리의 다른 글

데이터 수집 프로그램  (0) 2007.04.30
망했삼  (0) 2007.04.18
최종 transformation 계산  (1) 2007.03.28
transformation 유도  (0) 2007.03.21
시스템 구성도 & 데모 동영상  (0) 2006.11.24
Force Sensor, Nano17  (1) 2006.11.02

연구실에서 하는 과제 중에 KT과제가 하나 있다.

KT가 앞으로 벌어먹고 살 사업 중의 하나로 VR을 생각하는 모양인데, 가속도계를 장착한 remote control을 사용해서 움직임을 인식하고, 이를 사용해서 게임에 적용하는 것이 올해 1단계 과제이다.

잘 이해가 안되는 사람은 wii를 사용한 게임을 생각하면 될 듯 하다.

현재 프로토타입은 가속도계와 택터가 들어 있고, 블루투스를 이용하여 통신을 한다.


여기서 받아온 가속도를 가지고 온갖 삽질을 해서 게임에 적용을 시킨다. 가속도를 사용해서 직접 motion recognition을 하는 경우도 있고, tilt정보, 혹은 가속도를 두 번 적분해서 위치 정보를 이용하기도 한다.

아직까진 사실 잘 안되지만, 그래도 동영상은 꽤 그럴듯하게 나왔다.




어제 밤 10시 경에, 여친님이랑 영화를 보고 있는데 문자가 왔다. 영화 다 보고 12시가 조금 넘어서 확인을 했는데, 이승용 교수님의 메일이었다.

"미리 공지한대로 내일 term project 발표가 있으니 준비해오시오."

헉-_- 맞다-_- Computer Animation -_-;;

부랴부랴 학교로 뛰어들어가서 proposal 보고 대강 대강 ppt를 만들었다. proposal 써 낼 때는 별로 위화감이 없었는데, 막상 ppt를 만들려고보니 우리가 왜 rope simulation을 해야 하는가, 하는 motivation부분이 별로 설득력이 없었다.

우리가 쓴 문서 상에는 기존의 haptic rendering으로는 이러이러한 한계가 있기 때문에 우리는, Physics based simulation을 기반으로 한 새로운 방법을 제안하려고 한다. 그리고 그 example로 rope를 사용한다. 이런 흐름인데-

사실 우리는 rope simulation을 해 보자! 라고 먼저 정하고 proposal을 쓴거라.. 조금 어거지스러운 면이 있었다. 그러나 어찌하리, 졸린데 -.-

다행히 오늘 아침 발표를 무사히 잘 넘기고 이제 열심히 생각하고 구현하면 된다.

그리고 빙고하나! 구글에서 rope simulation 하고 치니깐 뭔가 그럴듯한 예제가 하나 나온다. :D

이거 참고해서 짜면 되겠구나~ 호호

openclose

티스토리 툴바