KR20200002223A - 이벤트에 따른 아이템 정보 분포 제공 장치 및 방법 - Google Patents

이벤트에 따른 아이템 정보 분포 제공 장치 및 방법 Download PDF

Info

Publication number
KR20200002223A
KR20200002223A KR1020180075485A KR20180075485A KR20200002223A KR 20200002223 A KR20200002223 A KR 20200002223A KR 1020180075485 A KR1020180075485 A KR 1020180075485A KR 20180075485 A KR20180075485 A KR 20180075485A KR 20200002223 A KR20200002223 A KR 20200002223A
Authority
KR
South Korea
Prior art keywords
event
keyword
item
association
filter
Prior art date
Application number
KR1020180075485A
Other languages
English (en)
Inventor
도준웅
Original Assignee
주식회사 마이셀럽스
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 주식회사 마이셀럽스 filed Critical 주식회사 마이셀럽스
Priority to KR1020180075485A priority Critical patent/KR20200002223A/ko
Publication of KR20200002223A publication Critical patent/KR20200002223A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/02Marketing; Price estimation or determination; Fundraising
    • G06Q30/0241Advertisements
    • G06Q30/0251Targeted advertisements
    • G06Q30/0255Targeted advertisements based on user history
    • G06Q30/0256User search
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/02Marketing; Price estimation or determination; Fundraising
    • G06Q30/0241Advertisements
    • G06Q30/0251Targeted advertisements

