검색 사용성 개선을 위한 운영 기획
한국말에 익숙한 우리가 자연스럽게 처리하는 언어 사고 프로세스가 검색엔진에게는 당연하지 않습니다. 우리말을 모르는 외국인에게 알려주듯 차근차근 단계별로 우리말을 이해시킬 필요가 있어요.
1. 틀린 철자가 있다면 바른 단어로 고쳐주고 (오탈자 교정)
2. 합성어를 어떻게 끊어 읽어야 하는지, 어떤 단어에 핵심 의미가 담겨있는지 알려주고 (형태소 분석)
3. 같은 의미를 가진 단어들을 학습시켜야 합니다. (동의어 확장)
각 단계는 왜 필요하며, 검색 상황에서 어떻게 작동할까요? 이커머스에서 쇼핑을 위해 검색하는 상황을 예로 들어 단계별로 검색어가 처리되는 과정을 구체적으로 얘기해 볼까요.
인스타그램을 스크롤하다 보니 볼드한 프레임의 선글라스가 눈에 띕니다. 여름휴가를 맞아 저에게 어울리는 새로운 스타일의 선글라스가 사고 싶어 지더라고요. 검색해 볼까요?
검색어가 접수됐을 때 검색 엔진은 자체적으로 자동 교정 기능을 적용하거나, 오탈자 사전의 데이터를 확인해 검색어를 교정합니다.
자동 교정 기능이나 기본 오탈자 사전은
한영전환을 안 했거나 (tjsrmffktm > 선글라스)
키패드 입력 중에 옆 키를 잘못 눌렀거나 (선굴라스 > 선글라스)
자모를 빼먹는 (서그라스 > 선글라스)
등 한글 입력기 구조상 발생할 수 있는 여러 오탈자 경우의 수를 커버해 줍니다.
거기에 시스템에서 걸러주지 못하는 오탈자를 사전에 등록해 준다면 사용자가 두 번 검색하는 상황을 만들지 않을 수 있습니다.
한글은 형태의 변형이 매우 복잡한 언어입니다. 특히 복합어가 자주 쓰이고 띄어쓰기를 쓰지 않는 합성어도 많다 보니 정확한 검색을 위해 반드시 한글 형태소 사전이 필요합니다.
형태소 사전의 능력에 따라 검색품질이 크게 좌우된다고 말할 수 있을 정도로 중요한 기능 중 하나라고 할 수 있습니다.
한글을 잘 이해하기 위해서는 우선 단어를 잘 분절하는 것이 중요합니다. 의미를 가진 단어를 발라내서 검색 색인에 활용해야 하기 때문입니다.
어절과 품사에 따른 분절은 대부분 검색 엔진에서 지원하는 형태소 분석기에서 대부분 소화되므로 대략 어떤 식으로 분절이 이루어지는지 정도만 이해하시면 될 것 같아요.
형태소분석기가 너무 일을 열심히 한 나머지 선글라스를 선+글라스 로 쪼개버린다면요. 그래서
‘선’이 들어간 상품을 다 찾아서 선크림, 선캡, 선쿠션을 보여주고
‘글라스’가 들어간 상품을 다 찾아 와인 글라스, 양주 글라스 상품까지 다 보여주면...
안 되겠죠? 그래서 쪼개지 않을 때를 알려주는 것도 굉장히 중요합니다.
고유명사를 다른 예시로 가져와 볼게요. 스트릿 패션 플랫폼인 무신사에는 수많은 디자이너 브랜드가 입점해 있습니다.
예스아이씨, 브라운브레스 같이 고유명사인 브랜드명을 예스+아이+씨, 브라운+브레스 로 쪼개어 이해하게 되면 사용자는 브랜드를 검색하려는 의도였는데 다른 브랜드의 상품명이나 브랜드명에서 예스, 아이, 브라운 같은 단어를 뒤져서 생뚱맞은 상품을 찾아올 수 있습니다.
운영 관리 관점에서는 2) 분절하지 않고 이해하게 하는 일이 더 중요합니다. 형태소 분석기에 실려있지 않은 단어의 케이스를 형태소 어드민에 입력해 [선글라스] [예스아이씨] [브라운브레스] 같은 단어들을 하나의 단어로 입력해 정확하게 검색할 수 있도록 해야 합니다.
사용자들은 각자 익숙한 키워드로 검색어를 입력합니다. 하지만 상품에 등록되어 있는 데이터가 사용자들이 입력하는 키워드와 반드시 일치하지 않을 수 있습니다.
이럴 때 동의어 사전에 단어들을 묶어 입력해 두면 검색엔진이 이 단어들을 같은 의미로 인식해 검색 결과에 함께 노출해 줍니다.
서비스에서 판매하는 상품 종류나 자주 검색되는 키워드를 유의어 사전에 등록하고 관리하면 검색 결과가 더욱 풍성하게 노출될 수 있습니다.
번역어: 잠옷/파자마, 미백/화이트닝, 전자시계/디지털시계
줄임말: 파운데이션/파데, 디지털카메라/디카
혼동되기 쉬운 외래어 표기: 블러셔/블러쉬/블러시, 토드백/토트백
검색엔진은 자체 플러그인을 통해 어느 정도 오탈자 교정, 형태소 분석, 동의어 확장을 수행합니다. 하지만 각 플랫폼에서 판매하는 상품의 특성이나 유행, 언어의 변화에 따라 검색엔진이 이해하기 어려운 검색어가 지속적으로 발생할 수밖에 없습니다.
검색 담당자는 검색 엔진이 검색어를 잘 이해해 적합한 검색 결과를 보여줄 수 있도록 플랫폼 특성에 맞는 운영 기준을 세우고 사전 데이터를 관리해야 합니다.
시의적절한 관리를 위해 내부 검색 데이터나 외부 트렌드를 주기적으로 모니터링하고 분석해 주는 것이 좋습니다.
일반적으로 검색 결과를 하나도 보여주지 않는 검색어를 실패검색어라고 지칭합니다. 분명히 판매 중인 상품에 대한 검색어인데 실패검색어가 집계될 때가 있습니다.
실패한 검색어가 오탈자, 형태소, 동의어 중 어느 쪽에 해당하는지 확인하고 사전을 관리해 준다면 검색 결과가 눈에 띄게 개선될 수 있습니다.
전체 검색어 통계를 확인하다 보면 유독 이탈률이 높은 검색어가 있습니다. 검색 결과를 확인하다가 탐색을 멈추고 나가버린 것인데요.
다른 검색어에 비해서 이탈률이 높다는 것은
너무 많은 검색 결과를 보여주거나 (검색어와 일치하지 않는 상품이 너무 많이 검색됨)
너무 적은 검색 결과를 보여주거나 (검색되어야 할 상품이 검색되지 않음)
결과 상단에 정확하지 않은 상품이 보이는 (정렬이 부적절함)
등 검색 결과가 매력적이지 않았다는 것을 의미하므로 검색 빈도가 높으면서, 이탈률이 높은 검색어를 위주로 관리해 주는 것이 좋겠습니다.
포털, 이커머스 플랫폼에서 제공하는 검색 트렌드나 트렌드 리포트를 모니터링하는 것도 좋습니다.
사전 외에서 발생하는 검색어를 커버하는 것뿐 아니라 메가 트렌드를 확인하는 측면에서도 유익하니 여러 데이터랩, 트렌드 리포트, 뉴스레터를 구독하는 것을 추천드립니다.
Elasticsearch 엘라스틱서치 (검색서비스) 에 대해 알아보자.txt
https://www.slideshare.net/ssuser67b08e/elasticsearch-txt
6.7.2 노리 (nori) 한글 형태소 분석기
https://esbook.kimjmin.net/06-text-analysis/6.7-stemming/6.7.2-nori
바른 형태소 분석
검색 기획 시리즈 전체 보기
검색 UX #1 이커머스 검색 서비스의 3요소
검색 UX #2 검색엔진에게 우리말을 알려주자
검색 UX #3 이름표를 붙여 내 상품에!
검색 UX #4 커머스 상품검색 효과적으로 설계하기