검색엔진에서 자연어처리, 형태소분석 등이 필요한 이유가 무엇인가요?
글쓴이: superkkt / 작성시간: 월, 2006/11/20 - 9:22오전
안녕하세요. 오늘도 아침부터 초보적인 질문 하나 적어봅니다.
요즘 검색엔진에 관심을 가져서 이것저것 자료를 찾아보고 있습니다. 그러던 중에 인덱싱된 자료를 검색할때, 특히 한글인 경우, 자연어처리 및 형태소분석 등이 필요하다는 내용을 보았습니다.
이런 내용에 대해서 몰랐을때는 검색 부분은 단순히 입력한 키워드가 있는 페이지를 모두 보여주는데 페이지 랭킹 정도만 계산해서 보여주면 되겠다고 생각했었습니다. 아무래도 이렇게하면 관련성이 적은 페이지도 많이 검색이 되겠죠.
그런데 아무리 생각해봐도 자연어처리, 형태소분석 등을 했을때 어떻게 검색 품질이 좋아지는지 감을 못잡겠습니다. 단순히 입력한 검색어를 AND 연산으로 조회해서 보여주는것보다 어떤 좋은점이 있나요?
Forums:
요새 검색엔진 검색엔진해서 좀 관심을 갖으려고 합니다.
저도 그런 관점에서 의구심이 있어 해매던 중 다음 책을 읽고 있습니다.
'한국어 형태소 분석과 정보 검색"
전문적으로 하는 것이 아니기에 그냥 대충 읽어 넘깁니다만, 한글이 참 어렵다는
생각을 하게 끔 합니다.
왜, 형태소 분석이 필요한지에 대해서 읽다 보면 답이 나오지 않을까 생각합니다만,
생각컨대, 검색엔진들이 진화를 할 것 같은 불길한 생각이 듭니다.
그리고 다음 두 사이트를 관심있게 봅니다.
http://abolapia.egloos.com/
http://hanigamo.egloos.com/
...
제가 알고 있기론 형태소 분석 자연어 처리는 인덱싱을 하기위한 단계인것으로 알고 있습니다.
당연하게도 형태소 분석과 자연어 처리의 성능이 좋다면 더 좋은 인덱스(색인)를 만들수가 있겠죠..
그게 곧 검색의 품질과 관련된다고 생각합니다. :-)
생각해 보니 검색 시점에서도 역시 필요할 것 같군요.
형태소 분석을
형태소 분석을 해야만 정확한 검색이 가능합니다.
형태소 분석이라고 하긴 보다는 명사추출기가 더욱 어울릴듯도 합니다
문서에 '대한민국에서는' 이라는 단어가 있을때 명사 추출을 하면 '대한민국' 이라고 나옵니다
즉 사용자가 대한민국 이라고 검색을 하게되면 '대한민국에서','대한민국도' ,... 등등...
을 검색하게 됩니다. ( 바로 얼마전 kldp 검색이 문제가 되었던것중 하나가 이 형태소 분석으로..
그래서 결국 구글 검색을 쓰는것으로 알고 있습니다 아닌가 >> ㅡ,ㅡ;;)
물론 형태소 분석을 안해도 가능은 할수 있지만... 검색의 정확도.. 색인 DB 의 증가등의
심각한 문제가 발생할수 있지요 ^^
첨언을 드리자면 랭키또한 무지 많은 모델이 있습니다, 불린,벡터... 구글의 페이지링크
여기에 더하여 트러스트 랭크등...^^ 저도 요 개념을 다안다 할순 없지만요.
가자 해외로 ~ .. 돈 벌러.
답변 감사합니다.
답변 감사합니다. 대충 어떤건지 감은 잡았습니다. 그럼 형태소분석이나 자연어처리 등을 하려면 방대한 양의 자료.. 사전(?)이라고 해야할까요? 아무튼 이런 DB가 필요할것으로 생각되는데 제가 이해한것이 맞는지 모르겠습니다. 생각해보니 알고리즘도 복잡할것 같긴하네요. 검색해보니 대학교에서 만든 상용 프로그램들이 몇개 나오는군요. 혹시 형태소분석하는 프로그램도 오픈소스가 있을까요?^^
======================
BLOG : http://superkkt.com
======================
BLOG : http://superkkt.com
오픈소스가 꽤
오픈소스가 꽤 있습니다.
* KLE:KTS
* MoA http://speech.chungbuk.ac.kr/~owkwon/srhome/lectures/public_software.html (KTS와 같은 연구실 랩이랍니다 ^^;)
* 미지의 kspell (소스는 ㅡㅡ;;)
* KLDPWiki:형태소분석기
* http://kldp.org/node/49996
소스를 보면 대부분이 완성형코드 기반에 완성형코드만 지원합니다.
온갖 참된 삶은 만남이다 --Martin Buber
한글이...그런점에서 조금;;
어렵지요... 한글은 조합이 가능하다는 점에서...사용에는 장점이지만 컴퓨팅에서는 조금 불리한점도 있죠.
윗분이 예를드신...어두, 어미, 어간 등의 분리라던가...(영어로는 stemming...일꺼에요 ^^;)
그런게 조금 다른언어에 비해 계산이 복잡한것이 있긴하죠.
그래서 더더욱 그런 처리가 필요한거구요...단순한 불리언 계산 (equal or non-equal) 으로는 한글 검색은
좀 부족한 경우가 많아보입니다.
------------------------------------------
Let`s Smart Move!!
http://kalstein.tistory.com/
이 질문에 대해서 정리를 해보았습니다...
제가 글제주가 없지만.... http://hanigamo.egloos.com/i4 에 정리를 해보았습니다.
가장 큰 이유는 검색 속도와 정확도 향상을 위해 합니다.
'대학생선교회' 에서 키워드를 추출하면
대학생, 선교회 가 정답일까요?
대학, 생선, 교회 가 정답일까요?
대, 학, 생, 선, 교, 회 가 정답일까요?
머리가 좋은 검색엔진은 어떤 방법으로 분석을 하여도 '대학생' 이라는 검색어에서 위의 문장을 찾아낼 수 있습니다.
하지만.. 대충봐도 두번째는 찾기 힘들어 보이구요.. 세번째는 연산해야할 키워드가 너무 많은것을 알 수 있습니다.
즉 불필요한 단어를 걸러내는것이지요.. 영어에서는 좀더 단순하게 stopping stemming 과정만을 거치면 되지만 한글은 언어의 복잡성으로 그렇지가 못하지요.
'아버지가방에들어가신다' 를 분석할 경우 뛰어쓰기 보정을 한 다음 키워드를 추출해야 좋은 검색 결과를 얻을 수 있을것입니다...
자연어 처리는 어떤 문장에서 위의 형태소 분석을 마친 다음 어떤 단어가 더 중요한가를 따져서 좀더 그에 가까운 문장이 포함된 문서를 찾아주는것이겠지요..
그리고 이런 사전 작업이 색인시에 잘 이루어 져야 좀더 정확한 검색 결과를 얻을 수 있습니다..
예를 들어 문서가 1000 개가 있습니다. 이 문서에서 키워드를 모두 추출하였습니다.
10번 문서에서 서로 다른 단어가 50개가 발견이 되었고 그중 '리눅스' 라는 단어가 100번 나왔고 '윈도우' 라는 단어는 50번 나왔습니다. 즉 10번째 문서만 놓고 보면 '리눅스'가 좀더 비중있게 다루어 졌다고 볼 수 있습니다..
20번 문서에서 서로 다른 단어가 50개가 발견이 되었고 그중 '리눅스' 라는 단어는 20번 나왔고 '윈도우' 라는 단어는 50번 나왔습니다. 즉 20번째 문서만 놓고 보면 '윈도우'가 좀더 비중있게 다루어 졌다고 볼 수 있습니다..
그리고
1000개 문서 전체에서 '리눅스'는 100000번 발견되었고 '윈도우'는 100번 발견되었다고 하면..
마지막으로 검색어가 '리눅스' and '윈도우' 가 되었다면..
수치상으로 보면 10번 문서가 20번 문서보다 정확도가 높아 보입니다. 하지만 통계적으로 보면 '리눅스'는 거의 모든 문서에서 고루 발견되기 때문에 범용적 단어라고 가정할 수가 있습니다. - 어디까지나 가정입니다.
이런 가정하에 20번 문서가 10번 문서보다 좀더 정확하다고 검색엔진은 인식을 합니다. (일반적인 역문서 빈도 계산법)
즉
정확한 단어가 추출되지 않는다면 통계기반의 문서 정확도 산출에 오류가 많이 발생을 하게되어 검색결과의 정확도가 그다지 높아지지 않는 결과가 나오지요..
-----------------------
멋진남자...
멋진남자...
형태소 분석 '은전한닢' 프로젝트와
형태소 분석 '은전한닢' 프로젝트와 MeCab(메카브)
http://www.iamday.net/apps/article/talk/2122/view.iamday
은전한닢 프로젝트
http://eunjeon.blogspot.kr/2013/02/blog-post.html
재벌 2세가 재벌이 될 확률과
금메달리스트 2세가 금메달을 딸 확률이 비슷해지도록
자유오픈소스 대안화폐를 씁시다.
아이디의 아이디어 무한도전
http://blog.aaidee.com
귀태닷컴
http://www.gwitae.com
댓글 달기