Landscapes

  • Business, Economics & Management (AREA)
  • Engineering & Computer Science (AREA)
  • Accounting & Taxation (AREA)
  • Development Economics (AREA)
  • Strategic Management (AREA)
  • Finance (AREA)
  • Game Theory and Decision Science (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Economics (AREA)
  • Marketing (AREA)
  • Physics & Mathematics (AREA)
  • General Business, Economics & Management (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

본 발명은 이벤트에 따른 아이템 정보 분포 제공 장치 및 방법에 관한 것으로, 보다 상세하게는 사용자가 지역 및 이벤트에 따른 취향필터를 선택하면 취향필터에 해당되는 아이템 정보의 분포 및 가격대가 표시되는 장치 및 방법에 관한 것이다.

Description

이벤트에 따른 아이템 정보 분포 제공 장치 및 방법 {APPARATUS FOR PROVIDING DISTRIBUTION OF ITEM INFORMATION BASED ON EVENTS AND METHOD THEREOF}
본 발명은 이벤트에 따른 아이템 정보 분포 제공 장치 및 방법에 관한 것으로, 보다 상세하게는 사용자가 지역 및 이벤트에 따른 취향필터를 선택하면 취향필터에 해당되는 아이템 정보의 분포 및 가격대가 표시되는 장치 및 방법에 관한 것이다.
종래의 검색 방식에 따르면, 사용자는 검색 창에 검색 키워드를 입력하여 원하는 웹 문서 등을 검색하여 찾을 수 있다. 예를 들어 사용자는 영화 제목 "인터스텔라"를 검색창에 입력하여 영화 "인터스텔라"에 관한 정보를 검색할 수 있다. 다만 사용자가 자신이 찾으려는 영화 제목을 기억하지 못할 경우 다른 방식의 정보 제공이 요구된다. 사용자는 예를 들어 자신이 찾으려는 영화에 출연한 배우나 해당 영화의 감독, 제작자 등을 키워드로 입력하여 검색을 시도할 수 있다. 영화 정보 사이트나 영화 리뷰 사이트에는 영화 정보와 함께 출연진 정보도 제공되는 경우가 많으므로, 운이 나쁘지 않다면 사용자는 배우, 감독, 제작자 등을 키워드로 하여 원하는 영화를 찾을 수도 있을 것이다.
그런데 더 나아가, 이와 같이 정형화된 정보가 아닌 비정형적 언어, 예를 들어 감정 언어에 기반한 정보 제공이라면 종래의 검색 방식을 사용할 수 없다. 예를 들어 "재미있는 영화" 또는 "슬플 때 보는 영화" 등의 검색어에 대해서 종래 검색엔진들이 제공하는 응답은 누군가가 "재미있는 영화" 또는 "슬플 때 보는 영화"라는 키워드를 포함하여 작성해 둔 문서를 검색하는 것에 불과할 것이다. 하지만 비정형적 언어는 출연 배우, (정형화된) 영화 장르, 개봉 년도 등 정형화된 정보와는 다른 방식의 접근이 필요하다. 누군가가 "재미있는 영화" 또는 "슬플 때 보는 영화"라는 키워드를 포함하여 작성해 두지 않았더라도, 실제로 많은 사람들이 "재미있다"거나 "슬플 때 보면 좋다"고 느낄 수 있는 영화들이 있을 수 있다. 더 나아가 영화 외의 다른 분야에 대해서도, 정형화되지 않은 언어를 이용한 정보 제공 요청에 대해서 다른 접근이 필요할 수 있다.
가족외식이나 손님접대등의 이벤트나 행사에서 각각의 이벤트나 행사에 알맞은 음식점이나 장소를 찾기 위해 각종 포털사이트나 카페, SNS, 블로그 등을 검색하는 것은 많은 노력과 시간을 필요로 하며, 예산에 맞는 가격대까지 확인하는 것은 더더욱 어렵고 광고 또한 포함되어 있는 경우가 있으므로 대부분의 경우 원했던 장소나 음식점이 아닌 경우가 많다.
따라서 이벤트의 성격이나 행사의 분위기, 가격대가 고려되어 음식점이나 장소가 검색될 필요가 있다.
본 발명은 상기와 같은 문제점을 해결하기 위하여 고안된 것으로, 사용자가 지역 및 이벤트에 따른 취향필터를 선택하면 취향필터에 해당되는 아이템 정보의 분포 및 가격대가 표시되는 장치 및 방법을 제공하기 위한 것이다.
본 명세서의 일 실시 예에 따른 이벤트에 따른 아이템 추천 단말 장치는, 지역을 입력받는 지역선택부; 아이템의 가격대와 가격대에 따른 빈도를 표시하고, 가격대를 설정하는 가격 설정바를 포함하는 가격 선택부; 이벤트를 표시하고 선택받는 이벤트 표시부; 상기 선택된 이벤트와 이벤트-취향필터 연관도에 따라 연관된 취향필터를 표시하고 상기 취향필터를 선택받는 취향필터 선택부;를 포함하는 표시부 및, 상기 표시부를 제어하고, 상기 입력받은 지역 및 취향필터와 상기 설정된 가격대를 정보제공서버로 송신하는 제어부;를 포함한다.
상기 표시부는 상기 선택된 취향필터를 표시하는 취향필터 표시부; 및 아이템-취향필터 연관도에 따라 추천되는 아이템을 표시하는 추천결과 표시부;를 더 포함한다.
상기 아이템은 음식점이다.
상기 아이템은 상기 지역, 상기 가격대 및 상기 아이템-취향 필터 연관도를 이용해서 추천된다.
상기 추천결과는 상기 지역 및 상기 가격대에 해당하는 아이템 중에서 상기 아이템-취향 필터의 연관도가 높은 순서대로 정렬되어 표시된다.
상기 취향 필터 중 일부가 삭제되면 남은 취향 필터에 따라 추천되는 아이템을 표시한다.
상기 이벤트-취향 필터 연관도는 관리자에 의해 입력된다.
상기 이벤트-취향필터 연관도는 상기 이벤트와 취향필터의 거리 또는 취향필터의 빈도 기준으로 산정된다.
상기 이벤트-취향필터 연관도는 상기 취향필터에 대한 하위 키워드들이 추출되고 상기 하위 키워드들과 상기 이벤트와의 연관도를 이용하여 산정된다.
상기 아이템-취향필터 연관도는 상기 아이템과 취향필터의 거리 또는 취향필터의 빈도 기준으로 산정된다.
상기 아이템-취향필터 연관도는 상기 취향필터에 대한 하위 키워드들이 추출되고 상기 하위 키워드들과 상기 아이템과의 연관도를 이용하여 산정된다.
상기 가격 선택부는 미리 정해진 개수 이상의 메뉴를 포함하도록 가격 설정바가 조정되고 조정된 가격이 표시된다.
상기 가격 선택부는 상기 선택된 이벤트와 상기 선택된 취향필터에 따라 가격 설정바가 조정되고 조정된 가격이 표시된다.
본 명세서의 일 실시 예에 따른 이벤트에 따른 아이템 추천 서버는, 이벤트-취향필터 연관도를 계산하는 단계; 사용자가 선택한 이벤트를 수신하는 단계; 상기 이벤트와 상기 이벤트-취향필터 연관도가 높은 취향필터를 추출하여 전송하는 단계;를 수행하도록 구성된다.
아이템-취향필터 연관도를 계산하는 단계;를 더 수행하도록 구성된다.
상기 아이템-취향필터 연관도가 높은 미리 정해진 개수의 아이템 정보를 송신하는 단계;를 더 수행하도록 구성된다.
상기 아이템에 대한 정보는 가격 정보와 빈도 정보이다.
상기 아이템은 음식점이다.
지역 및 상기 취향필터 중 선택된 취향 필터 및 가격대를 수신하고,
상기 지역 및 상기 가격대에 맞는 아이템 중에서 상기 아이템과 취향필터와의 아이템-취향필터 연관도가 높은 순으로 아이템을 추천한다.
상기 이벤트-취향필터 연관도는 관리자에 의해 입력된다.
상기 이벤트-취향필터 연관도는 상기 이벤트와 취향필터의 거리 또는 취향필터의 빈도 기준으로 산정된다.
상기 이벤트-취향필터 연관도는 상기 취향필터에 대한 하위 키워드들이 추출되고 상기 하위 키워드들과 상기 이벤트와의 연관도를 이용하여 산정된다.
상기 아이템-취향필터 연관도는 상기 아이템과 취향필터의 거리 또는 취향필터의 빈도 기준으로 산정된다.
상기 아이템-취향필터 연관도는 상기 취향필터에 대한 하위 키워드들이 추출되고 상기 하위 키워드들과 상기 아이템과의 연관도를 이용하여 산정된다.
본 명세서의 일 실시 예에 따른 이벤트에 따른 아이템 정보 분포 제공 장치 및 방법은, 사용자가 지역 및 이벤트에 따른 취향필터를 선택하여 취향필터에 해당되는 아이템 정보의 분포 및 가격대를 제공할 수 있다.
본 명세서의 일 실시 예에 따른 이벤트에 따른 아이템 정보 분포 제공 장치 및 방법은, 사용자가 선택한 지역 및 가격대와 이벤트에 따른 취향필터를 반영한 아이템을 추천할 수 있다.
도 1은 본 명세서의 일 실시 예에 따르는 속성 언어를 이용한 정보 제공 시스템의 망 구성도이다.
도 2는 본 명세서의 일 실시 예에 따르는 단말(200)의 블록구성도이다.
도 3은 본 명세서의 일 실시 예에 따르는 정보 제공 장치(300)의 블록구성도이다.
도 4는 본 명세서의 일 실시 예에 따르는 정보 제공 인터페이스를 통한 정보 제공 과정의 순서도이다.
도 5는 본 명세서의 일 실시 예에 따르는 단계 910의 상세순서도이다.
도 6은 본 명세서의 일 실시 예에 따르는 단계 510의 상세 순서도이다.
도 7은 본 명세서의 일 실시 예에 따르는 단계 530의 상세 순서도이다.
도 8은 본 명세서의 다른 실시 예에 따르는 정보 제공 과정의 순서도이다.
도 9는 본 명세서의 일 실시 예에 따르는 정보 제공 과정의 순서도이다.
도 10은 본 명세서의 일 실시 예에 따르는 저장된 객체-키워드 연관도의 예시이다.
도 11은 본 명세서의 일 실시 예에 따르는 기본 예약어-키워드 연관도의 예시이다.
도 12는 본 명세서의 일 실시 예에 따르는 단계 940의 상세 순서도이다.
도 13은 본 명세서의 다른 실시 예에 따르는 정보 제공 과정의 순서도이다.
도 14는 본 명세서의 또 다른 실시 예에 따르는 정보 제공 과정의 순서도이다.
도 15는 본 명세서의 제1 실시 예에 따르는 단계 1340의 상세 순서도이다.
도 16은 본 명세서의 다른 실시 예에 따르는 단계 1340의 상세 순서도이다.
도 17은 본 명세서의 또 다른 실시 예에 따르는 단계 1340의 상세 순서도이다.
도 18은 본 명세서의 변형 예에 따르는 단계 1320의 상세 순서도이다.
도 19는 단계 1840에서 제공되는 인터페이스 정보에 따라 생성된 인터페이스(1900)의 예시이다.
도 20은 본 명세서의 일 실시 예에 따르는 용어 계층을 나타낸 도면이다.
도 21은 본 발명의 일 실시예에 따른 가상 입력 인터페이스 프로그램 설치 과정의 순서도이다.
도 22 내지 도 23은 본 명세서의 일 실시예에 따른 이벤트에 따른 음식점 가격 분포 제공 방법을 수행하는 패키지의 인터페이스 페이지의 일례를 나타내는 도면이다.
도 24는 도 22의 인터페이스 페이지의 제공 방법을 나타내는 순서도이다.
이하, 본 명세서의 실시 예를 첨부된 도면을 참조하여 상세하게 설명한다.
실시 예를 설명함에 있어서 본 명세서가 속하는 기술 분야에 익히 알려져 있고 본 명세서와 직접적으로 관련이 없는 기술 내용에 대해서는 설명을 생략한다. 이는 불필요한 설명을 생략함으로써 본 명세서의 요지를 흐리지 않고 더욱 명확히 전달하기 위함이다.
마찬가지 이유로 첨부 도면에 있어서 일부 구성요소는 과장되거나 생략되거나 개략적으로 도시되었다. 또한, 각 구성요소의 크기는 실제 크기를 전적으로 반영하는 것이 아니다. 각 도면에서 동일한 또는 대응하는 구성요소에는 동일한 참조 번호를 부여하였다.
이하, 도면들을 참고하여 본 명세서의 실시 예들에 대해 설명하도록 한다.
본 명세서의 일부 실시 예에 따르면 예약어는 다른 키워드들과의 연관도 정보를 통해 표현, 정의되거나 그 특성, 활용방식, 성질 등이 표현, 정의될 수 있는 문자열을 의미할 수 있다. 하지만 다른 방식, 예를 들어 관리자의 수동 입력에 따라 정의/표현되는 예약어가 본 발명에 적용되는 것도 가능하다. 연관도 정보의 상세한 구성은 후술한다.
도 1은 본 명세서의 일 실시 예에 따르는 속성 언어를 이용한 정보 제공 시스템의 망 구성도이다.
도 1을 참조하면, 본 명세서의 일 실시 예에 따르는 정보 제공 시스템은 단말(200), 정보 제공 장치(300) 및 통신망(150)을 포함할 수 있다.
단말(200)은 예를 들어 스마트폰, PDA, 태블릿 PC, 노트북 컴퓨터, 랩탑 컴퓨터, 개인용 컴퓨터 기타 통신을 수행하고 사용자의 입력을 수신하고 화면을 출력할 수 있는 전자적 기기 또는 이와 유사한 기기로써 구현될 수 있다.
정보 제공 장치(300)는 예를 들어 워크스테이션, 서버, 일반용 컴퓨터, 기타 통신을 수행할 수 있는 전자적 기기 또는 이와 유사한 기기로써 구현될 수 있다.
단말(200)과 정보 제공 장치(300)는 통신망(150)을 통해 연결되며 통신망(150)을 통해 서로 통신한다.
통신망(150)은 예를 들어 LTE(Long Term Evolution), LTE-A(LTE-Advanced), WI-FI, LAN(Local Area Network), WAN(Wide Area Network), CDMA(Code Division Multiple Access), TDMA(Time Division Multiple Access), WiBro(Wireless Broadband), GSM(Global System for Mobile Communications) 기타 과거, 현재에 개발되었거나 향후 사용 가능하게 되는 통신 방식 중 적어도 일부를 이용하여 구현될 수 있다. 이하에서는 편의를 위해 통신망(150)을 언급하지 않고 단말(200)과 정보 제공 장치(300)가 직접 통신하는 것처럼 설명한다.
단말(200)과 정보 제공 장치(300)의 구체적인 동작 및 구성에 대해서는 도 2 내지 도 8을 참조하여 후술한다.
도 2는 본 명세서의 일 실시 예에 따르는 단말(200)의 블록구성도이다.
도 2를 참조하면 본 명세서의 일 실시 예에 따르는 단말(200)은 입력부(210), 표시부(220), 통신부(230), 저장부(240) 및 제어부(250)를 포함할 수 있다.
입력부(210)는 사용자의 입력 동작을 입력 신호로 변환하여 제어부(250)에게 송신한다. 입력부(210)는 예를 들어 키보드, 마우스, 터치스크린 상의 터치센서, 터치패드, 키패드, 음성 입력, 기타 현재, 과거에 가능하거나 미래에 가능해질 입력 처리 장치들로써 구현될 수 있다. 입력부(210)는 예를 들어 사용자의 정보 제공 요청 입력을 수신하여 제어부(250)에게 전달할 수 있다.
표시부(220)는 제어부(250)의 제어에 따라 화면을 출력한다. 표시부(220)는 예를 들어 LCD(액정표시장치), LED(발광 다이오드), OLED(유기 발광 다이오드), 프로젝터, 기타 현재, 과거에 가능하거나 미래에 가능해질 표시 장치들로써 구현될 수 있다. 표시부(220)는 예를 들어 정보 제공을 위한 인터페이스 페이지나 정보 제공 결과 페이지를 표시할 수 있다. 실시 예에 따라서는 화면 출력 대신 음성 출력이나 진동 등 기타 사용자에게 정보를 전달할 수 있는 다른 방식을 사용하는 구성부가 표시부(220) 대신 사용될 수도 있다.
통신부(230)는 정보 제공 장치(300) 및/또는 기타 외부 장치와 데이터를 주고받는다. 통신부(230)는 정보 제공 장치(300)로부터 수신한 데이터를 제어부(250)에게 전달한다. 또한 통신부(230)는 제어부(250)의 제어에 따라 데이터를 정보 제공 장치(300)에게 전달한다. 통신부(230)가 사용하는 통신 기술은 통신망(150)의 유형이나 기타 사정에 따라 달라질 수 있다.
저장부(240)는 제어부(250)의 제어에 따라 데이터를 저장하고 요청된 데이터를 제어부(250)에게 전달한다.
제어부(250)는 단말(200)의 전반적인 동작과 각 구성부를 제어한다. 제어부(250)는 특히 후술하는 바와 같이 입력부(210)로부터 입력된 정보에 따라 정보 제공 요청, 기타 데이터를 정보 제공 장치(300)에게 송신하고, 정보 제공 장치(300)로부터 수신한 페이지 정보에 따라 결과 페이지 및/또는 인터페이스 페이지를 표시부(220)를 통해 표시한다.
제어부(250)가 수행하는 동작은 물리적으로 분리돼 있는 여러 연산 장치에 의하여 분산 처리될 수 있다. 제어부(250)가 수행하는 동작 중 일부는 제1 서버가 수행하고 다른 동작은 제2 서버가 수행하는 방식도 가능하다. 이 경우 제어부(250)는 물리적으로 분리돼 있는 연산 장치의 총합으로써 구현될 수 있다.
저장부(240)는 물리적으로 분리돼 있는 저장장치의 총합으로 구현될 수도 있다.
제어부(250)나 저장부(240)가 물리적으로 분리돼 있는 여러 장치의 총합으로 구현되는 경우 여러 장치들 사이의 통신이 필요할 수 있다. 여기서는 설명의 단순화를 위하여 저장부(240)나 제어부(250)가 하나의 객체로 구현된 경우를 가정하여 설명할 것이다.
단말(200)이 데이터를 송수신하는 경우 관점에 따라 제어부(250)의 제어에 따라 통신부(230)가 데이터를 송수신한다고 표현할 수도 있고, 제어부(250)가 통신부(230)를 제어하여 데이터를 송수신한다고 표현할 수도 있다.
단말(200)의 각 구성부의 구체적인 동작에 대해서는 도 4 내지 도 8을 참조하여 후술한다.
도 3은 본 명세서의 일 실시 예에 따르는 정보 제공 장치(300)의 블록구성도이다.
도 3을 참조하면 본 명세서의 일 실시 예에 따르는 정보 제공 장치(300)는 통신부(310), 제어부(320) 및 저장부(330)를 포함할 수 있다.
통신부(310)는 단말(200) 및/또는 기타 외부 장치와 데이터를 주고받는다. 통신부(310)는 단말(200)로부터 수신한 데이터를 제어부(320)에게 전달한다. 또한 통신부(310)는 제어부(320)의 제어에 따라 데이터를 단말(200)에게 전달한다. 통신부(310)가 사용하는 통신 기술은 통신망(150)의 유형이나 기타 사정에 따라 달라질 수 있다.
저장부(330)는 제어부(320)의 제어에 따라 데이터를 저장하고 제어부(320)로부터 요청된 데이터를 제어부(320)에게 전달한다.
제어부(320)는 정보 제공 장치(300)의 전반적인 동작과 각 구성부를 제어한다. 제어부(320)는 특히 후술하는 바와 같이 인터페이스 페이지 요청, 정보 제공 결과 페이지 요청, 기타 데이터를 통신부(310)를 통해 수신하면 저장부(330)로부터 필요한 데이터를 불러오고(load) 페이지 정보를 생성하여 페이지 정보를 통신부(310)를 통해 단말기(200)에게 전달한다.
정보 제공 장치(300)가 데이터를 송수신하는 경우 관점에 따라 제어부(320)의 제어에 따라 통신부(310)가 데이터를 송수신한다고 표현할 수도 있고, 제어부(320)가 통신부(310)를 제어하여 데이터를 송수신한다고 표현할 수도 있다.
한편 저장부(330)는 단말에 설치되어 이벤트에 따른 아이템 정보 분포 제공 방법을 수행하기 위한 프로그램 코드, 및/또는 그 프로그램을 설치하기 위한 설치 패키지(설치 프로그램 코드)를 저장한다. 이하 이벤트에 따른 아이템 정보 분포 제공 방법을 수행하기 위한 프로그램 코드, 및/또는 그 프로그램을 설치하기 위한 설치 패키지(설치 프로그램 코드)를 가상 입력 인터페이스 프로그램이라 칭한다.
정보 제공 장치(300)을 개발하는 개발자 또는 관리자는 가상 입력 인터페이스 프로그램을 저장부(330)에 저장할 수 있다. 정보 제공 장치(300)가 통신부(310)를 통해 가상 입력 인터페이스 프로그램을 요청하는 요청 메시지를 수신하면 제어부(320)는 통신부(310)를 통해 가상 입력 인터페이스 프로그램을 단말(200)에 전달한다.
정보 제공 장치(300)의 각 구성부의 구체적인 동작에 대해서는 도 4 내지 도 8을 참조하여 후술한다.
다른 실시 예에 따르면 시각적으로 정보를 제공하기 위한 페이지 대신 음성이나 다른 방식으로 정보를 제공하기 위한 데이터가 송수신될 수 있다.
도 4는 본 명세서의 일 실시 예에 따르는 정보 제공 인터페이스를 통한 정보 제공 과정의 순서도이다.
단계 410에서 정보 제공 장치(300)의 제어부(320)는 인터페이스 페이지 정보를 생성한다. 인터페이스 페이지 정보는 인터페이스 페이지를 생성하기 위해 필요한 정보이다. 인터페이스 페이지는 사용자의 입력을 유도하고 사용자의 입력을 수신하여 정보 제공 장치(300)에게 전달하기 위한 페이지이다. 예를 들어 인터페이스 페이지 정보는 HTML 문서 또는 기타 마크업 언어 문서 형태가 될 수 있다. 다른 실시 예에서, 단말(200)이 인터페이스 페이지의 서식 정보를 미리 가지고 있으며, 컨텐츠에 해당하는 사항만이 정보 제공 장치(300)로부터 단말(200)에 전달될 수도 있다. 이하에서는 편의를 위해 인터페이스 페이지 정보 또는 기타의 페이지 정보는 HTML 문서 형식으로 전달된다고 가정하고 설명한다. 하지만 본 명세서의 권리 범위가 여기에 한정되는 것은 아니다.
단계 420에서 정보 제공 장치(300)의 통신부(310)는 인터페이스 페이지 정보를 단말(200)에게 전달한다.
단계 430에서 단말(200)의 제어부(250)는 인터페이스 페이지 정보를 이용하여 인터페이스 페이지를 구성한다. 예를 들어 제어부(250)은 웹 브라우저를 구동하여 HTML 문서를 해석하여 웹 페이지의 형태로 인터페이스 페이지를 구성할 수 있다. 웹 브라우저 대신 별도의 애플리케이션이 사용될 수도 있다.
단계 440에서 단말(200)의 표시부(220)는 사용자(400)에게 인터페이스 페이지를 표시한다. 인터페이스 페이지는 예를 들어 사용자(400)가 정보 제공을 요청하고, 정보 제공을 위한 키워드를 입력 및/또는 선택하고 기타 정보 제공을 위한 설정을 할 수 있는 인터페이스를 포함할 수 있다.
단계 450에서 단말(200)의 입력부(210)는 인터페이스 페이지를 통해 입력된 사용자(400)의 선택 입력을 수신하여 제어부(250)에 전달한다.
단계 460에서 단말(200)의 통신부(230)는 제어부(250)의 제어에 따라 사용자의 선택 입력을 식별할 수 있는 입력 정보를 정보 제공 장치(300)에게 전달한다.
단계 470에서 정보 제공 장치(300)의 제어부(320)는 사용자의 입력(예를 들어, 키워드 및/또는 기타 정보 제공 설정)을 이용하여 결과 페이지 정보를 생성한다. 결과 페이지 정보를 생성하는 위한 준비과정과 결과 페이지 정보를 생성하는 과정에 대해서는 도 5 내지 도 8을 참조하여 후술한다. 결과 페이지 정보는 예를 들어 HTML 문서 형식 및/또는 이미지 형식으로 구성될 수 있다.
단계 480에서 정보 제공 장치(300)의 통신부(310)는 결과 페이지 정보를 단말(200)에게 전달한다.
단계 490에서 단말(200)의 제어부(250)는 통신부(230)가 수신한 결과 페이지 정보를 이용하여 결과 페이지를 구성한다. 예를 들어 제어부(250)는 HTML형식의 결과 페이지 정보를 해석하여 결과 페이지를 구성할 수 있다.
단계 495에서 단말(200)의 표시부(220)는 결과 페이지를 사용자(400)에게 제공한다.
도 4의 실시 예에서 사용자에게 시각적 형태의 페이지를 제공하는 것을 가정하였으나, 음성을 통해 인터페이스나 결과 정보를 제공하는 것도 가능하다. 이 경우 표시부(220) 대신 음성 출력부가 이용될 수 있을 것이다. 시각적/청각적 방식 대신 현재 가능하거나 미래에 가능해질 다른 방식의 인터페이스 방식이 사용자(400)와의 관계에서 사용될 수도 있다. 이 경우 정보 제공 장치(300)는 인터페이스 방식에 맞도록 페이지 정보 대신 다른 방식으로 변환된 정보를 단말(200)에게 제공할 수 있다.
도 5 이후의 실시 예에서 사용자(400)는 자신이 관심을 가지는 특정 관심 분야의 객체에 관한 정보를 제공받고자 한다. 하지만 본 명세서의 권리 범위가 이에 한정되는 것은 아니다.
관심 분야는 예를 들어 객체의 유형이 될 수 있다. 예를 들어 관심 분야가 '유명인' 이라면 이 관심 분야에 해당하는 객체는 '유시민', '유재석', '테일러 스위프트' 등을 포함할 수 있다. 예를 들어 관심 분야가 '영화'라면 이 관심 분야에 해당하는 객체는 '덩케르크', '스파이더맨: 홈커밍', '슈퍼배드 3' 등을 포함할 수 있다. 예를 들어 관심 분야가 '방송 프로그램' 이라면 이 관심 분야에 해당하는 객체는 '무한도전', '아메리칸 아이돌', '왕좌의 게임' 등을 포함할 수 있다.
이하의 실시 예들에서 키워드들 간의 관계(연관도/가중치 등등)를 평가하기 위해 문서가 수집된다. 수집된 문서는 모두 동등한 가치를 가지는 것으로 평가될 수도 있고, 최신의 문서가 더 높은 가치를 가지는 것으로 평가될 수도 있다. 즉, 평가 시점 기준 문서의 나이와 그 문서 내에 등장하는 키워드들 간의 연관도는 음의 상관관계를 가질 수 있다.
후술하는 도 5 이후의 과정에서도 문서의 최신성에 따라 가치가 달리 평가될 수 있다. 예를 들어 평가 시점 기준 1일 지난 문서에 두 키워드가 함께 등장한 경우가, 평가 시점 기준 10일 지난 문서에 두 키워드가 함께 등장한 경우에 비해 10배 더 높은 연관도로 평가될 수 있다. 문서의 나이는 예를 들어 초단위/분단위/시간 단위로 평가되거나 일 단위/월 단위/연 단위 등으로 평가될 수도 있다. 제어부(320)는 문서의 나이가 반영되기 전 평가된 해당 문서에 의하나 부분 연관도 값을 문서의 나이로 나누어 문서 나이가 반영된 부분 연관도를 추출하고, 이러한 부분 연관도를 누적하여 두 키워드 사이의 연관도를 추출할 수 있다.
문서의 나이를 확인하기 위한 문서의 생성 시점은 예를 들어 문서 내에 포함된 게시 시점 및/또는 메타데이터를 이용하여 파악하거나, 주기적인 크롤링을 통해, 이전의 크롤링에 발견되지 않은 문서가 새로 발견되는 경우 새로운 크롤링 시점에 신규 문서가 추가된 것으로 파악할 수도 있다.
도 9는 본 명세서의 일 실시 예에 따르는 정보 제공 과정의 순서도이다.
단계 910에서 제어부(320)는 객체 항목과 대표 속성 키워드 쌍에 대응하는 객체-키워드 연관도를 저장부(330)에 저장한다.
도 10은 본 명세서의 일 실시 예에 따르는 저장된 객체-키워드 연관도의 예시이다.
도 10의 실시 예에서 객체 항목은 모두 m개(i1 내지 im)가 있고 대표 속성 키워드는 모두 n개(k1 내지 kn)가 있다.
예를 들어 객체 항목 i5와 대표 속성 키워드 k3의 객체-키워드 연관도는 w5,3이 된다.
단계 910의 과정은 예를 들어 도 5 내지 도 8의 실시 예들 중 일부에 따라 수행되거나 이와 유사한 과정, 또는 이에 상응하는 과정으로 수행될 수 있다. 다른 실시 예에 따르면 단계 910의 과정은 관리자의 입력으로 수행되거나 외부 시스템에서 결정된 객체-키워드 연관도를 네트워크 또는 저장매체를 통해 전달받아 수행될 수 있다.
도 5는 본 명세서의 일 실시 예에 따르는 단계 910의 상세순서도이다.
도 5를 참조하면, 단계 510에서 제어부(320)는 제1 집합 문서들로부터 대표 속성 키워드 후보집합을 추출한다. 제어부(320)는 예를 들어 제1 집합 문서 중 관심 분야에 해당하는 문서에 자주 등장하는 키워드들을 대표 속성 키워드 후보집합으로 수집할 수 있다.
도 6은 본 명세서의 일 실시 예에 따르는 단계 510의 상세 순서도이다.
제어부(320)는 특정 분야에 속하는 객체 항목을 나타내는 객체 키워드와 같은 문서에 등장하는 키워드들 및 특정 분야를 나타내는 분야 키워드와 같은 문서에 등장하는 키워드들을 제1 속성 키워드 후보집합 및 제2 속성 키워드 후보집합으로 설정할 수 있다.
예를 들어 정보 제공 서비스를 제공하려는 관심 분야가 유명인이라면, 분야 키워드는 '유명인', '연예인', '영화배우', '스타', '셀럽', 'celeb' 등을 포함할 수 있다. 분야 키워드는 관리자에 의하여 설정되거나 제어부(320)에 의하여 추천, 설정될 수 있다. 제어부(320)는 일부 분야 키워드들을 획득한 뒤 이 분야 키워드들과의 연관도가 미리 설정된 값 이상으로 분석된 유사 키워드를 추가적 분야 키워드로 추천/설정할 수 있다.
정보 제공 서비스를 제공하려는 관심 분야가 유명인이라면, 객체 키워드는 해당 관심 분야에 속하는 개별 인물이 될 수 있다. 예를 들어 "유재석", "테일러 스위프트", "스테판 커리" 등이 관심 분야 유명인에 해당하는 객체 키워드가 될 수 있다.
분야 키워드와 객체 키워드의 관계를 설명하자면, 예를 들어 분야 키워드가 객체 키워드의 속성 또는 유형에 해당할 수 있다. 분야 키워드가 집합을 나타낸다면 객체 키워드는 그 집합에 속하는 원소들을 나타내는 것이 될 수 있다.
객체 키워드는 관리자에 의해 설정되거나, 분야 키워드와 비슷한 방식으로 선정될 수 있다. 또 다른 실시 예에 따르면 제어부(320)는 수집된 문서들의 문맥을 분석하여 상기 분야 키워드가 나타내는 집합에 속하는 원소로 판단되는 키워드들을 객체 키워드로 선정할 수 있다.
인기 객체 키워드와 비인기 객체 키워드는 해당 객체 키워드의 검색/수집량에 따라 구분될 수 있다. 제어부(320)는 각 객체 키워드가 포함된 문서를 검색/수집하고 수집량이 특정 문턱값 이상인 객체 키워드를 인기 객체 키워드로 설정하고 나머지 객체 키워드를 비인기 객체 키워드로 설정할 수 있다.
인기 분야 키워드와 비인기 분야 키워드는 해당 분야 키워드의 검색/수집량에 따라 구분될 수 있다. 제어부(320)는 각 분야 키워드가 포함된 문서를 검색/수집하고 수집량이 특정 문턱값 이상인 분야 키워드를 인기 분야 키워드로 설정하고 나머지 분야 키워드를 비인기 분야 키워드로 설정할 수 있다. 다만 인기 객체 키워드와 비인기 객체 키워드를 구분하는 문턱값과 인기 분야 키워드-비인기 분야 키워드를 구분하는 문턱값은 서로 다른 값이 될 수 있다. 이하에서 편의를 위해 인기 객체 키워드와 인기 분야 키워드를 통틀어 인기 분야객체 키워드라고 칭한다. 또한 편의를 위해 비인기 객체 키워드와 비인기 분야 키워드를 통틀어 비인기 분야객체 키워드라고 칭한다.
변형 실시 예에서는 인기 분야객체 키워드 대신 인기 분야 키워드 또는 인기 객체 키워드만이 사용될 수도 있다. 변형 실시 예에서는 비인기 분야객체 키워드 대신 비인기 분야 키워드 또는 비인기 객체 키워드만이 사용될 수도 있다.
단계 610에서 제어부(320)는 인기 분야객체 키워드와 같은 문서에 함께 등장하는 키워드들을 제1 속성 키워드 후보집합으로 설정한다.
제어부(320)는 인기 분야객체 키워드가 포함된 문서들을 검색/수집하고, 수집된 문서에 포함된 키워드들을 제1 속성 키워드 후보집합으로 설정할 수 있다. 다른 실시 예에 따르면 제어부(320)는 수집된 문서에 포함된 키워드들 중 분야 키워드 및 객체 키워드를 제1 속성 키워드 후보집합에서 제외할 수 있다. 아울러 제어부(320)는 미리 설정된 의미 없는 키워드, 예를 들어 조사/관사 등을 제1 속성 키워드 후보집합에서 제외할 수 있다. 또 다른 실시 예에 따르면 제어부(320)는 수집된 문서에 포함된 키워드들 중 미리 설정된 사전(dictionary)에 등록된 키워드를 제1 속성 키워드 후보집합에 포함시킬 수 있다.
또 다른 실시 예에 따르면, 제어부(320)는 인기 분야객체 키워드가 포함된 문서를 검색/수집하고, 수집된 문서에서 인기 분야객체 키워드 또는 그 키워드가 포함된 문장으로부터 미리 설정된 거리 이내에 배치된 키워드들을 제1 속성 키워드 후보집합에 포함시킬 수도 있다. 또 다른 실시 예에 따르면, 제어부(320)는 인기 분야객체 키워드가 포함된 문서를 검색/수집하고, 문맥을 분석하여 인기 분야객체 키워드를 수식/설명하는 용도로 사용된 키워드들을 제1 속성 키워드 후보집합에 포함시킬 수도 있다.
키워드 사이의 거리 또는 키워드와 문장 사이의 거리는 예를 들어 두 키워드 또는 키워드와 문장 사이에 위치하는 문장의 개수, 두 키워드 또는 키워드와 문장 사이에 위치하는 단어의 개수, 두 키워드 또는 키워드와 문장 사이에 위치하는 어절의 개수, 두 키워드 또는 키워드와 문장 사이에 문자의 개수 중 어느 하나 이상을 기준으로 판단될 수 있다.
제어부(320)는 키워드 분석을 위해 형태소 분석을 먼저 수행할 수 있다.
단계 620에서 제어부(320)는 비인기 분야객체 키워드와 같은 문서에 함께 등장하는 키워드들을 제2 속성 키워드 후보집합으로 설정한다.
제어부(320)는 비인기 분야객체 키워드가 포함된 문서를 검색/수집하고, 수집된 문서에 포함된 키워드들을 제2 속성 키워드 후보집합으로 설정할 수 있다. 다른 실시 예에 따르면 제어부(320)는 수집된 문서에 포함된 키워드들 중 분야 키워드 및 객체 키워드를 제2 속성 키워드 후보집합에서 제외할 수 있다. 아울러 제어부(320)는 미리 설정된 의미 없는 키워드, 예를 들어 조사/관사 등을 제2 속성 키워드 후보집합에서 제외할 수 있다. 또 다른 실시 예에 따르면 제어부(320)는 수집된 문서에 포함된 키워드들 중 미리 설정된 사전(dictionary)에 등록된 키워드를 제2 속성 키워드 후보집합에 포함시킬 수 있다.
또 다른 실시 예에 따르면, 제어부(320)는 비인기 분야객체 키워드가 포함된 문서를 검색/수집하고, 수집된 문서에서 비인기 분야객체 키워드 또는 그 키워드가 포함된 문장으로부터 미리 설정된 거리 이내에 배치된 키워드들을 제2 속성 키워드 후보집합에 포함시킬 수도 있다. 또 다른 실시 예에 따르면, 제어부(320)는 비인기 분야객체 키워드가 포함된 문서를 검색/수집하고, 문맥을 분석하여 비인기 분야객체 키워드를 수식/설명하는 용도로 사용된 키워드들을 제2 속성 키워드 후보집합에 포함시킬 수도 있다.
키워드 사이의 거리 또는 키워드와 문장 사이의 거리는 예를 들어 두 키워드 또는 키워드와 문장 사이에 위치하는 문장의 개수, 두 키워드 또는 키워드와 문장 사이에 위치하는 단어의 개수, 두 키워드 또는 키워드와 문장 사이에 위치하는 어절의 개수, 두 키워드 또는 키워드와 문장 사이에 문자의 개수 중 어느 하나 이상을 기준으로 판단될 수 있다.
제어부(320)는 키워드 분석을 위해 형태소 분석을 먼저 수행할 수 있다.
단계 630에서 제어부(320)는 상기 제1 속성 키워드 후보집합 및 상기 제2 속성 키워드 후보집합 모두에 속한 키워드들을 상기 대표 속성 키워드 후보집합으로 설정할 수 있다. 즉, 인기 분야객체 키워드를 수식하는 표현으로도 쓰이면서 비인기 분야객체 키워드를 수식하는 표현으로도 쓰이는 키워드들이 대표 속성 키워드 후보집합에 수집될 수 있다.
다른 실시 예에 따르면, 단계 510에서 제어부(320)는 인기/비인기 여부에 관계 없이 객체 키워드 및/또는 분야 키워드와 함께 등장하는 키워드들을 대표 속성 키워드 후보집합에 포함시킬 수도 있다.
도 5로 돌아가서, 단계 520에서 제어부(320)는 제2 집합 문서들로부터 대표 속성 키워드 후보집합에 포함되는 각 대표 속성 키워드와 연관된 둘 이상의 하위 키워드들을 추출한다.
단계 520의 하위 키워드 추출에 사용되는 제2 집합 문서와 단계 510의 대표 속성 키워드 후보집합 추출에 사용되는 제1 집합 문서는 서로 다른 문서 집합일 수도 있고 서로 같은 문서 집합일 수도 있다. 예를 들어, 제1 집합 문서는 수집 가능한 문서 전부를 포함하는 집합이고, 제2 집합 문서는 정보 제공 서비스를 제공하고자 하는 특정 관심 분야가 주요한 키워드로 사용된 문서들만을 포함하는 집합이 될 수 있다. 제어부(320)는 수집 가능한 문서들을 분석하여 자주 등장하는 키워드들을 기반으로 각 문서가 정보 제공 서비스를 제공하고자 하는 특정 관심 분야가 주요한 키워드로 사용된 문서인지 분석할 수 있다. 다른 실시 예에 따르면 제1 집합 문서 및 제2 집합 문서 모두 수집 가능한 관련문서 전부를 포함하는 집합이 될 수 있다. 또 다른 실시 예에 따르면, 제1 집합 문서는 수집 가능한 관련문서 전부를 포함하는 집합이고 제2 집합 문서는 정보 제공 서비스를 제공하고자 하는 특정 관심분야에 관련된 문서만을 포함하는 집합이 될 수 있다. 또 다른 실시 예에 따르면 제2 집합 문서는 수집 가능한 관련문서 전부를 포함하는 집합이고 제1 집합 문서는 정보 제공 서비스를 제공하고자 하는 특정 관심분야에 관련된 문서만을 포함하는 집합이 될 수 있다.
단계 520을 위해, 제어부(320)는 예를 들어, 정보 제공 서비스를 제공하고자 하는 특정 관심분야에 관련된 문서만을 포함하는 집합을 생성하기 위해 해당 관심분야 자체를 나타내는 분야 키워드를 포함하는 문서들 및/또는 해당 관심분야에 속하는 객체 키워드를 포함하는 문서들을 수집하고, 그들 중 분야 키워드/객체 키워드의 비중이 미리 설정된 값 이상인 문서들을 추출하여 특정 관심분야에 관련된 문서만을 포함하는 집합을 생성할 수 있다. 분야 키워드/객체 키워드의 비중은 분야 키워드/객체 키워드의 등장 빈도나 등장 위치, 문맥 등을 통해 판단할 수 있다. 예를 들어 분야 키워드/객체 키워드가 자주 등장하거나 분야 키워드/객체 키워드가 해당 문서의 타이틀로 사용되거나 큰 글자 또는 강조를 위한 글자체로 표시되는 문서는 특정 관심분야에 관련된 문서로 분류할 수 있을 것이다.
단계 520에서 제어부(320)는 예를 들어 상기 제2 집합 문서 중 적어도 일부를 분석하여 각 대표 속성 키워드와 가장 연관도가 높은 하위 키워드들을 미리 설정된 개수만큼 추출하여 각 대표 속성 키워드와 연관된 둘 이상의 하위 키워드들을 추출할 수 있다.
제어부(320)는 예를 들어 하위 키워드가 대표 속성 키워드와 동일 또는 유사한 문맥에 등장하는 빈도를 고려하여 대표 속성 키워드와 하위 키워드 사이의 연관도를 판단할 수 있다. 예를 들어 특정 문장에서 키워드 A의 주변에 등장하는 단어들은 다른 문서에서도 키워드 A와 연관된 단어의 주변에 등장할 수 있으리라고 볼 수 있다.
"큰 맘 먹고 여행을 갔으나 7월이라 날씨가 너무 더워서 고생했다."
"큰 맘 먹고 여행을 갔으나 7월이라 날씨가 너무 습해서 고생했다."
위 두 문장을 살펴보면 같은 문맥에서 "더워서"라는 단어가 "습해서"라는 단어로 대체되었다. 제어부(320)는 "덥다"와 "습하다"가 서로 연관된 단어라는 것을 유추할 수 있다.
"큰 맘 먹고 여행을 갔으나 7월이라 날씨가 너무 더워서 고생했다."
"큰 맘 먹고 휴가를 갔으나 7월이라 날씨가 너무 더워서 고생했다."
마찬가지로 제어부(320)는 위 두 문장을 통해 "여행"과 "휴가"가 연관된 단어라는 것을 유추할 수 있다.
"큰 맘 먹고 여행을 갔으나 7월이라 날씨가 너무 더워서 고생했다."
"큰 맘 먹고 여행을 갔으나 8월이라 날씨가 너무 더워서 고생했다."
마찬가지로 제어부(320)는 위 두 문장을 통해 "7월"과 "8월"이 연관된 단어라는 것을 유추할 수 있다.
제어부(320)는 이전에 수집된 문서들을 통해 "덥다"와 "습하다"가 서로 연관된 단어이고 "7월"과 "8월"이 서로 연관된 단어이며 "여행"과 "휴가"가 서로 연관된 단어임을 저장해 둘 수 있다 이후 아래와 같은 문장을 수집한다고 가정한다.
"큰 맘 먹고 휴가를 갔으나 7월이라 날씨가 너무 습해서 고생했다."
"큰 맘 먹고 여행을 갔으나 8월이라 날씨가 너무 더워서 힘들었다."
두 문장이 동일한 문맥은 아니지만 덥다"와 "습하다"가 서로 연관된 단어이고 "7월"과 "8월"이 서로 연관된 단어이며 "여행"과 "휴가"가 서로 연관된 단어임을 알고 있다면, 제어부(320)는 위 문장을 통해 "고생했다"와 "힘들었다" 역시 연관된 단어임을 학습할 수 있을 것이다.
동일/유사한 문맥에 등장하는 빈도가 높은 키워드 쌍은 서로 연관도가 높은 것으로 판단할 수 있다. 아울러 두 키워드가 등장하는 문맥의 유사도가 높을수록 두 키워드 사이의 연관도가 높은 것으로 판단할 수 있다. 제어부(320)는 수집되는 문서들을 이용해 학습을 진행하여 키워드들 사이의 연관도를 설정하고, 설정된 키워드 간 연관도와 문장의 문맥을 이용하여 해당 문장에서 등장하는 키워드들의 연관도를 설정하는 식으로 키워드 간 연관도 판단의 정확성을 높일 수 있다.
이와 유사한 학습 방식으로 NNLM(Neural Net Language Model), RNNLM(Recurrent Neural Net Language Model), word2vec, 스킵그램(skipgram) 및 CBOW(Continuous Bag-of-Words)방식이 알려져 있다. 특히 word2vec을 이용할 경우 word2vec은 문서들을 이용해 학습하여 각 키워드들을 벡터에 대응시키고, 두 키워드 사이의 유사도는 두 벡터의 코사인 유사도 계산을 통해 파악할 수 있다.
이러한 방식 또는 유사한 방식으로, 제어부(320)는 제2 집합 문서 중 적어도 일부를 분석하여 각 대표 속성 키워드와 가장 연관도가 높은 하위 키워드들을 미리 설정된 개수만큼 추출할 수 있다.
단계 530에서 제어부(320)는 상기 제2 집합 문서들로부터 상기 대표 속성 키워드 후보집합 내 각 대표 속성 키워드와 하위 키워드 쌍에 대응되는 연관 가중치를 추출할 수 있다.
도 7은 본 명세서의 일 실시 예에 따르는 단계 530의 상세 순서도이다.
단계 710에서 제어부(320)는 상기 제2 집합 문서 중 적어도 일부를 분석하여 상기 하위 키워드들 사이의 상호 연관도를 추출할 수 있다. 예를 들어 대표 속성 키워드 A1에 대해 연관된 하위 키워드로서 수집된 것이 B11 내지 B150의 50개 하위 키워드라고 가정한다. 이 경우 제어부(320)는 이들 50개 하위 키워드들에 대해 두 하위 키워드가 같은 문서에 함께 등장하는 빈도를 이용하여 두 하위 키워드 사이의 상호 연관도를 추출할 수 있다. B11 과 B12가 같은 문서에 등장하는 빈도에 따라 B11 과 B12 사이의 상호 연관도가 결정된다. 다른 실시 예에 따르면 B11 과 B12 같은 문서에 등장하는 빈도가 상호 연관도에 영향을 주는 것에 더하여, B11 과 B12가 같은 문서에 등장하는 경우 두 키워드 B11 과 B12 사이의 거리(또는 두 키워드가 등장하는 문장 사이의 거리)가 가까울수록 높은 상호 연관도가 인정될 수 있다. 비슷한 방식으로 하위 키워드들 사이의 상호 연관도가 추출될 수 있다. 키워드 사이의 거리 또는 키워드와 문장 사이의 거리는 예를 들어 두 키워드 또는 키워드와 문장 사이에 위치하는 문장의 개수, 두 키워드 또는 키워드와 문장 사이에 위치하는 단어의 개수, 두 키워드 또는 키워드와 문장 사이에 위치하는 어절의 개수, 두 키워드 또는 키워드와 문장 사이에 위치하는 문자의 개수 중 어느 하나 이상을 기준으로 판단될 수 있다.
단계 720에서 제어부(320)는 상기 하위 키워드들 사이의 상호 연관도를 기초로 각 대표 속성 키워드와 하위 키워드 간의 연관 가중치를 추출할 수 있다. 제어부(320)는 예를 들어, 각 대표 속성 키워드에 상응하는 하위 키워드 집합에 대하여, 상기 하위 키워드 집합 내의 특정 하위 키워드와 상기 하위 키워드 집합 내의 다른 하위 키워드 간의 상호 연관도와, 상기 특정 하위 키워드와 상기 대표 속성 키워드 사이의 연관 가중치가, 서로 양의 상관관계를 가지도록 상기 특정 하위 키워드와 상기 대표 속성 키워드 사이의 연관 가중치를 설정할 수 있다.
예를 들어 대표 속성 키워드 A1의 하위 키워드 B11과 A1의 다른 하위 키워드들 (B12 내지 B150) 사이의 상호 연관도가 높을 수록 A1과 B11사이의 연관 가중치가 높게 설정될 수 있다. 예를 들면, B11과 A1의 다른 하위 키워드들 (B12 내지 B150) 사이의 상호 연관도 산술평균(또는 총합)이 B11과 A1 사이의 연관 가중치가 될 수 있다. 단순한 산술평균 대신 기하 평균/조화 평균이 사용될 수도 있다. 하위 키워드 B11과 A1의 다른 하위 키워드들 (B12 내지 B150) 사이의 상호 연관도 중 가장 높은 2개(예시)와 가장 낮은 2개(예시)를 제외하고 평균을 구하는 절삭 평균이 사용될 수도 있다. 상호 연관도의 산술 평균 대신 중앙값(median)이 사용될 수도 있다.
일부 실시 예에 따르면, A1에 대한 B11의 연관 가중치를 계산하기 위해서 사용되는 "B11과 B12 같은 문서에 등장하는 빈도"는 단순히 B11과 B12 같이 등장하는(또는 같은 문장에 등장하는, 또는 근접하여 등장하는) 문서의 개수에 따라 달라지는 것이 아니라, B11과 B12 같이 등장하는(또는 같은 문장에 등장하는, 또는 근접하여 등장하는) 문서의 개수를 B11이 등장하는 문서의 개수 및/또는 B12이 등장하는 문서의 개수로 나누어 구할 수 있다. 유사한 방식으로 "B11과 B12 같은 문서에 등장하는 빈도"는 B11과 B12 같이 등장하는(또는 같은 문장에 등장하는, 또는 근접하여 등장하는) 문서의 개수와 양의 상관관계를 가지고 B11이 등장하는 문서의 개수 및/또는 B12이 등장하는 문서의 개수와 음의 상관관계를 가지도록 설정될 수 있다. 단순하게 흔히 사용되는 단어가 대표 속성 키워드 A1에 높은 연관 가중치를 가지는 것을 방지하기 위한 일종의 노멀라이제이션(normalization)이다.
도 5로 돌아와서, 단계 540에서 제어부(320)는 상기 제1 집합 문서들로부터 객체 항목과 하위 키워드 간의 하위 연관도를 추출할 수 있다.
제1 집합 문서들 중에서 객체 항목을 나타내는 객체 키워드(예를 들어 "테일러 스위프트")와 같은 문서, 또는 같은 문장 또는 근접한 문장에 자주 등장한 하위 키워드들은 해당 객체 항목과 연관된 것으로 판단할 수 있다. 제어부(320)는 해당 객체 항목의 객체 키워드가 등장한 문서를 수집하고, 그 문서들 내에 함께 등장한 빈도에 따라 하위 키워드와 객체 키워드 사이의 하위 연관도를 추출할 수 있다. 특히 제어부(320)는 하위 키워드가 객체 키워드와 같은 문장에 등장하면 하위 키워드가 객체 키워드와 다른 문장에 등장한 경우에 비해 하위 키워드와 객체 항목 사이의 연관도가 더 높은 것으로 설정할 수 있다.
제어부(320)는 하위 키워드가 등장한 문장이 객체 키워드가 등장한 문장과 근접할 수록 하위 키워드와 해당 객체 키워드의 객체 항목 사이의 연관도가 더 높은 것으로 설정할 수 있다. 두 문장의 근접도는 예를 들어 두 문장 사이에 위치하는 문장의 개수, 두 문장 사이에 위치하는 단어의 개수, 두 문장 사이에 위치하는 어절의 개수, 두 문장 사이에 위치하는 문자의 개수 중 어느 하나 이상을 기준으로 판단될 수 있다.
제어부(320)는 하위 키워드가 등장한 위치가 객체 키워드가 등장한 위치와 근접할 수록 하위 키워드와 해당 객체 키워드의 객체 항목 사이의 연관도가 더 높은 것으로 설정할 수 있다. 하위 키워드와 객체 키워드 사이의 근접도는 예를 들어 하위 키워드와 객체 키워드 사이에 위치하는 문장의 개수, 하위 키워드와 객체 키워드 사이에 위치하는 단어의 개수, 하위 키워드와 객체 키워드 사이에 위치하는 어절의 개수, 하위 키워드와 객체 키워드 사이에 위치하는 문자의 개수 중 어느 하나 이상을 기준으로 판단될 수 있다.
단계 550에서 제어부(320)는 단계 540의 하위 연관도 및 단계 530의 연관 가중치를 이용하여 상기 객체 항목과 상기 각 대표 속성 키워드 간의 객체-키워드 연관도를 추출할 수 있다.
예를 들어 객체 항목 C와 대표 속성 키워드 A1 사이의 객체-키워드 연관도는 C와 A1의 하위 키워드들 (예를 들어 B11 내지 B150) 사이의 하위 연관도 및 각 하위 키워드들의 연관 가중치를 이용하여 추출될 수 있다. 예를 들어 객체 항목 C와 대표 속성 키워드 A1 사이의 객체-키워드 연관도는, 객체 항목 C와 B11 내지 B150 사이의 하위 연관도가 높을수록 높게 설정될 수 있다.
아울러 A1과의 관계에서 연관 가중치가 더 높은 하위 키워드에 대해서 객체 항목 C와의 하위 연관도가 높다면, 연관 가중치가 더 낮은 하위 키워드에 대해서 하위 연관도가 높은 경우에 비하여 객체 C와 대표 속성 키워드 A1 사이의 객체-키워드 연관도가 더 높게 설정될 수 있다. 예를 들어 표 1의 경우가 표 2의 경우보다 연관 가중치 높은 쪽(B11)의 하위 연관도가 높으므로, 표 1의 경우가 표 2의 경우보다 객체 C와 대표 속성 키워드 A1 사이의 객체-키워드 연관도가 높게 설정될 수 있다.
A1과의 연관 가중치 C와의 하위 연관도
B11 0.5 0.5
B12 0.2 0.2
A1과의 연관 가중치 C와의 하위 연관도
B11 0.2 0.5
B12 0.5 0.2
일 실시 예에 따르면 각 하위 키워드에 대응되는 연관가중치 및 하위 연관도를 곱한 값의 총합으로 (또는 이 총합을 이용하여) 객체 C와 대표 속성 키워드 A1 사이의 객체-키워드 연관도를 구할 수도 있다. 표 1의 경우 0.5×0.5+0.2×0.2=0.29가 되고, 표 2의 경우 0.2×0.5+0.5×0.2=0.20이 되므로, 표 1의 경우가 표 2의 경우보다 객체 C와 대표 속성 키워드 A1 사이의 객체-키워드 연관도가 높게 설정될 수 있다. 상술한 객체-키워드 연관도 산정 방식은 예시적인 것에 불과하고, 단계 540의 C와의 하위 연관도 및 단계 530의 A1과의 연관 가중치가 C 및 A1 사이의 객체-키워드 연관도와 양의 상관관계에 있다면 다른 방식이 사용되어도 무방하다.
이후 통신부(310)가 특정 대표 속성 키워드와 연관된 정보 제공 요청을 수신하면, 제어부(320)는 단계 550에서 추출한 객체-키워드 연관도를 기반으로 결과 항목을 통신부(310)를 통해 제공할 수 있다. 예를 들어 어느 하나의 대표 속성 키워드를 포함한 정보 제공 요청을 수신한 경우 제어부(320)는 해당 대표 속성 키워드와의 관계에서 객체-키워드 연관도가 가장 높은 순서대로 객체 항목에 관한 정보를 제공할 수 있다.
다른 실시 예에서, 둘 이상의 대표 속성 키워드 및 그에 대응되는 가중치를 포함한 정보 제공 요청을 수신한 경우 제어부(320)는 각 객체 항목에 대해 정보 제공 요청에 포함된 대표 속성 키워드들과의 객체-키워드 연관도에 가중치를 곱한(또는 이와 유사하게 가중치를 부가한) 값의 총합(또는 평균)이 가장 높은 순서대로 객체 항목에 관한 정보를 제공할 수 있다.
도 8은 본 명세서의 다른 실시 예에 따르는 정보 제공 과정의 순서도이다.
도 8의 실시 예는 도 5의 실시 예와 동일한 과정들에 더해서 단계 520과 단계 530의 사이에 두 단계들(523, 526)을 더 포함하고 있다. 여기서는 중복된 설명을 피하고 단계 523 및 단계 526에 대해서만 설명한다.
단계 523에서 제어부(320)는, 단계 520에서 추출된 하위 키워드들 각각이, 감정 언어(감정어)에 해당하는지 판단한다. 이를 위해 저장부(330) 또는 외부 서버가 감정어 사전(dictionary)를 보유할 수 있다. 감정어 사전은 어떤 단어(키워드)가 감정어인지 여부를 판단하기 위한 도구로서, 예를 들어 감정어 목록을 보유할 수 있다. 감정어 목록에 포함된 키워드는 감정어라고 할 수 있고, 그렇지 않은 키워드는 감정어가 아니라고 판단할 수 있다. 다만 이러한 판단은 사전적 의미에 기반한 것이고, 시대에 따라 변하는 대중의 단어 사용을 반영하지 못할 수 있다. 따라서 제어부(320)는 대표 속성 키워드 자체의 감정어 여부를 판단하지 않고, 대표 속성 키워드에 연관된 하위 키워드들의 감정어 여부를 기준으로 대표 속성 키워드를 활용할지 여부를 판단한다.
다른 실시 예에서 제어부(320)는 감정어 사전에 감정어인 것으로 등록된, 미리 설정된 수 이상의 단어와 연관도가 높은(미리 설정된 값 이상인) 것으로 학습된 다른 단어를 감정어 사전에 추가할 수 있다.
단계 526에서 제어부(320)는 연관된 하위 키워드의 감정 언어 비율(또는 숫자)이 높은 순서대로 미리 설정된 개수의 대표 속성 키워드만을 대표 속성 키워드 후보집합 내에 남기고 나머지를 제거할 수 있다. 이러한 과정을 통해 감정 언어와 거리가 먼 키워드가 감정 언어처럼 취급되는 것을 방지할 수 있다.
도 9로 돌아와서, 단계 920에서 제어부(320)는 예약어와 대표 속성 키워드 쌍에 대응하는 기본 예약어-키워드 연관도를 저장부(330)에 저장한다.
예약어는 대표 속성 키워드들의 가중치로 표현될 수 있는 표현들을 포함할 수 있다. 예를 들어, "심심해"도 예약어가 될 수 있고, "예쁜"도 예약어가 될 수 있다.
예약어 "심심해"에 대하여 기본 예약어-키워드 연관도가 높은 대표 속성 키워드는 예를 들어 "재미있는", "흥미진진한", "시간때우기용" 등 심심한 상황을 해결할 수 있는 대표 속성 키워드들을 포함할 수 있다.
예약어 "예쁜"에 대하여 기본 예약어-키워드 연관도가 높은 대표 속성 키워드는 예를 들어 "아름다운", "귀여운", "눈길을 끄는" 등의 "예쁜"과 유사하거나 "예쁜"을 설명하는 대표 속성 키워드들을 포함할 수 있다.
단계 920의 과정은 예를 들어 관리자의 입력으로 수행되거나 외부 시스템에서 결정된 기본 예약어-키워드 연관도를 네트워크 또는 저장매체를 통해 전달받아 수행될 수 있다. 다른 실시 예에 따르면 단계 920의 과정은 인터넷, SNS, 뉴스 등 수집 가능한 문서들을 분석하여 도 5 내지 도 8의 과정과 비슷한 방식으로 수행될 수도 있다. 아울러 단계 920의 과정은 후술하는 바와 같이 사용자의 피드백을 반영하는 과정을 포함할 수 있다.
단계 920의 과정은 도 15 내지 도 17 중 어느 하나를 참조하여 후술하는 방식으로 수행될 수도 있다.
도 11은 본 명세서의 일 실시 예에 따르는 기본 예약어-키워드 연관도의 예시이다.
도 11의 실시 예에서 예약어는 모두 q개(C1 내지 Cq)가 있고 대표 속성 키워드는 모두 n개(k1 내지 kn)가 있다.
예를 들어 예약어 C5와 대표 속성 키워드 k3의 기본 예약어-키워드 연관도는 v3,5이 된다.
단계 930에서 통신부(310)가 단말(200)로부터 수신 예약어를 수신하여 획득하고 수신 예약어를 제어부(320)에게 전달한다.
수신 예약어는 단말(200)이 검색 사용자로부터 수신한 예약어이다. 단말(200)은 음성 입력을 전기적 신호(음성 신호)로 변환하여 검색 장치(300)에게 전달할 수 있다. 검색 장치(300)의 제어부(320)는 음성 신호를 분석하여 텍스트로 변환하고 변환 텍스트를 예약어에 매칭시킬 수 있다. 제어부(320)는 또한 음성 신호를 분석하여 음성의 억양이나 높낮이, 빠르기, 호흡 상태 등을 분석하여 정황 정보로서 활용할 수도 있다.
다른 실시 예에 따르면 단말(200)은 음성 입력을 텍스트로 변환하여 변환 텍스트를 검색 장치(300)에게 전달할 수 있다. 단말(200)은 수신한 음성 입력의 억양이나 높낮이, 빠르기, 호흡 상태 등을 분석하여 분석 정보를 검색 장치(300)에게 전달할 수 있다. 검색 장치(300)는 분석 정보를 일종의 정황 정보로서 활용할 수도 있다.
단계 940에서 제어부(320)는 객체-키워드 연관도 및 기본 예약어-키워드 연관도를 이용하여 상기 수신 예약어와 각 객체 항목 쌍에 대응하는 예약어-객체 연관도를 획득한다.
도 12는 본 명세서의 일 실시 예에 따르는 단계 940의 상세 순서도이다.
도 12를 참조하면 단계 1210에서 제어부(320)는 수신 예약어에 대한 각 객체 항목 및 대표 속성 키워드 쌍에 상응하는 조정 객체-키워드 연관도를 획득한다.
일 실시 예에 따르면 제어부(320)는 각 객체 항목 및 대표 속성 키워드 쌍에 대하여 상기 객체 항목 및 상기 대표 속성 키워드 쌍에 상응하는 객체-키워드 연관도에 상기 수신 예약어 및 상기 대표 속성 키워드 쌍에 상응하는 기본 예약어-키워드 연관도를 적용하여 상기 수신 예약어에 대한 각 객체 항목 및 대표 속성 키워드 쌍에 상응하는 조정 객체-키워드 연관도를 획득할 수 있다.
특히 제어부(320)는 각 객체 항목 및 대표 속성 키워드 쌍에 대하여 상기 객체 항목 및 상기 대표 속성 키워드 쌍에 상응하는 객체-키워드 연관도에 상기 수신 예약어 및 상기 대표 속성 키워드 쌍에 상응하는 기본 예약어-키워드 연관도를 곱한 값을 이용하여 상기 수신 예약어에 대한 각 객체 항목 및 대표 속성 키워드 쌍에 상응하는 조정 객체-키워드 연관도를 획득할 수 있다.
또한 제어부(320)는 각 객체 항목 및 대표 속성 키워드 쌍에 대하여 상기 객체 항목 및 상기 대표 속성 키워드 쌍에 상응하는 객체-키워드 연관도와 양의 상관 관계를 가지고, 상기 수신 예약어 및 상기 대표 속성 키워드 쌍에 상응하는 기본 예약어-키워드 연관도와 양의 상관 관계를 가지도록 상기 수신 예약어에 대한, 각 객체 항목 및 대표 속성 키워드 쌍에 상응하는 조정 객체-키워드 연관도를 설정할 수도 있다.
본 명세서에서 객체-키워드 연관도, 기본 예약어-키워드 연관도, 조정 객체-키워드 연관도, 기본 예약어-하위 키워드 연관도와 기타 연관관계를 나타내는 값은 모두 값이 클수록 더 연관관계가 긴밀한 값인 것으로 가정하였다. 다른 실시 예에서 일부 연관도 값은 연관도 값이 작을수록 연관관계가 긴밀하고 다른 연관도 값은 연관도 값이 클수록 연관관계가 긴밀한 경우에는 그에 맞도록 양의 상관관계-음의 상관관계가 적절히 대체하여 사용될 수 있을 것이다.
예를 들어 제어부(320)는 수신 예약어가 C2일 때 객체 항목 i4 및 대표 속성 키워드 k3 쌍에 상응하는 조정 객체-키워드 연관도를 획득하기 위해서 객체 항목 i4 및 대표 속성 키워드 k3 쌍에 상응하는 객체-연관도 w4,3에 수신 예약어 C2 및 대표 속성 키워드 k3 쌍에 상응하는 기본 예약어-키워드 연관도 v3,4를 적용하여 조정 객체-키워드 연관도를 획득할 수 있다.
특히 연관도의 적용 방식은 객체-연관도와 기본 예약어-키워드 연관도를 곱하는 방식이 될 수 있다. 예를 들어 제어부(320)는 수신 예약어가 C2일 때 객체 항목 i4 및 대표 속성 키워드 k3 쌍에 상응하는 조정 객체-키워드 연관도를 획득하기 위해서 객체 항목 i4 및 대표 속성 키워드 k3 쌍에 상응하는 객체-연관도 w4,3에 수신 예약어 C2 및 대표 속성 키워드 k3 쌍에 상응하는 기본 예약어-키워드 연관도 v3,2를 곱한 값인 (w4,3Хv3, 2)를 이용하여 조정 객체-키워드 연관도를 획득할 수 있다. 다른 실시 예에서 제어부(320)는 곱하기 대신 조정 객체-키워드 연관도가 w4,3 및 v3,2과 양의 상관 관계를 가지도록 하는 다른 연산/이용 방식을 적용한 함수 f(w4,3, v3, 2)를 활용하여 조정 객체-키워드 연관도를 획득할 수도 있다. 또한 (w4,3Хv3,2)를 조정 객체-키워드 연관도로써 활용하는 방법 및 (w4,3Хv3, 2)에 기타 요인에 기반한 보정을 가하여 조정 객체-키워드 연관도로써 활용하는 방법 모두 활용될 수 있다.
단계 1220에서 제어부(320)는 특정 객체 항목에 대한 상기 조정 객체-키워드 연관도를 누적한 값을 이용하여 예약어-객체 연관도를 획득할 수 있다. 예를 들어 제어부(320)는 특정 객체 항목에 대한 상기 조정 객체-키워드 연관도의 누적값과 양의 상관 관계를 가지도록 상기 수신 예약어 및 상기 특정 객체 항목 쌍에 상응하는 상기 예약어-객체 연관도를 설정할 수 있다. 객체 항목 i4 및 수신 예약어 C2 쌍에 상응하는 예약어-객체 연관도는 예를 들어
Figure pat00001
를 이용하여 획득될 수 있다. f(w4,j,vj,2)는 객체 항목 i4 및 수신 예약어 C2, 키워드 kj에 대응하는 조정 객체-키워드 연관도이다.
예를 들어 객체 항목 i4 및 수신 예약어 C2 쌍에 대응하는 예약어-객체 연관도는
Figure pat00002
이 될 수 있다. 다른 예에서 객체 항목 i4 및 수신 예약어 C2 쌍에 대응하는 예약어-객체 연관도는
Figure pat00003
에 대해 기타 요인에 의한 보정을 가한 값이 될 수 있다.
도 9로 돌아와서 단계 950에서 제어부(320)는 수신 예약어에 대응하는 예약어-객체 연관도에 따라 객체 항목을 제공할 수 있다. 예를 들어 수신 예약어 C2에 대응하는 예약어-객체 연관도가 아래 표 3과 같다면 제어부(320)는 표 4의 순서로 객체 항목을 제공할 수 있다.
객체 항목 수신 예약어와의 예약어-객체 연관도
i1 0.23
i2 0.33
i3 0.99
i4 0.84
순서 객체 항목 수신 예약어와의 예약어-객체 연관도
1 i3 0.99
2 i4 0.84
3 i2 0.33
4 i1 0.23
즉, 제어부(320)는 수신 예약어에 대응하는 예약어-객체 연관도가 높은 순서대로 객체 항목을 제공할 수 있다. 객체 항목을 제공받은 단말(200)은 표시부(220)를 통해 객체 항목 i3에 대한 정보를 사용자에게 제공할 수 있다. 단말(200)은 필요에 따라 하위 순서의 다른 객체 항목에 대한 정보도 제공할 수 있다. 단말(200)은 표시부(220) 대신 스피커를 통해 음성으로 객체 항목 i3에 대한 정보를 사용자에게 제공할 수 있다.
도 13은 본 명세서의 다른 실시 예에 따르는 정보 제공 과정의 순서도이다.
도 13 내지 도 17의 과정은 도 5 내지 도 12의 과정을 일부 이용하거나 도 5 내지 도 12의 과정을 일부 변경하여 수행될 수도 있다. 도 13 내지 도 17의 과정을 설명하면서 필요한 경우 도 5 내지 도 12에 관한 설명을 원용할 수 있다.
도 13을 참조하면, 단계 1310에서 제어부(320)는 제1 집합 문서들로부터 대표 속성 키워드 후보집합을 추출한다. 제어부(320)는 예를 들어 제1 집합 문서 중 관심 분야에 해당하는 문서에 자주 등장하는 키워드들을 대표 속성 키워드 후보집합으로 수집할 수 있다. 단계 1310의 과정은 예를 들어 도 5의 단계 510의 과정과 동일 또는 유사하게 진행될 수 있다. 단계 1310의 과정은 도 6의 과정과 동일 또는 유사한 과정을 통해 진행될 수 있다. 도 6의 과정에 대한 설명은 다시 반복하지 않는다.
단계 1320에서 제어부(320)는 예약어 집합을 설정한다. 예를 들어 관리자가 수동으로 입력하여 예약어 집합이 설정될 수 있다. 변형 예에 따르면, 제어부(320)가 예약어로 적합한 어절/구절 등을 예약어 후보로서 설정하고, 예약어 후보 중 하나 이상을 예약어로서 설정할 수 있는 인터페이스를 제공할 수도 있다.
도 18은 본 명세서의 변형 예에 따르는 단계 1320의 상세 순서도이다.
단계 1810에서 제어부(320)는 하나의 언어단위 또는 둘 이상의 연속된 언어단위들의 문서 집합 내 등장 횟수를 획득한다. 여기서 문서 집합은 도 5의 단계 510 과정에서 사용되는 문서 집합과 같은 문서 집합일 수도 있고 다른 문서 집합이 될 수도 있다.
언어단위는 예를 들어 어절/단어/형태소/음절/문자 중 어느 하나가 될 수 있다. 기타 문장을 구분하는 여러 기준으로 나누어진 단위가 본 실시 예에서의 언어단위가 될 수 있다.
제어부(320)는 단계 1810 이전에 문서 집합의 각 문서들이 포함하는 문서들을 어절 단위로 나누어 배열 또는 리스트 등의 형태로 저장할 수 있다. 제어부(320)는 실시 예에 따라 각 어절에서 무의미한 단어, 예를 들어 한국어에서 일부 조사나 '이', '저' 등 지시형용사, 기타 분석에 필요하지 않은 단어들을 어절에서 삭제하거나 배열/리스트에서 제거할 수 있다. 또한 제어부(320)는 실시 예에 따라서 어절이 하나의 단어로 이루어진 경우 해당 단어를 기본형(또는 미리 설정된 형식)으로 전환할 수 있다.
변형 예에 따르면 제어부(320)는 단계 1810 이전에 문서 집합의 각 문서들이 포함하는 문서들을 단어 단위로 나누어 배열 또는 리스트 등의 형태로 저장할 수 있다. 제어부(320)는 실시 예에 따라 각 단어를 기본형(또는 미리 설정된 형식)으로 전환할 수 있다. 제어부(320)는 실시 예에 따라 무의미한 단어, 예를 들어 한국어에서 일부 조사나 '이', '저' 등 지시형용사, 기타 분석에 필요하지 않은 단어들을 배열/리스트에서 제거할 수 있다.
제어부(320)가 문서를 형태소 단위로 또는 음절 단위로 또는 문자 단위로 분할하는 변형 예도 가능하다.
이하의 실시 예에서는 편의를 위해 제어부(320)가 문서를 어절 단위로 분할하고, 각 어절이 언어단위가 되는 것으로 가정한다.
단일한 언어단위는 예약어가 될 수 있다. 변형 실시 예에 따르면 둘 이상의 연속된 언어단위 또한 예약어가 될 수 있다. 예를 들어 "깔끔한"(단일한 언어 단위)도 예약어가 될 수 있고, "분위기 좋은"(두 개의 연속된 언어단위)도 예약어가 될 수 있다. 다만 둘 이상의 연속된 언어단위는 단일한 언어단위에 비해 자주 나오기 어려우므로 실시 예에 따라 둘 이상의 연속된 언어단위가 예약어로 선정되도록 하기 위해 예약어 선정 시 둘 이상의 연속된 언어단위에 대해 가중치 또는 추가 점수를 줄 수 있다. 변형 예에 따르면, 예약어 선정 시 둘 이상의 연속된 언어단위에 대해 예약어 선정을 위한 기준치를 더 관대하게 설정할 수도 있다. 예를 들어 단일한 언어단위가 적어도 a번 등장하여야 예약어 후보로 추천될 수 있다면 두 개의 연속된 언어단위는 a보다 훨씬 적은 횟수인 b번만 등장하더라도 예약어 후보로 추천되도록 설정될 수 있고 세 개의 연속된 언어단위는 b보다도 적은 c번만 등장하더라도 예약어 후보로 추천되도록 설정될 수도 있다. 이하 본 명세서에서 둘 이상의 연속된 언어단위를 연속 언어단위라 칭한다.
또한 연속 언어단위가 예약어로 추천/선정되는 경우 그 예약어(후보)에 포함된 언어단위 또는 그 예약어(후보)에 포함되며 예약어(후보)보다 짧은 연속 언어단위들은 예약어로 추천되지 않도록 하거나 예약어로 추천되기 위한 점수 산정 시 감점을 할 수 있다. 유사한 예약어가 여럿 선정되거나 추천되는 것을 방지하기 위한 것이다. 이하에서는 설명을 단순화하기 위해 연속 언어단위에 대한 설명을 생략하지만 단일 언어단위에 대한 설명이 연속 언어단위에 대해서도 똑같이 또는 유사하게 적용될 수 있다.
단계 1810에서 언어단위의 등장 횟수는 예를 들어 해당 언어단위가 등장한 문서의 수가 될 수 있다. 한 문서에서 여러 번 해당 언어단위가 등장하더라도 등장횟수는 1회만 인정된다. 다른 실시 예에 따르면, 해당 언어단위가 한 문서에서 여러 번 등장할 경우를 모두 등장 횟수로 인정해서 그 등장 횟수가 언어단위의 등장 횟수가 될 수 있다.
또다른 실시 예에 따르면 한 문서에서 해당 언어단위가 두 번 이상 반복해서 등장하는 경우 두 번째 이후의 등장은 첫 번째 등장에 비해 낮은 값의 등장으로 인정할 수 있다. 또한 한 문서에서 해당 언어단위의 등장이 반복되면 반복될수록 나중의 등장은 더 낮은 점수로 인정될 수 있다. 등장 횟수가 늘어나면 점수가 높아지지만 기울기가 점차 완만해지는 것이다. 예를 들어 등장 횟수의 1/r제곱(r은 1보다 큰 실수(real number))가 해당 문서에서 해당 언어단위의 등장점수로 사용될 수도 있다. 예를 들어 (등장 횟수의 로그 값)+1 (단 등장 횟수가 0인경우 등장점수는 0) 등이 사용될 수도 있다. 또한 한 문서에서 언어단위의 등장점수는 미리 설정된 상한값을 넘지 않도록 제한될 수도 있다. 해당 언어단위의 등장점수를 모든 문서에 대해서 누적한 값이 해당 언어단위의 등장 횟수에 따른 등장점수가 될 수 있을 것이다. 그리고 이러한 등장점수를 단계 1830에서 활용할 수 있다.
이하에서는 편의를 위해 언어단위의 등장 횟수는 해당 언어단위가 등장한 문서의 수인 것으로 가정하고 설명한다.
단계 1820에서 제어부(320)는 언어단위로부터 미리 설정된 거리 이내에 감정어가 위치하는 횟수를 획득한다. 언어단위와 감정어 사이의 거리는 예를 들어 언어단위와 감정어 사이에 위치하는 단어의 개수, 언어단위와 감정어 사이에 위치하는 어절의 개수, 언어단위와 감정어 사이에 위치하는 문자의 개수 중 어느 하나 이상을 기준으로 판단될 수 있다.
또한 언어단위와 감정어가 서로 다른 문장에 속한 경우 언어단위와 감정어 사이에 위치하는 단어/어절/문자 개수와 무관하게 제어부(320)는 감정어가 언어단위로부터 미리 설정된 거리 이내에 위치하지 않는 것으로 판단할 수도 있다. 다른 변형예에 따르면 언어단위와 감정어가 서로 다른 문장에 속한 경우 제어부(320)는 문장에 대한 판단을 배재하여 계산한 거리에 일정한 숫자를 더하여 거리를 계산할 수도 있다. 언어단위와 감정어가 서로 다른 문장에 속하는 경우 서로 연관성이 없을 확률이 비교적 높아지기 때문에 감정어 사이에 위치하는 단어/어절/문자 개수보다 거리를 더 멀게 평가하는 것이 바람직하기 때문이다.
특정 단어(어절)의 감정어 여부는 미리 등록된 감정어 사전에 조회하여 확인할 수 있다.
언어단위로부터 일정 거리 이내에 감정어가 위치하는 횟수는 예를 들어 일정 거리 이내에 해당 언어단위와 감정어가 함께 위치한 문서의 수가 될 수 있다. 한 문서에서 여러 번 해당 언어단위와 감정어가 일정 거리이내에 함께 등장하더라도 등장횟수는 1회만 인정된다. 다른 실시 예에 따르면, 한 문서의 해당 언어단위 중 일정 거리 이내에 감정어가 위치한 언어단위가 여럿인 경우 그 여러 언어단위를 모두 언어단위로부터 일정 거리 이내에 감정어가 위치하는 횟수로 인정할 수 있다. 이하에서는 일정 거리 이내에 감정어가 위치하는 언어단위를 감정어 위치 언어단위라고 칭한다.
또다른 실시 예에 따르면 한 문서에서 감정어 위치 언어단위가 두 번 이상 반복해서 등장하는 경우 두 번째 이후의 등장은 첫 번째 등장에 비해 낮은 값의 등장으로 인정할 수 있다. 또한 한 문서에서 해당 감정어 위치 언어단위의 등장이 반복되면 반복될수록 나중의 등장은 더 낮은 점수로 인정될 수 있다. 등장 횟수가 늘어나면 점수가 높아지지만 기울기가 점차 완만해지는 것이다. 예를 들어 등장 횟수의 1/r제곱(r은 1보다 큰 실수(real number))가 해당 문서에서 해당 감정어 위치 언어단위의 등장점수로 사용될 수도 있다. 예를 들어 (등장 횟수의 로그 값)+1 (단, 등장 횟수가 0인경우 등장점수는 0) 등이 사용될 수도 있다. 또한 한 문서에서 감정어 위치 언어단위의 등장점수는 미리 설정된 상한값을 넘지 않도록 제한될 수도 있다. 해당 감정어 위치 언어단위의 등장점수를 모든 문서에 대해서 누적한 값이 해당 언어단위의 등장 횟수에 따른 등장점수가 될 수 있을 것이다. 그리고 이러한 등장 점수가 단계 1830에서 활용될 수 있다.
또 다른 실시 예에 따르면 하나의 언어단위에 대하여 일정 거리 이내에 위치하는 감정어의 개수가 많을수록 등장점수를 더 높게 인정할 수도 있다. 아울러 하나의 언어단위에 대하여 더 가까운 거리 내에 감정어가 있는 경우 등장점수를 더 높게 인정할 수도 있다. 또한 하나의 언어단위에 대하여 하나가 아닌 둘 이상의 미리 설정된 개수의 감정어가 있을 경우에만 등장점수(등장횟수)가 인정될 수도 있다.
이하에서는 편의를 위해 감정어 위치 언어단위의 등장 횟수는 해당 언어단위로부터 미리 설정된 거리 이내에 감정어가 등장한 문서의 수인 것으로 가정하고 설명한다.
단계 1830에서 제어부(320)는 해당 언어단위의 등장 횟수 및 언어단위로부터 일정 거리 이내에 감정어가 위치하는 횟수를 고려하여 예약어 후보를 설정한다.
예를 들어 제어부(320)는 언어단위의 등장횟수 및 일정 거리 이내에 감정어가 위치한 횟수를 곱해서(또는 기타 두 변수에 대해 양의 상관관계를 가지는 연산 방식에 따라) 감정어 점수로 환산할 수 있다. 그리고 점수가 높은 순서대로 미리 설정된 일정한 개수가 예약어 후보로 설정될 수 있다. 또는 미리 설정된 점수 이상에 해당하는 언어단위가 예약어 후보로 설정될 수도 있다.
언어단위 등장횟수 감정어 위치 횟수 점수
제1 언어단위 3003 1122 3369366
제2 언어단위 2001 1820 3641820
제3 언어단위 3121 1300 4057300
제4 언어단위 200 110 22000
표 5의 예시에서는 제3 언어단위->제2 언어단위->제1 언어단위->제4 언어단위 순서로 예약어 후보가 될 수 있다. 제어부(320)가 예약어 후보 2개를 추천한다면 제3 언어단위 및 제2 언어단위가 추천될 것이다. 제어부(320)가 점수 3백만점 이상의 언어단위를 예약어 후보로서 추천한다면 제3 언어단위, 제2 언어단위 및 제1 언어단위가 순서대로 예약어 후보로서 추천될 것이다. 다른 실시 예에 따르면, 제어부(320)는 언어단위의 등장횟수 순서로 제1 개수만큼의 언어단위들을 뽑아낸 뒤 뽑아낸 언어단위들의 일정거리 내에 감정어가 등장한 횟수(또는 감정어 점수)를 기준으로 한 순서대로 일정한 개수의 예약어 후보를 추출해 낼 수 있다. 표 5의 예시에서 등장횟수 순서로 3개의 언어단위를 뽑아낸다면 제1 내지 제3 언어단위가 추출될 수 있다. 감정어 등장 횟수를 기준으로 하면 제2 언어단위, 제3 언어단위 및 제1 언어단위의 순서대로 예약어 후보가 추천될 수 있다.
또 다른 실시 예에 따르면, 제어부(320)는 언어단위의 등장횟수 순서로 제1 개수만큼의 언어단위들을 뽑아낸 뒤 뽑아낸 언어단위들의 일정거리 내에 감정어가 등장한 횟수(또는 감정어 점수)를 기준으로 한 순서대로 제2 개수(단, 제2 개수는 제1 개수 미만임)의 예약어 후보를 추출해 낼 수 있다. 표 5의 예시에서 등장횟수 순서로 3개의 언어단위를 뽑아낸다면 제1 내지 제3 언어단위가 추출될 수 있다. 감정어 등장 횟수를 기준으로 2개의 언어단위를 추출한다면 제2 언어단위 및 제3 언어단위의 순서대로 예약어 후보가 추천될 수 있다.
제어부(320)는 기타 상술한 방식과 유사하거나 다소 상이한 방식으로, 예약어 후보 선택을 위한 점수가 단계 1810의 언어단위의 등장횟수와 양의 상관관계를 가지고 단계 1820의 미리 설정된 거리 이내에 감정어가 위치하는 언어단위의 등장횟수와도 양의 상관관계를 가지도록 예약어 후보 선택을 위한 점수를 설정하고 이 점수를 이용하여 예약어 후보를 추천할 수 있다.
아울러 제어부(320)는 이미 예약어 집합에 포함된 언어단위는 예약어 후보로 추가되지 않도록 처리할 수 있다. 또한, 제어부(320)는 예약어 집합에 포함된 예약어와 실질적으로 동일한 언어단위는 예약어 후보로 추가되지 않도록 처리할 수 있다.
단계 1840에서 정보 제공 장치(300)는 단말(200)에게 예약어 후보 정보를 포함하는 예약어 선택 인터페이스를 생성하기 위한 인터페이스 정보를 제공한다. 인터페이스 정보는 예를 들어 html형식의 문서가 될 수 있다. 다른 실시 예에 따르면, 인터페이스 정보는 인터페이스를 생성하기 위해 필요한 동적 정보(추천되는 예약어 후보 등)만을 포함하고, 단말(200)은 이러한 동적 정보를 단말(200)에 미리 저장돼 있던 페이지 형태에 반영하는 방식으로 인터페이스를 포함한 페이지를 사용자에게 제공할 수 있다.
제어부(320)는 예약어 후보 정보를 포함하는 예약어 선택 인터페이스를 포함하는 페이지를 생성하기 위한 페이지 정보를 생성하고 통신부(310)가 페이지 정보를 단말(200)에게 제공할 수 있다. 단말(200)은 사용자에게 해당 인터페이스를 포함하는 페이지를 렌더링하여 표시할 수 있다. 변형 실시 예에 따르면 시각적 페이지에 포함된 인터페이스 대신 소리에 의한 인터페이스 또는 현재까지 알려졌거나 미래에 알려질 기술에 의한 인터페이스가 제공될 수도 있다. 아래에서는 편의를 위해 시각적 페이지에 포함된 인터페이스가 제공되는 것으로 가정하고 설명한다.
도 19는 단계 1840에서 제공되는 인터페이스 정보에 따라 생성된 인터페이스(1900)의 예시이다.
도 19를 참조하면, 인터페이스(1900)는 체크박스 열(column)(1910), 예약어 후보 열(1920), 상세보기 열(1930)로 이루어진 표를 포함한다. 또한 인터페이스(1900)는 예약어 추가 버튼(1940), 후보 삭제 버튼(1950), 보관함에 넣기 버튼(1960)을 포함할 수 있다. 사용자는 체크박스 열(1910)에서 원하는 예약어 후보(들)을 선택한 뒤 예약어 추가 버튼(1940), 후보 삭제 버튼(1950), 보관함에 넣기 버튼(1960) 중 어느 하나를 선택하여 예약어 후보를 처리할 수 있다. 어느 하나의 버튼이 선택되면 단말(200)은 사용자의 입력을 변환한 입력 정보를 정보 제공 장치(300)에게 전달할 수 있다.
정보 제공 장치(300)는 단말(200)로부터 전달받은 입력 정보에 따라 예약어 후보를 처리할 수 있다. 예를 들어, 사용자가 일부 예약어 후보(이하 '선택된 후보')의 체크박스(1910)를 선택하고 예약어 추가 버튼(1940)을 선택하면 이와 관련된 입력 정보를 전달받은 정보 제공 장치(300)의 제어부(320)는 예약어 집합에 선택된 후보들을 추가하고 예약어 후보 집합에서 선택된 후보들을 삭제할 수 있다. 제어부(320)는 향후 예약어 후보 추천 시 예약어 집합에 포함된 언어 단위(들) 및 예약어 집합에 포함된 언어 단위(들)과 실질적으로 동일한 언어단위(들)을 예약어 후보로 추천하지 않도록 제어한다.
다른 예에 따르면, 사용자가 일부 예약어 후보의 체크박스(1910)를 선택하고 예약어 후보 삭제 버튼(1950)을 선택하면 이와 관련된 입력 정보를 전달받은 정보 제공 장치(300)의 제어부(320)는 예약어 제외 집합에 선택된 후보들을 추가하고 예약어 후보 집합에서 선택된 후보들을 삭제할 수 있다. 제어부(320)는 향후 예약어 후보 추천 시 예약어 제외 집합에 포함된 언어 단위(들) 및 예약어 제외 집합에 포함된 언어 단위(들)과 실질적으로 동일한 언어단위(들)을 예약어 후보로 추천하지 않도록 제어한다.
또 다른 예에 따르면, 사용자가 일부 예약어 후보의 체크박스(1910)를 선택하고 보관함에 넣기 버튼(1960)을 선택하면 이와 관련된 입력 정보를 전달받은 정보 제공 장치(300)의 제어부(320)는 예약어 후보 보관 집합에 선택된 후보들을 추가하고 예약어 후보 집합에서 선택된 후보들을 삭제할 수 있다. 제어부(320)는 향후 예약어 후보 추천 시 예약어 후보 보관 집합에 포함된 언어 단위(들) 및 예약어 후보 보관 집합에 포함된 언어 단위(들)과 실질적으로 동일한 언어단위(들)을 예약어 후보로 추천하지 않도록 제어한다.
버튼들(1940, 1950, 1960) 대신 버튼과 유사한 다른 인터페이스 또는 버튼의 역할을 대신할 수 있는 다른 인터페이스가 활용될 수도 있다.
또한 제어부(320)는 예약어 집합에서 예약어를 일부 삭제하기 위한 인터페이스를 제공할 수 있다. 제어부(320)는 예약어 제외 집합의 일부 언어단위가 추천에서 제외되지 않도록 예약어 제외 집합에서 언어단위를 제거하기 위한 인터페이스를 제공할 수 있다. 제어부(320)는 예약어 후보 보관 집합의 언어단위를 도 19와 유사한 목록 인터페이스의 형태로 제공하고, 그 목록 인터페이스를 통해 사용자가 예약어 후보 보관 집합의 일부 언어단위를 예약어로 추가하도록 할 수 있다. 또한 사용자는 상기 목록 인터페이스를 통해 예약어 후보 보관 집합의 일부 언어단위를 예약어 제외 집합에 포함되도록 하고 예약어 후보 보관 집합에서 삭제할 수도 있다. 이 경우 해당 언어단위는 더이상 예약어 후보 보관 집합의 목록 인터페이스를 통해 제공되지 않으며 도 19의 인터페이스(1900)를 통해서도 예약어 후보로서 추천되지 않는다. 또한 사용자는 상기 목록 인터페이스를 통해 예약어 후보 보관 집합의 일부 언어단위를 단순히 예약어 후보 보관 집합에서 삭제할 수도 있다. 이 경우 해당 언어단위는 더이상 예약어 후보 보관 집합의 목록 인터페이스를 통해 제공되지 않지만 도 19의 인터페이스(1900)를 통해서 예약어 후보로서 추천될 수는 있다.
또한 인터페이스(1900)는 예약어 후보가 한 페이지에 모두 보여지지 못할 경우에 대비하여 페이지 이동을 위한 이전 페이지 버튼(1970) 및/또는 다음 페이지 버튼(1980)을 포함할 수 있다. 이전 페이지 버튼(1970) 및/또는 다음 페이지 버튼(1980)은 실제 후보의 개수 및 현재 페이지 위치에 따라 선택적으로 제공될 수 있다. 아울러 이전 페이지 버튼(1970) 및/또는 다음 페이지 버튼(1980) 대신 스크롤을 통해 확장되는 인터페이스가 제공될 수도 있다. 일부 인터페이스에서는 1910,1920, 1930 항목을 포함하는 표만 스크롤되고 버튼들(1940, 1950, 1960, 1970, 1980)은 스크롤에서 제외될 수도 있다.
사용자는 상세보기(1930)를 선택하여 예약어 후보가 추천된 배경이나 관련 정보를 상세히 조회할 수도 있다. 상세보기(1930)를 선택하였을 때 제어부(320)가 제공하는 인터페이스는 해당 예약어 후보에 대한 정보 및 해당 예약어 후보를 예약어로 추가하거나 예약어 후보 보관 집합에 추가하거나 예약어 제외 집합에 추가하기 위한 인터페이스를 포함할 수 있다.
기타 예약어 후보를 관리하기 위한 인터페이스가 제어부(320)에 의하여 단말(200)을 통해 사용자에게 제공될 수 있다.
도 18로 돌아와서, 단계 1850에서 제어부(320)는 예약어를 선택하는 입력에 따라 선택된 예약어 후보를 예약어 집합에 추가할 수 있다.
도 13으로 돌아와서 단계 1330에서 제어부(320)는 객체 항목과 대표 속성 키워드 쌍에 대응하는 객체-키워드 연관도를 저장한다.
도 10은 본 명세서의 일 실시 예에 따르는 저장된 객체-키워드 연관도의 예시이다.
도 10의 실시 예에서 객체 항목은 모두 m개(i1 내지 im)가 있고 대표 속성 키워드는 모두 n개(k1 내지 kn)가 있다.
예를 들어 객체 항목 i5와 대표 속성 키워드 k3의 객체-키워드 연관도는 w5,3이 된다.
단계 1330의 과정은 예를 들어 도 5 내지 도 8의 실시 예들 중 일부에 따라 수행되거나 이와 유사한 과정, 또는 이에 상응하는 과정으로 수행될 수 있다. 다른 실시 예에 따르면 단계 1330의 과정은 관리자의 입력으로 수행되거나 외부 시스템에서 결정된 객체-키워드 연관도를 네트워크 또는 저장매체를 통해 전달받아 수행될 수 있다.
도 5 내지 도 8의 실시 예에 대해서는 앞서 설명한 바 있으므로 반복된 설명을 생략한다. 다만 도 5 및 도 8의 단계 510에서 수행되는 과정은 도 13의 단계 1310의 과정과 실질적으로 동일하다. 따라서 단계 1330의 과정을 수행함에 있어서 도 5 내지 도 8의 실시 예들이 활용되더라도 단계 510의 과정은 다시 수행되지 않고 단계 1310의 결과가 재활용될 수 있다.
단계 1340에서 제어부(320)는 대표 속성 키워드와 하위 키워드 쌍에 대응되는 연관 가중치 및 예약어와 하위 키워드 쌍에 대응되는 기본 예약어-하위 키워드 연관도를 이용하여 예약어와 대표 속성 키워드 쌍에 대응하는 기본 예약어-키워드 연관도를 저장부(330)에 저장한다. 단계 1340의 과정은 예를 들어 관리자의 입력에 따라 수행되거나 도 15 내지 도 17 중 어느 하나 이상의 실시 예에 따라 수행될 수 있다.
단계 1340의 과정 이전에, 또는 단계 1340의 과정 도중에 하위 키워드가 결정되고, 대표 속성 키워드와 하위 키워드 쌍에 대응되는 연관 가중치가 결정되고, 예약어와 하위 키워드 쌍에 대응되는 기본 예약어-하위 키워드 연관도가 결정되어야 한다.
단계 1340의 과정에 사용되는 하위 키워드는 단계 1330의 과정 도중 단계 520이 수행되면서 결정될 수 있다. 이 경우 단계 520의 하위 키워드가 단계 1340에서 사용될 수 있다. 단계 1330에서 하위 키워드가 결정되지 않는 경우 도 5의 단계 520 및 그 이전의 과정과 동일하거나 유사한 과정을 통해 하위 키워드가 결정될 수 있다.
단계 1340의 과정에 사용되는 연관 가중치는 단계 1330의 과정 도중 단계 530이 수행되면서 결정될 수 있다. 이 경우 단계 530의 연관 가중치가 단계 1340에서 사용될 수 있다. 단계 1330에서 연관가중치가 결정되지 않는 경우 도 5의 단계 530 및 그 이전의 과정과 동일하거나 유사한 과정을 통해 연관 가중치가 결정될 수 있다.
기본 예약어-하위 키워드 연관도는 예를 들어 예약어와 하위 키워드가 동일 또는 유사한 문맥에 등장하는 빈도를 고려하여 산출될 수 있다.
이하 도 15 내지 도 17에 대한 설명에서 예약어 C2과 대표 속성 키워드 k3 사이의 기본 예약어-키워드 연관도 v3,2를 획득하는 예시를 설명한다. 예를 들어 대표 속성 키워드 k3의 하위 키워드들이 B31 내지 B350이라고 가정한다. 예약어, 대표 속성 키워드 및 기본 예약어-키워드 연관도에 대해서는 도 11을 참조하여 상술한 예시를 참조한다. 예약어 Cj 및 하위 키워드 Bgh 쌍에 상응하는 기본 예약어-하위 키워드 연관도는 xj,h라고 표현한다. 하위 키워드 Bgh 및 대표 속성 키워드 kg 쌍에 상응하는 연관 가중치는 yg,h라고 표현한다. 예약어 Cj, 대표 속성 키워드 kg 및 하위 키워드 Bgh 조합에 상응하는 조정 예약어-하위 키워드 연관도는 xj,g,h라고 표현한다.
도 15는 본 명세서의 제1 실시 예에 따르는 단계 1340의 상세 순서도이다.
도 15를 참조하면, 단계 1510에서 제어부(320)는 기본 예약어-하위 키워드 연관도에 연관 가중치를 적용하여 조정 예약어-하위 키워드 연관도를 획득한다.
단계 1510에서 제어부(320)는 각 예약어 및 하위 키워드 쌍에 대하여 상기 예약어 및 상기 하위 키워드 쌍에 상응하는 기본 예약어-하위 키워드 연관도에 상기 하위 키워드 및 대표 속성 키워드 쌍에 상응하는 연관 가중치를 적용하여 상기 대표 속성 키워드에 대한 각 예약어 및 하위 키워드 쌍에 상응하는 조정 예약어-하위 키워드 연관도를 획득할 수 있다.
예를 들어 제어부(320)는 예약어가 C2일 때 하위 키워드 B34 및 대표 속성 키워드 k3 쌍에 상응하는 C2 - B34 간 조정 예약어-하위 키워드 연관도를 획득하기 위해서 예약어 C2 및 하위 키워드 B34 쌍에 상응하는 기본 예약어-하위 키워드 연관도 x2,4에 하위 키워드 B34 및 대표 속성 키워드 k3 쌍에 상응하는 연관 가중치 y3,4를 적용하여 조정 예약어-하위 키워드 연관도 x2,3,4를 획득할 수 있다.
특히 연관 가중치의 적용 방식은 기본 예약어-하위 키워드 연관도 x2,4에 하위 키워드 B34 및 대표 속성 키워드 k3 쌍에 상응하는 연관 가중치 y3,4를 곱하는 방식이 될 수 있다. 예를 들어 제어부(320)는 예약어가 C2일 때 하위 키워드 B34 및 대표 속성 키워드 k3 쌍에 상응하는 C2 - B34 간 조정 예약어-하위 키워드 연관도 x2,3,4를 획득하기 위해서 예약어 C2 및 하위 키워드 B34 쌍에 상응하는 기본 예약어-하위 키워드 연관도 x2,4에 하위 키워드 B34 및 대표 속성 키워드 k3 쌍에 상응하는 연관 가중치 y3,4를 곱한 값인 (x2,4Хy3, 4)를 이용하여 조정 예약어-하위 키워드 연관도 x2,3,4를 획득할 수 있다. 다른 실시 예에서 제어부(320)는 곱하기 대신 조정 예약어-하위 키워드 연관도 x2,3,4가 x2,4 및 y3,4과 양의 상관 관계를 가지도록 하는 다른 연산/이용 방식을 적용한 함수 f(x2, 4,y3 , 4)를 활용하여 조정 예약어-하위 키워드 연관도 x2,3,4를 획득할 수도 있다. 또한 (x2,4Хy3, 4)를 조정 예약어-하위 키워드 연관도 x2,3,4로써 활용하는 방법 및 (x2,4Хy3, 4)에 기타 요인에 기반한 보정을 가하여 조정 예약어-하위 키워드 연관도 x2,3,4로써 활용하는 방법 모두 활용될 수 있다.
단계 1520에서 제어부(320)는 조정 예약어-하위 키워드 연관도 x2, 3,f의 누적값을 이용하여 예약어 C2 및 대표 속성 키워드 k3 간의 기본 예약어-키워드 연관도를 설정할 수 있다. 즉 예약어 C2 및 대표 속성 키워드 k3 간의 기본 예약어-키워드 연관도는
Figure pat00004
가 될 수 있다. 즉, 하위 키워드 B31 내지 B350에 대해 예약어 C2와의 기본 예약어-하위키워드 연관도 x2,f를 구한 뒤 각각에 대해 해당 하위 키워드에 대한 연관 가중치 y3,f를 반영하여 x2, 3,f를 구하고 x2, 3,f를 누적하여 예약어 C2 및 대표 속성 키워드 k3 간의 기본 예약어-키워드 연관도를 구할 수 있다. 다른 실시 예에 따르면, 예약어 C2 및 대표 속성 키워드 k3 간의 기본 예약어-키워드 연관도는
Figure pat00005
에 기타 요인에 의한 보정을 가한 값이 될 수 있다. 다른 실시 예에 따르면, 예약어 C2 및 대표 속성 키워드 k3 간의 기본 예약어-키워드 연관도는
Figure pat00006
과 양의 상관 관계를 가지는 값이 될 수 있다. 여기서는 하나의 대표속성 키워드에 연결돼 있는 하위 키워드가 50개인 것으로 가정하였으나, 대표속성 키워드에 연결돼 있는 하위 키워드의 개수가 달라지면 수식에서 f의 누적 범위가 50이 아닌 다른 값이 될 수 있을 것이다.
도 16은 본 명세서의 다른 실시 예에 따르는 단계 1340의 상세 순서도이다. 도 16의 단계 1510, 단계 1520의 과정은 도 15를 참조하여 상술한 과정과 동일하므로 반복하지 않는다.
도 16을 참조하면 단계 1530에서 제어부(320)는 특정 예약어에 대응하는 대표 키워드들 중 상기 예약어와 상기 대응하는 대표 키워드 쌍의 기본 예약어-키워드 연관도가 기준 기본 예약어-키워드 연관도 이하인 대표 키워드에 대한 기본 예약어-키워드 연관도를 삭제할 수 있다. 특정 예약어에 대응하는 대표 키워드들은 상기 특정 예약어와의 관계에서 기본 예약어-키워드 연관도가 설정돼 있는 키워드들을 가리킨다. 기준 기본 예약어-키워드 연관도는 미리 설정돼 있을 수 있다. 다른 실시 예에 따르면 기준 기본 예약어-키워드 연관도는 특정 예약어에 대응하는 기본 예약어-키워드 연관도의 평균값을 이용하여 설정되거나 특정 예약어에 대응하는 기본 예약어-키워드 연관도를 크기 순서대로 배열했을 때 특정 순위의 기본 예약어-키워드 연관도를 이용하여 설정될 수 있다. 기타 특정 예약어에 대응하는 기본 예약어-키워드 연관도들과 양의 상관관계를 가지는 특정 값이 기준 기본 예약어-키워드 연관도가 될 수 있다. 기준 기본 예약어-키워드 연관도는 예약어에 따라 달리 설정될 수도 있고, 모든 예약어에 대해 동일하게 설정될 수도 있다. 기본 예약어-키워드 연관도가 삭제되는 것은 예약어와 대표키워드 사이의 연관도가 없는 것으로 설정되는 것이다. 제어부는 연관도를 0으로 설정할 수도 있고, 기본 예약어-키워드 연관도를 나타내는 리스트(어레이, 기타 자료구조로 대체될 수 있음)에서 상기 예약어와 상기 대응하는 대표 키워드 쌍의 기본 예약어-키워드 연관도에 관한 정보를 삭제하는 방식으로 기본 예약어-키워드 연관도를 삭제할 수도 있다. 기타 기본 예약어-키워드 연관도가 삭제되었음 (또는 연관관계가 삭제되었음)을 알리는 정보를 부가하는 방식이 사용될 수도 있다.
단계 1530의 과정을 거치면 비교적 미세한 연관도를 가지는 기본 예약어-키워드 연관도가 삭제되어(즉, 연관도가 없는 것으로 설정됨) 지나치게 복잡한 연산을 수행하거나 사용자/관리자에게 실질적으로 의미가 없는 연관관계가 표시되지 않도록 할 수 있다.
도 17은 본 명세서의 또 다른 실시 예에 따르는 단계 1340의 상세 순서도이다.
도 17의 단계 1510, 단계 1520의 과정은 도 15를 참조하여 상술한 과정과 동일하므로 설명을 반복하지 않는다. 도 17의 단계 1530의 과정은 도 16을 참조하여 상술한 과정과 동일하므로 설명을 반복하지 않는다.
단계 1540에서 제어부(320)는 삭제되지 않고 남아 있는 기본 예약어-키워드 연관도를 노멀라이즈 할 수 있다. 예를 들어 특정 대표 속성 키워드에 연결되어 저장된 기본 예약어-키워드 연관도의 평균값을 특정 범위에 포함되도록 하기 위하여 특정 대표 속성 키워드에 연결되어 저장된 기본 예약어-키워드 연관도들에 일정한 계수를 곱하여 상승시키거나 감소시킬 수 있다. 다른 예를 들어, 특정 대표 속성 키워드에 연결되어 저장된 기본 예약어-키워드 연관도의 총합이 특정 범위에 포함되도록 하기 위하여 특정 대표 속성 키워드에 연결되어 저장된 기본 예약어-키워드 연관도들에 일정한 계수를 곱하여 상승시키거나 감소시킬 수 있다. 즉, 어떠한 특정 대표 속성 키워드에 높은 값의 기본 예약어-키워드 연관도가 집중되어 어떠한 예약어를 선택하더라도 해당 특정 대표 속성 키워드만이 추천/사용되거나 특정 대표 속성 키워드가 거의 사용되지 않는 경우를 방지하기 위해 적당한 조정이 수행될 수 있다.
다른 실시 예에 따르면 단계 1540에서 제어부(320)는 기본 예약어-키워드 연관도에 일정 계수를 곱하는 대신 일정 계수를 더하거나 로그, 제곱 등의 연산을 결합하여 노멀라이즈를 수행할 수도 있다. 또다른 실시 예에 따르면 특정 기준값 이상의 기본 예약어-키워드 연관도들만을 일부 감소시키거나 특정 기준값 이하의 기본 예약어-키워드 연관도들만을 일부 상승시키는 방식으로 노멀라이즈를 수행할 수도 있다.
또 다른 실시 예에 따르면, 단계 1540에서 제어부(320)는 특정 예약어에 연결되어 저장된 기본 예약어-키워드 연관도의 평균값(또는 총합)을 특정 범위에 포함되도록 노멀라이즈를 수행할 수도 있다.
도 17의 과정 중 단계 1530이 생략되고 기본 예약어-키워드 연관도 노멀라이즈 과정이 수행되는 변형 예도 가능하다.
단계 1350에서 통신부(310)가 단말(200)로부터 수신 예약어를 수신하여 획득하고 수신 예약어를 제어부(320)에게 전달한다.
수신 예약어는 단말(200)이 검색 사용자로부터 수신한 예약어이다. 단말(200)은 음성 입력을 전기적 신호(음성 신호)로 변환하여 검색 장치(300)에게 전달할 수 있다. 검색 장치(300)의 제어부(320)는 음성 신호를 분석하여 텍스트로 변환하고 변환 텍스트를 예약어에 매칭시킬 수 있다. 제어부(320)는 또한 음성 신호를 분석하여 음성의 억양이나 높낮이, 빠르기, 호흡 상태 등을 분석하여 정황 정보로서 활용할 수도 있다.
다른 실시 예에 따르면 단말(200)은 음성 입력을 텍스트로 변환하여 변환 텍스트를 검색 장치(300)에게 전달할 수 있다. 단말(200)은 수신한 음성 입력의 억양이나 높낮이, 빠르기, 호흡 상태 등을 분석하여 분석 정보를 검색 장치(300)에게 전달할 수 있다. 검색 장치(300)는 분석 정보를 일종의 정황 정보로서 활용할 수도 있다.
단계 1360에서 제어부(320)는 객체-키워드 연관도 및 기본 예약어-키워드 연관도를 이용하여 상기 수신 예약어와 각 객체 항목 쌍에 대응하는 예약어-객체 연관도를 획득한다. 단계 1360의 과정은 도 9의 단계 940의 방식 또는 도 12의 방식에 따라 수행될 수 있다. 동일한 내용의 설명은 생략한다.
단계 1370에서 제어부(320)는 수신 예약어에 대응하는 예약어-객체 연관도에 따라 객체 항목을 제공할 수 있다. 단계 1370의 과정은 단계 950의 과정과 동일한 방식으로 수행될 수 있다. 동일한 설명은 생략한다.
도 14는 본 명세서의 또 다른 실시 예에 따르는 정보 제공 과정의 순서도이다.
도 14의 단계 1310, 1320, 1330, 1340, 1350, 1360, 1370은 도 13의 단계 1310, 1320, 1330, 1340, 1350, 1360, 1370과 동일하므로 동일한 설명은 반복하지 않는다.
도 14에서 추가된 단계 1333은 대표 속성 키워드와 하위 키워드가 결정된 이후 어느 시점에라도 수행될 수 있다. 예를 들어 단계 1333은 단계 1330과 동시에/병행하여 수행될 수도 있고 단계 1333의 과정이 단계 1330 도중에 수행될 수도 있다.
단계 1333에서 제어부(320)는 대표 속성 키워드와 하위 키워드 간의 연관 가중치를 저장한다. 연관 가중치가 설정되는 과정이 단계 1330에서 수행되지 않는 경우 도 5의 단계 530의 과정과 동일 유사한 과정을 통해 대표 속성 키워드와 하위 키워드 간의 연관 가중치가 설정될 수 있다. 다른 실시 예에 따르면 제어부(320)는 단계 1330에서 설정된 연관 가중치를 불러오는 방식으로 대표 속성 키워드와 하위 키워드 간의 연관 가중치를 저장할 수도 있다.
단계 1337에서 제어부(320)는 하위 키워드와 예약어 사이의 기본 예약어-하위키워드 연관도를 획득한다.
제어부(320)는 예를 들어 하위 키워드가 예약어와 동일 또는 유사한 문맥에 등장하는 빈도를 고려하여 예약어와 하위 키워드 사이의 연관도를 판단할 수 있다. 예를 들어 특정 문장에서 키워드 A의 주변에 등장하는 단어들은 다른 문서에서도 키워드 A와 연관된 단어의 주변에 등장할 수 있으리라고 볼 수 있다.
"큰 맘 먹고 여행을 갔으나 7월이라 날씨가 너무 더워서 고생했다."
"큰 맘 먹고 여행을 갔으나 7월이라 날씨가 너무 습해서 고생했다."
위 두 문장을 살펴보면 같은 문맥에서 "더워서"라는 단어가 "습해서"라는 단어로 대체되었다. 제어부(320)는 "덥다"와 "습하다"가 서로 연관된 단어라는 것을 유추할 수 있다.
"큰 맘 먹고 여행을 갔으나 7월이라 날씨가 너무 더워서 고생했다."
"큰 맘 먹고 휴가를 갔으나 7월이라 날씨가 너무 더워서 고생했다."
마찬가지로 제어부(320)는 위 두 문장을 통해 "여행"과 "휴가"가 연관된 단어라는 것을 유추할 수 있다.
"큰 맘 먹고 여행을 갔으나 7월이라 날씨가 너무 더워서 고생했다."
"큰 맘 먹고 여행을 갔으나 8월이라 날씨가 너무 더워서 고생했다."
마찬가지로 제어부(320)는 위 두 문장을 통해 "7월"과 "8월"이 연관된 단어라는 것을 유추할 수 있다.
제어부(320)는 이전에 수집된 문서들을 통해 "덥다"와 "습하다"가 서로 연관된 단어이고 "7월"과 "8월"이 서로 연관된 단어이며 "여행"과 "휴가"가 서로 연관된 단어임을 저장해 둘 수 있다 이후 아래와 같은 문장을 수집한다고 가정한다.
"큰 맘 먹고 휴가를 갔으나 7월이라 날씨가 너무 습해서 고생했다."
"큰 맘 먹고 여행을 갔으나 8월이라 날씨가 너무 더워서 힘들었다."
두 문장이 동일한 문맥은 아니지만 덥다"와 "습하다"가 서로 연관된 단어이고 "7월"과 "8월"이 서로 연관된 단어이며 "여행"과 "휴가"가 서로 연관된 단어임을 알고 있다면, 제어부(320)는 위 문장을 통해 "고생했다"와 "힘들었다" 역시 연관된 단어임을 학습할 수 있을 것이다.
동일/유사한 문맥에 등장하는 빈도가 높은 키워드 쌍은 서로 연관도가 높은 것으로 판단할 수 있다. 아울러 두 키워드가 등장하는 문맥의 유사도가 높을수록 두 키워드 사이의 연관도가 높은 것으로 판단할 수 있다. 제어부(320)는 수집되는 문서들을 이용해 학습을 진행하여 키워드들 사이의 연관도를 설정하고, 설정된 키워드 간 연관도와 문장의 문맥을 이용하여 해당 문장에서 등장하는 키워드들의 연관도를 설정하는 식으로 키워드 간 연관도 판단의 정확성을 높일 수 있다.
이와 유사한 학습 방식으로 NNLM(Neural Net Language Model), RNNLM(Recurrent Neural Net Language Model), word2vec, 스킵그램(skipgram) 및 CBOW(Continuous Bag-of-Words)방식이 알려져 있다. 특히 word2vec을 이용할 경우 word2vec은 문서들을 이용해 학습하여 각 키워드들을 벡터에 대응시키고, 두 키워드 사이의 유사도는 두 벡터의 코사인 유사도 계산을 통해 파악할 수 있다.
도 20은 본 명세서의 일 실시 예에 따르는 용어 계층을 나타낸 도면이다.
도 13 또는 도 14의 과정을 완료하면 예약어들(C1~Cq)과 대표 속성 키워드들(k1~kn), 그리고 하위 키워드들(BX1~BX50) 사이의 계층 관계가 설정된다.
예약어와 대표 속성 키워드 사이에는 기본 예약어-키워드 연관도가 설정되고, 대표 속성 키워드와 하위 키워드 사이에는 연관가중치가 설정된다. 이러한 계층관계를 이용해 제어부(320)는 예약어에 따라 알맞은 객체를 추천해 주거나 새로운 예약어 후보를 선정하는 등의 동작을 수행할 수 있다. 또한 도 20의 계층 관계는 새로운 자료가 반영되어 도 13, 도 14와 같은 과정을 반복하면서 학습을 통해 계층 관계가 수정되거나 보완될 수 있다.
도 21은 본 발명의 일 실시예에 따른 가상 입력 인터페이스 프로그램 설치 과정의 순서도이다.
단계 2110에서 단말(200)은 정보 제공 장치(300)에게 패키지 요청 메시지를 송신한다. 패키지 요청 메시지는 가상 입력 인터페이스 프로그램을 요청하는 메시지이다. 단계 2120에서 정보 제공 장치(300)는 단말(200)에게 가상 입력 인터페이스 프로그램(패키지)를 전달한다.
단계 2130에서 단말(200)은 수신한 가상 입력 인터페이스 프로그램(패키지)을 설치한다. 설치가 불필요하고 수신한 가상 입력 인터페이스 프로그램을 그대로 실행할 수 있는 경우 단계 2130은 생략될 수 있다. 단말(200)은 사용자의 입력에 따라 가상 입력 인터페이스 프로그램을 실행하여 이벤트에 따른 아이템 정보 분포 제공 방법 및 이벤트에 따른 아이템 추천 방법을 수행한다.
도 22는 본 명세서의 일 실시예에 따른 이벤트에 따른 음식점 가격 분포 제공 방법을 수행하는 패키지의 인터페이스 페이지의 일례를 나타내는 도면이다.
도 4, 도 21 및 도 22를 참조하면, 본 발명의 일 실시예에 따른 이벤트에 따른 음식점 가격 분포 제공 방법을 수행하는 패키지의 인터페이스 페이지는 도 21의 단말에서의 패키지 설치(2130)에 따라 단말에 설치된 패키지의 인터페이스 페이지 일 수 있다.
도 22를 참조하면, 본 발명의 일 실시예에 따른 음식점 가격 분포 제공 방법을 수행하는 인터페이스 페이지(2200)는 제목표시부(2210), 지역선택부(2220), 가격선택부(2230), 이벤트표시부(2240), 취향필터선택부(2250) 및 검색버튼(2260)을 포함한다.
단말(200)의 표시부(220)는 단말(200)에 설치된 패키지가 설치되고 구동됨에 따라 인터페이스 페이지(2200)를 표시한다.
인터페이스 페이지(2200)는 패키지가 설치되어 구동되는 프로그램의 전체 페이지 또는 일부 페이지 일 수 있으며, 단말에 설치된 패키지가 설치되어 구동되는 프로그램과 연결되는 다른 웹서버가 표시하는 페이지일 수 있다.
이하에서 단말(200)의 제어부(250)가 표시부(220)를 제어하여 표시부(220)가 내용을 출력하게 하거나 통신부(230)를 제어하여 정보제공장치(300)과 통신하거나 입력부(210)를 제어하여 내용을 입력받거나, 저장부(240)를 제어하여 저장하는 것을 단말(200)이 동작하는 것으로 기술한다. 단말(200)의 표시부(220)는 입력부(210)와 일체로 결합되어 입력부(210) 및 표시부(220)의 기능을 모두 수행할 수도 있으며, 이하에서는 표시부(220)에서 입력부(210)의 기능도 수행하는 것으로 기술한다.
단말(200)은 제목표시부(2210)에 현재 페이지의 제목 또는 프로그램의 제목을 표시한다. 예를 들어, 단말(200)은 제목표시부(2210)에 "가격으로 맛집 찾기"라고 표시하여 현재 페이지가 가격대에 따른 맛집을 추천하는 페이지인 것을 표시할 수 있다.
단말(200)은 지역선택부(2220)에 지역을 표시하고 사용자는 표시된 지역을 선택하거나 원하는 지역을 입력할 수 있다. 또한, 단말(200)은 사용자가 지역을 입력할 필요없이 GPS를 통해 사용자의 위치를 파악할 수도 있다.
가격선택부(2230)는 예를 들어 가격표시부(2231)와 가격설정바(2232)를 포함할 수 있다. 변형 예에 따르면 가격을 설정할 수 있는 유사한 다른 인터페이스 방식이 가격선택부(2230)를 구성할 수도 있다.
단말(200)은 사용자가 가격설정바(2232)의 왼쪽 버튼(2233)과 오른쪽 버튼(2234)를 조정하여 설정한 가격대를 가격표시부(2231)에 표시한다.
가격설정바(2232)는 왼쪽 버튼(2233)과 오른쪽 버튼(2234)을 포함하며 왼쪽 버튼(2233)과 오른쪽 버튼(2234)이 X축으로 움직여서 가격이 조정된다. 단말(200)은 가격대에 따른 음식점의 메뉴 빈도 또는 개수를 가격설정바(2232)의 Y축 상에 그래프로 표시한다.
단말(200)은 이벤트표시부(2240)에 이벤트를 표시한다. 이벤트는 가족외식, 친목모임, 손님접대, 혼자서 식사 등을 포함할 수 있다.
이벤트는 맛집과 관련된 문서에서 자주 등장하는 이벤트를 정보제공장치(300)가 추천하고 추천된 이벤트를 관리자가 선택하여 선정되거나 또는 관리자에 의해 임의로 입력될 수 있다.
단말(200)은 취향필터 선택부(2250)에 이벤트표시부(2240)에서 사용자가 선택한 이벤트와 관련된 예약어를 표시한다. 즉 예약어는 사용자의 취향을 반영하는 취향필터로서 기능하며, 사용자가 이벤트표시부(2240)에 표시된 이벤트를 선택할때마다 선택된 이벤트와 가장 연관도가 높은 예약어가 미리 설정된 수 만큼 취향필터표시부(2250)에 표시된다. 취향필터는 이벤트와 높은 이벤트-예약어 연관도를 가지며, 미리 설정된 수의 예약어가 취향필터선택부 (2250)에 표시될 수 있다. 미리 설정된 수는 예를 들어 7일 수 있으며, 사용자는 취향필터선택부 (2250)에 표시될 예약어의 개수를 설정할 수 있다.
단말(200)은 사용자가 취향필터선택부(2250)에 표시된 예약어 중 일부를 선택하고 검색버튼(2260)을 누르면 사용자가 지역선택부(2220)에서 선택한 지역과 가격선택부(2230)에서 설정한 가격범위와 취향필터선택부(2250)에서 선택한 예약어를 정보제공장치(300)로 전송한다.
단말(200)은 사용자가 취향필터선택부(2250)에 표시된 취향필터 중 적어도 일부를 선택하지 않는 경우, 모두 선택한 것으로 취급하고 미리 설정된 개수에 해당하는 취향필터의 식별 정보를 정보제공장치(300)로 전송한다.
도 23은 본 명세서의 일 실시예에 따른 이벤트에 따른 음식점 가격 분포 제공 방법을 수행하는 패키지의 인터페이스 페이지의 일례를 나타내는 도면이다.
도 23을 참조하면, 본 발명의 일 실시예에 따른 음식점 가격 분포 제공 방법을 수행하는 인터페이스 페이지(2300)는 취향필터표시부(2310), 추천결과 표시부(2320)를 포함한다.
단말(200)은 취향필터표시부(2310)에 검색에 사용된 예약어 또는 취향 필터를 표시한다. 취향 필터는 예약어 또는 사용자가 선택한 가격대를 포함하며, 사용자가 삭제 버튼을 누르면 삭제되고, 단말(200)은 삭제된 예약어 또는 취향 필터를 제외하고 남은 필터를 반영하여 검색 결과를 재정렬한다. 즉, 삭제된 예약어 또는 취향 필터에 해당하는 검색 결과는 제외하고 남은 예약어 또는 취향 필터를 반영하여 검색결과를 정렬한다.
단말(200)은 결과표시부(2320)에 사용자가 선택한 취향필터에 따른 검색결과를 표시한다.
검색결과는 정보제공장치(300)가 사용자가 선택한 지역, 사용자가 조정한 가격대 또는 금액범위, 사용자가 선택한 취향필터를 수신하여 결과를 검색하고 가격대 및 지역 조건을 만족하는 음식점 중에 맛집(아이템)-취향필터 연관도의 점수가 높은 순서대로 정렬하여 단말(200)로 송신한다.
결과표시부(2320)는 복수의 탭(2321)을 포함할 수 있으며, 각각의 탭에 검색 결과 및 다른 맛집의 순위 등이 표시될 수 있다. 예를 들어, 제 1 탭에는 사용자의 취향을 반영한 결과가 표시되고, 제 2 탭에는 전체 맛집 순위가 표시될 수 있다.
도 24는 도 22의 인터페이스 페이지의 제공 방법을 나타내는 순서도이다.
도 22 및 도 24를 참조하면, 단계 2401에서 단말(200)을 통해 사용자가 선택한 이벤트 식별 정보를 정보제공장치(300)가 수신한다.
단계 2402에서 정보제공장치(300)는 해당 이벤트와 연관도(가중치)가 높은 예약어, 즉 취향필터 및 연관도(가중치)를 미리 정해진 개수만큼 추출하고 이를 단말(200)에 제공한다. 정보제공장치(300)는 연관도(가중치)는 제공하지 않고 취향필터 식별 정보만 단말(200)에 제공할 수도 있다.
이벤트-예약어 연관도, 즉 이벤트-취향필터 연관도는 단말(200)이 정보제공장치(300)에 요청하기 전에 미리 산출되며 관리자에 의해 입력되거나 이벤트 표현이 포함된 문서에 예약어가 등장하는 빈도(거리) 기준으로 연관도가 산출 될 수 있다. 예를 들어, "상견례" 및 "상견례"와 동의어, 유사어가 포함된 문서에 취향필터가 등장하는 빈도 또는 이벤트 표현과 취향필터와의 거리를 바탕으로 이벤트-취향필터 연관도가 산정될 수 있다.
또한 이벤트 표현이 포함된 문서에 하위키워드들의 빈도가 추출되고 이벤트 표현과 하위 키워드의 거리 또는 하위 키워드의 빈도를 이용하여 이벤트와 하위 키워드의 연관도를 산출하여 이벤트-취향필터의 연관도가 산출될 수 있다.
또한, 이벤트 표현이 포함된 문서에 예약어가 등장하는 빈도(거리) 기준으로 연관도가 산출되거나 이벤트 표현이 포함된 문서에 하위키워드들의 빈도가 추출되고 하위키워드와 이벤트 표현의 거리와 빈도를 이용하여 이벤트-취향필터 연관도가 산출되는 경우에도 관리자에 의해 수정될 수도 있다.
정보제공장치(300)는 특정 이벤트에 대해 이벤트-예약어 연관도가 높은 순서대로 미리 정해진 개수만큼의 예약어 리스트를 산출할 수 있으며, 관리자는 특정 예약어를 리스트에서 배제하거나 리스트에 추가할 수도 있다.
맛집(아이템)-예약어 연관도, 즉 아이템-취향필터 연관도는 맛집이 포함된 문서에 예약어가 등장하는 빈도(거리) 기준으로 연관도가 산출되거나 맛집이 포함된 문서에 하위키워드들의 빈도가 추출되고 하위키워드와 맛집의 거리와 빈도를 이용하여 산출될 수 있다.
단계 S2403에서 정보제공장치(300)는 미리 정해진 개수의 예약어와 연관도(가중치)를 적용하여 높은 점수 순서대로의 미리 정해진 개수만큼의 음식점에서 메뉴 가격 데이터를 수집하여 가격 분포 정보를 단말(200)로 송신한다. 예를 들어, 정보제공장치는 7개의 예약어와 가장 연관도가 높은 상위 1000개의 음식점에서 메뉴 가격 데이터를 수집하여 분포 정보를 단말(200)로 송신할 수 있다.
단계 S2404에서 단말(200)은 가격설정바(2232)의 X축에 가격을 표시하고, Y축에 빈도 또는 개수를 나타내는 그래프를 표시한다. 빈도는 예를 들어 1000원 단위로 판단될 수 있다.
가격선택부(2230)가 일정 빈도 이상의 가격대를 포함하도록 가격 설정바가 조정되고 조정된 가격이 표시될 수 있다. 이 경우, 필요한 정보를 정보제공장치(300)가 단말(200)에 제공하고 단말(200)이 인터페이스를 생성할 수 있다.
가격설정바(2232)에서는 이벤트표시부(2240)에서 사용자가 선택한 이벤트 또는 취향필터선택부(2250)에서 사용자가 선택한 취향필터에 따라 가격설정바(2232)의 왼쪽 버튼(2233) 또는 오른쪽 버튼(2234)이 조정되고 가격대가 변동될 수 있다.
이 때, 처리 흐름도 도면들의 각 블록과 흐름도 도면들의 조합들은 컴퓨터 프로그램 인스트럭션들에 의해 수행될 수 있음을 이해할 수 있을 것이다. 이 컴퓨터 프로그램 인스트럭션들은 범용 컴퓨터, 특수용 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비의 프로세서에 탑재될 수 있으므로, 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비의 프로세서를 통해 수행되는 그 인스트럭션들이 흐름도 블록(들)에서 설명된 기능들을 수행하는 수단을 생성하게 된다. 이들 컴퓨터 프로그램 인스트럭션들은 특정 방식으로 기능을 구현하기 위해 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비를 지향할 수 있는 컴퓨터 이용 가능 또는 컴퓨터 판독 가능 메모리에 저장되는 것도 가능하므로, 그 컴퓨터 이용가능 또는 컴퓨터 판독 가능 메모리에 저장된 인스트럭션들은 흐름도 블록(들)에서 설명된 기능을 수행하는 인스트럭션 수단을 내포하는 제조 품목을 생산하는 것도 가능하다. 컴퓨터 프로그램 인스트럭션들은 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비 상에 탑재되는 것도 가능하므로, 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비 상에서 일련의 동작 단계들이 수행되어 컴퓨터로 실행되는 프로세스를 생성해서 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비를 수행하는 인스트럭션들은 흐름도 블록(들)에서 설명된 기능들을 실행하기 위한 단계들을 제공하는 것도 가능하다.
또한, 각 블록은 특정된 논리적 기능(들)을 실행하기 위한 하나 이상의 실행 가능한 인스트럭션들을 포함하는 모듈, 세그먼트 또는 코드의 일부를 나타낼 수 있다. 또, 몇 가지 대체 실행 예들에서는 블록들에서 언급된 기능들이 순서를 벗어나서 발생하는 것도 가능함을 주목해야 한다. 예컨대, 잇달아 도시되어 있는 두 개의 블록들은 사실 실질적으로 동시에 수행되는 것도 가능하고 또는 그 블록들이 때때로 해당하는 기능에 따라 역순으로 수행되는 것도 가능하다.
이 때, 본 실시 예에서 사용되는 '~부'라는 용어는 소프트웨어 또는 FPGA또는 ASIC과 같은 하드웨어 구성요소를 의미하며, '~부'는 어떤 역할들을 수행한다. 그렇지만 '~부'는 소프트웨어 또는 하드웨어에 한정되는 의미는 아니다. '~부'는 어드레싱할 수 있는 저장 매체에 있도록 구성될 수도 있고 하나 또는 그 이상의 프로세서들을 재생시키도록 구성될 수도 있다. 따라서, 일 예로서 '~부'는 소프트웨어 구성요소들, 객체지향 소프트웨어 구성요소들, 클래스 구성요소들 및 태스크 구성요소들과 같은 구성요소들과, 프로세스들, 함수들, 속성들, 프로시저들, 서브루틴들, 프로그램 코드의 세그먼트들, 드라이버들, 펌웨어, 마이크로코드, 회로, 데이터, 데이터베이스, 데이터 구조들, 테이블들, 어레이들, 및 변수들을 포함한다. 구성요소들과 '~부'들 안에서 제공되는 기능은 더 작은 수의 구성요소들 및 '~부'들로 결합되거나 추가적인 구성요소들과 '~부'들로 더 분리될 수 있다. 뿐만 아니라, 구성요소들 및 '~부'들은 디바이스 또는 보안 멀티미디어카드 내의 하나 또는 그 이상의 CPU들을 재생시키도록 구현될 수도 있다.
본 명세서가 속하는 기술분야의 통상의 지식을 가진 자는 본 명세서가 그 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시 예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다. 본 명세서의 범위는 상기 상세한 설명보다는 후술하는 특허청구의 범위에 의하여 나타내어지며, 특허청구의 범위의 의미 및 범위 그리고 그 균등 개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 명세서의 범위에 포함되는 것으로 해석되어야 한다.
한편, 본 명세서와 도면에는 본 명세서의 바람직한 실시 예에 대하여 개시하였으며, 비록 특정 용어들이 사용되었으나, 이는 단지 본 명세서의 기술 내용을 쉽게 설명하고 발명의 이해를 돕기 위한 일반적인 의미에서 사용된 것이지, 본 명세서의 범위를 한정하고자 하는 것은 아니다. 여기에 개시된 실시 예 외에도 본 명세서의 기술적 사상에 바탕을 둔 다른 변형 예들이 실시 가능하다는 것은 본 명세서가 속하는 기술 분야에서 통상의 지식을 가진 자에게 자명한 것이다.

Claims (24)

  1. 지역을 입력받는 지역선택부;
    아이템의 가격대와 가격대에 따른 빈도를 표시하고, 가격대를 설정하는 가격 설정바를 포함하는 가격 선택부;
    이벤트를 표시하고 선택받는 이벤트 표시부;
    상기 선택된 이벤트와 이벤트-취향필터 연관도에 따라 연관된 취향필터를 표시하고 상기 취향필터를 선택받는 취향필터 선택부;를 포함하는 표시부 및,
    상기 표시부를 제어하고, 상기 입력받은 지역 및 취향필터와 상기 설정된 가격대를 정보제공서버로 송신하는 제어부;를 포함하는 이벤트에 따른 아이템 추천 단말 장치.
  2. 제 1 항에 있어서,
    상기 표시부는 상기 선택된 취향필터를 표시하는 취향필터 표시부; 및
    아이템-취향필터 연관도에 따라 추천되는 아이템을 표시하는 추천결과 표시부;를 더 포함하는 이벤트에 따른 아이템 추천 단말 장치.
  3. 제 2 항에 있어서,
    상기 아이템은 음식점인 이벤트에 따른 아이템 추천 단말 장치.
  4. 제 2 항에 있어서,
    상기 아이템은 상기 지역, 상기 가격대 및 상기 아이템-취향 필터 연관도를 이용해서 추천되는 이벤트에 따른 아이템 추천 단말 장치.
  5. 제 4 항에 있어서,
    상기 추천결과는 상기 지역 및 상기 가격대에 해당하는 아이템 중에서 상기 아이템-취향 필터의 연관도가 높은 순서대로 정렬되어 표시되는 이벤트에 따른 아이템 추천 단말 장치.
  6. 제 4 항에 있어서,
    상기 취향 필터 중 일부가 삭제되면 남은 취향 필터에 따라 추천되는 아이템을 표시하는 이벤트에 따른 아이템 추천 단말 장치.
  7. 제 1 항에 있어서,
    상기 이벤트-취향 필터 연관도는 관리자에 의해 입력되는 이벤트에 따른 아이템 추천 단말 장치.
  8. 제 1 항에 있어서,
    상기 이벤트-취향필터 연관도는 상기 이벤트와 취향필터의 거리 또는 취향필터의 빈도 기준으로 산정되는 이벤트에 따른 아이템 추천 단말 장치.
  9. 제 1 항에 있어서,
    상기 이벤트-취향필터 연관도는 상기 취향필터에 대한 하위 키워드들이 추출되고 상기 하위 키워드들과 상기 이벤트와의 연관도를 이용하여 산정되는 이벤트에 따른 아이템 추천 단말 장치.
  10. 제 2 항에 있어서,
    상기 아이템-취향필터 연관도는 상기 아이템과 취향필터의 거리 또는 취향필터의 빈도 기준으로 산정되는 이벤트에 따른 아이템 추천 장치.
  11. 제 2 항에 있어서,
    상기 아이템-취향필터 연관도는 상기 취향필터에 대한 하위 키워드들이 추출되고 상기 하위 키워드들과 상기 아이템과의 연관도를 이용하여 산정되는 이벤트에 따른 아이템 추천 장치.
  12. 제 1 항에 있어서,
    상기 가격 선택부는 미리 정해진 개수 이상의 메뉴를 포함하도록 가격 설정바가 조정되고 조정된 가격이 표시되는 이벤트에 따른 아이템 추천 장치.
  13. 제 1 항에 있어서,
    상기 가격 선택부는 상기 선택된 이벤트와 상기 선택된 취향필터에 따라 가격 설정바가 조정되고 조정된 가격이 표시되는 이벤트에 따른 아이템 추천 단말 장치.
  14. 이벤트-취향필터 연관도를 계산하는 단계;
    사용자가 선택한 이벤트를 수신하는 단계;
    상기 이벤트와 상기 이벤트-취향필터 연관도가 높은 취향필터를 추출하여 전송하는 단계;를 수행하도록 구성된 이벤트에 따른 아이템 추천 서버.
  15. 제 14항에 있어서,
    아이템-취향필터 연관도를 계산하는 단계;를 더 수행하도록 구성된 이벤트에 따른 아이템 추천 서버.
  16. 제 15 항에 있어서,
    상기 아이템-취향필터 연관도가 높은 미리 정해진 개수의 아이템 정보를 송신하는 단계;를 더 수행하도록 구성된 이벤트에 따른 아이템 추천 서버.
  17. 제 16 항에 있어서,
    상기 아이템에 대한 정보는 가격 정보와 빈도 정보인 이벤트에 따른 아이템 추천 서버.
  18. 제 17항에 있어서,
    상기 아이템은 음식점인 이벤트에 따른 아이템 추천 서버.
  19. 제 14 항에 있어서,
    지역 및 상기 취향필터 중 선택된 취향 필터 및 가격대를 수신하고,
    상기 지역 및 상기 가격대에 맞는 아이템 중에서 상기 아이템과 취향필터와의 아이템-취향필터 연관도가 높은 순으로 아이템을 추천하는 이벤트에 따른 아이템 추천 서버.
  20. 제 14 항에 있어서,
    상기 이벤트-취향필터 연관도는 관리자에 의해 입력되는 이벤트에 따른 아이템 추천 서버.
  21. 제 14 항에 있어서,
    상기 이벤트-취향필터 연관도는 상기 이벤트와 취향필터의 거리 또는 취향필터의 빈도 기준으로 산정되는 이벤트에 따른 아이템 추천 서버.
  22. 제 14 항에 있어서,
    상기 이벤트-취향필터 연관도는 상기 취향필터에 대한 하위 키워드들이 추출되고 상기 하위 키워드들과 상기 이벤트와의 연관도를 이용하여 산정되는 이벤트에 따른 아이템 추천 서버.
  23. 제 15항에 있어서,
    상기 아이템-취향필터 연관도는 상기 아이템과 취향필터의 거리 또는 취향필터의 빈도 기준으로 산정되는 이벤트에 따른 아이템 추천 서버.
  24. 제 15항에 있어서,
    상기 아이템-취향필터 연관도는 상기 취향필터에 대한 하위 키워드들이 추출되고 상기 하위 키워드들과 상기 아이템과의 연관도를 이용하여 산정되는 이벤트에 따른 아이템 추천 서버.
KR1020180075485A 2018-06-29 2018-06-29 이벤트에 따른 아이템 정보 분포 제공 장치 및 방법 KR20200002223A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020180075485A KR20200002223A (ko) 2018-06-29 2018-06-29 이벤트에 따른 아이템 정보 분포 제공 장치 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180075485A KR20200002223A (ko) 2018-06-29 2018-06-29 이벤트에 따른 아이템 정보 분포 제공 장치 및 방법

Publications (1)

Publication Number Publication Date
KR20200002223A true KR20200002223A (ko) 2020-01-08

Family

ID=69154293

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180075485A KR20200002223A (ko) 2018-06-29 2018-06-29 이벤트에 따른 아이템 정보 분포 제공 장치 및 방법

Country Status (1)

Country Link
KR (1) KR20200002223A (ko)

Similar Documents

Publication Publication Date Title
US11397740B2 (en) Method and apparatus for providing information by using degree of association between reserved word and attribute language
JP2015531912A (ja) ソーシャルグラフ情報に基づく構造化検索クエリ
US20230419720A1 (en) Method for managing item recommendation using degree of association between language unit and usage history
JP6932162B2 (ja) 地域に基づくアイテム推薦端末装置及びアイテム推薦情報提供方法。
KR101955920B1 (ko) 속성 언어를 이용한 검색 방법 및 장치
KR102226742B1 (ko) 예약어를 이용한 정보 제공 방법 및 장치
KR102279125B1 (ko) 취향필터에 기반한 추천 정보 제공 단말 및 장치
KR102335408B1 (ko) 영화 속성 언어 관리 방법 및 장치
KR102195691B1 (ko) 주종 및 주량에 따른 음식점 추천 장치 및 방법
KR20200006421A (ko) 이벤트에 따른 핫플레이스 추천 장치 및 방법
KR20200012252A (ko) 음식점 관련 아이템 추천 장치 및 방법.
KR20200002223A (ko) 이벤트에 따른 아이템 정보 분포 제공 장치 및 방법
KR102184962B1 (ko) 음성 입력 처리 시스템 및 그 방법
US20200341977A1 (en) Method and apparatus for managing attribute language
KR102340403B1 (ko) 언어 단위를 이용한 여행지 추천 항목 관리 방법 및 장치

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application