언어처리

동의어 처리...( 검색에서 )

고요한하늘... 2008. 3. 9. 16:30

검색엔진에는 수없이 많은 외래어 들어 들어온다.

외래어 표기법이 있긴 하지만 이를 모두 숙지하고 외래어를 입력하는 사람은 거의 없다. 어쩌면 이건 시스템이 해주는게 맞을지도 모르겠다.

 

외래어로 표기할때 자주 혼동하는 발음이 '에와 '애'일 것이다.

 

예를 하나 들면

'RedHat' 의 경우

레드햇

레드헷

래드햇

래드햇

 

위 4가지 중 어느 것으로 검색을 해야 하는지 선듯 알기 어렵다.

정확히는 RedHat까지 5가지에서...

 

그래서 사용자들은 이런 경우 어느 것을 사용해서 검색 결과가 동일하기를 바란다.

위 5가지 예에서 어느 한 가지로 검색하더라도 다른 4가지 경우로 표현된 것을 모두 찾기를 바란다.

 

대개의 경우 검색엔진에서는 동의어 처리를 하는 시점에 따라서 검색시와 색인시 두가지 처리 방법이 있다.

 

검색시에 동의어 처리를 하면

사용자가 어느것을 입력하더라도 나머지 4가지는 동의어 처리하여 or 검색을 하면 된다.

예를 들면 RedHat을 검색어로 입력했을때

'RedHat | 레드햇 | 레드헷 | 래드햇 | 래드헷'을 검색하는 것이다.

이 방법의 장점은 동의어 출현시 바로 적용이 가능하다는 것이다.

단점은 OR검색이 검색엔진에 많은 부하를 주는 작업이기 때문에 검색 시간이 느려질 수 있다.

 

 

색인시에 동의어처리를 하게 되면

이 방법에도 두가지가 있는데 한 가지는 대표어로 색인을 하는 것이다.

문서내에 위 5가지중 어떤 경우에도 항상 '레드햇'으로 색인을 하는 것이다.

물론 이런 경우에는 검색시에도 대표어로 검색을 해야한다.

이 방법은 색인이 늘어나지 않는 장점이 있지만 하일라이팅이 되지 않을 가능성이 있고,

하일라이팅을 위해서는 별도의 처리를 해주어야 한다.( 대개의 경우 하일라이팅은 입력어절과 형태소 분석후의 분석 결과를 가지고 이뤄진다 )

 

또 한가지는 색인시에 모든 동의어를 같이 처리하는 방법이다.

이 방법은 검색시에 별다른 검색어 처리 없이 입력되는 검색어를 입력하면 되지만

동의어가 늘어나면 색인 사이즈가 늘어날수 있다.

 

색인시에 동의어 처리를 하면 색인시간이 약간 늘어나는 대신 검색시에 동의어 처리를 하는것에 비해 검색시간에 거의 영향을 받지 않는다. 하지만 동의어가 새로 추가되더라도 검색결과에 반영하는데는 상당한 시간이 소요된다.( 전체 색인을 해야 하는 작업은 시간이 많이 소용되는 작업이다 )

 

위에서 예를 든 경우는 포지션을 고려하지 않는 방법론이다. 만약 포지션이 들어간다면 이야기는 더욱 복잡하게 전개될수 있다.

그리고 위와 같은 동의어를 수집하는것도 하나의 이슈가 될수 있다.

자동으로 이런 음소 차이(edit distance)를 구별해서 찾아낼 수도 있지만 '하두리동영상'과 '차두리동영상'이 서로 추천해  주는 걸 수작업으로 막아야 하는 경우가 있다.( 기계적으로 추출해서 발생하는 문제라고 할지라도 사용자들에겐 잘못된 추천에 불과하기 때문이다. )

 

이유야 어찌 되었던 사용자 편의를 위해서 발전하는 검색엔진의 입장에선 하루빨리 처리해야 할 중요한 기능중에 하나임은 분명하다.

'언어처리' 카테고리의 다른 글

쉽지 않은 한국어..  (0) 2008.04.03
etri(에트리) tagset(태그셋)  (0) 2008.03.13
POS(Part of speech) tagger  (0) 2008.03.08
세종(sejong) 태그셋(tagset)  (0) 2008.02.26
띄어쓰기의 어려움 bigram 2-1  (0) 2008.02.03