Traitement en cours

Veuillez attendre...

Paramétrages

Paramétrages

Aller à Demande

1. WO2020111314 - APPAREIL ET PROCÉDÉ D'INTERROGATION-RÉPONSE BASÉS SUR UN GRAPHE CONCEPTUEL

Document

명세서

발명의 명칭

기술분야

1  

배경기술

2   3   4  

발명의 상세한 설명

기술적 과제

5  

과제 해결 수단

6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   22   23  

발명의 효과

24  

도면의 간단한 설명

25   26   27   28   29  

발명의 실시를 위한 형태

30   31   32   33   34   35   36   37   38   39   40   41   42   43   44   45   46   47   48   49   50   51   52   53   54   55   56   57   58   59   60   61   62   63   64   65   66   67   68   69   70   71   72   73   74   75   76   77   78   79   80   81   82   83   84   85   86   87   88   89  

청구범위

1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18  

도면

1   2   3   4   5  

명세서

발명의 명칭 : 개념 그래프 기반 질의응답 장치 및 방법

기술분야

[1]
본 발명은 개념 그래프 기반 질의응답 기술에 관한 것이다.

배경기술

[2]
질의응답을 위해 다양한 방법들이 연구되고 있다.
[3]
우선, 두 개의 개념 그래프를 이용하여 확장 그래프를 생성하고, 외부로부터 입력되는 질문을 토대로 생성한 질문 그래프와 확장 그래프를 토대로 정답 노드를 찾아 질문에 대한 정답을 도출하는, 개념 그래프 매칭을 이용한 질의응답 방법이 있다. 이 질의응답 방법을 이용하여 질의에 응답하는 경우 질문 그래프와 모든 문서 그래프간 매칭이 필요하기 때문에 오랜 시간이 소요되어, 질의 응답 속도가 느려지는 문제점이 있다.
[4]
최근에는 질의 및 질의에 대한 응답 문장들로 구성된 말뭉치의 임베딩 벡터를 생성하고, 임베딩 벡터들 사이의 벡터 유사도를 기준으로 질의에 대한 응답을 결정하는 방법이 활용되었다. 그러나, 이러한 방법은 임베딩 벡터를 생성하는 과정에서 미리 추출된 맥락 단어만을 활용하므로, 질의 및 말뭉치에서 맥락 단어와 일반 단어간의 관계성을 활용하지 못해 일반 단어로만 구성된 질의에 대해 말뭉치 내에서 검색 성능이 떨어지는 문제가 있었다.

발명의 상세한 설명

기술적 과제

[5]
본 발명은 개념 그래프 기반 질의응답 장치에서 임베딩 벡터를 생성하는데 있어, 질의 및 말뭉치 내 문장들을 구성하는 단어들 중 맥락 단어에 높은 가중치를 적용하여 질의에 대한 응답을 제공하는 기술을 제공한다.

과제 해결 수단

[6]
본 발명의 일 실시예에 따른 질의응답 장치는 말뭉치에서 말뭉치 맥락 단어를 추출하고, 가중치 규칙에 따라 상기 말뭉치 맥락 단어에 가중치를 적용하고, 입력 질의에서 질의 맥락 단어를 추출하고, 상기 가중치 규칙에 따라 상기 질의 맥락 단어에 가중치를 적용하는 가중치 적용부, 가중치가 적용된 말뭉치에 대한 복수의 말뭉치 문장 임베딩 벡터들 및 가중치가 적용된 입력 질의에 대한 질의 문장 임베딩 벡터를 생성하고, 상기 복수의 말뭉치 문장 임베딩 벡터들과 상기 질의 문장 임베딩 벡터 사이의 벡터 유사도를 기준으로 상기 복수의 말뭉치 문장 임베딩 벡터들 중에서 대상 문장 임베딩 벡터를 결정하는 맥락 유사도 결정부, 상기 대상 문장 임베딩 벡터에 대응하는 대상 개념 그래프를 결정하고, 상기 대상 개념 그래프에 포함된 적어도 하나 이상의 개념들 각각에 대한 그래프 매칭 점수를 계산하여, 상기 입력 질의에 대응하는 적어도 하나 이상의 후보 개념들을 결정하는 후보 응답 결정부, 그리고 상기 후보 개념들 중에서 미리 설정된 수만큼의 개념을 상기 입력 질의에 대한 응답으로 결정하는 응답 결정부를 포함한다.
[7]
상기 가중치 적용부는 텍스트 분석 알고리즘을 이용하여 상기 말뭉치 및 상기 입력 질의로부터 상기 말뭉치 맥락 단어 및 상기 질의 맥락 단어를 추출한다.
[8]
상기 말뭉치 맥락 단어 및 상기 질의 맥락 단어는 특정 카테고리에 해당하는 단어이고, 상기 가중치 적용부는 상기 말뭉치 맥락 단어 및 상기 질의 맥락 단어에 미리 설정된 가중치를 적용한다.
[9]
상기 특정 카테고리는 시간 카테고리 또는 장소 카테고리 중 적어도 하나를 포함한다.
[10]
상기 미리 설정된 가중치는 상기 말뭉치 및 상기 입력 질의에 포함된 단어들 중에서, 상기 말뭉치 맥락 단어 및 상기 질의 맥락 단어에 해당하지 않는 단어에 적용되는 가중치보다 높다.
[11]
상기 맥락 유사도 결정부는 상기 가중치가 적용된 말뭉치 및 상기 가중치가 적용된 입력 질의에 대해 벡터화 알고리즘을 이용하여 상기 복수의 말뭉치 문장 임베딩 벡터들 및 상기 질의 문장 임베딩 벡터를 생성한다.
[12]
상기 맥락 유사도 결정부는 벡터 유사도 판단 알고리즘을 이용하여 상기 복수의 말뭉치 문장 임베딩 벡터들과 상기 질의 문장 임베딩 벡터 사이의 벡터 유사도를 각각 계산하고, 상기 복수의 말뭉치 문장 임베딩 벡터들 중에서 상기 벡터 유사도가 높은 문장 임베딩 벡터를 상기 대상 문장 임베딩 벡터로 결정한다.
[13]
상기 질의응답 장치는 상기 말뭉치로부터 개념, 관계 및 속성을 추출하고, 상기 추출한 개념, 관계 및 속성을 이용하여 상기 말뭉치에 대한 복수의 개념 그래프들을 생성하고, 상기 말뭉치 내 동일한 문장에서 비롯된 개념 그래프와 말뭉치 문장 임베딩 벡터를 대응시켜 저장하는 개념 그래프 관리부를 더 포함하고, 상기 후보 응답 결정부는 상기 복수의 개념 그래프들 중에서, 상기 대상 문장 임베딩 벡터와 동일한 문장에서 비롯된 개념 그래프를 상기 대상 개념 그래프로 결정한다.
[14]
상기 응답 결정부는 상기 복수의 후보 개념들 중에서 상기 그래프 매칭 점수가 높은 상기 미리 설정된 수만큼의 개념을 상기 입력 질의에 대한 응답으로 결정한다.
[15]
본 발명의 일 실시예에 따른 질의응답 장치가 입력 질의의 응답을 결정하는 방법은 입력 질의에서 추출한 맥락 단어에 가중치 규칙에 따라 가중치를 적용하고, 말뭉치에서 추출한 맥락 단어에 상기 가중치 규칙에 따라 가중치를 적용하는 단계, 가중치가 적용된 입력 질의에 대한 질의 문장 임베딩 벡터를 생성하고, 가중치가 적용된 말뭉치에 대한 복수의 말뭉치 문장 임베딩 벡터들을 생성하는 단계, 상기 질의 문장 임베딩 벡터와 상기 복수의 말뭉치 문장 임베딩 벡터들 사이의 벡터 유사도를 각각 계산하고, 상기 복수의 말뭉치 문장 임베딩 벡터들 중에서 상기 벡터 유사도가 높은 문장 임베딩 벡터를 대상 문장 임베딩 벡터로 결정하는 단계, 상기 대상 문장 임베딩 벡터에 대응하는 대상 개념 그래프를 결정하고, 상기 대상 개념 그래프에 포함된 적어도 하나 이상의 개념들 각각에 대한 그래프 매칭 점수를 계산하여, 상기 입력 질의에 대응하는 적어도 하나 이상의 후보 개념들을 결정하는 단계, 그리고 상기 후보 개념들 중에서 미리 설정된 수만큼의 개념을 상기 입력 질의에 대한 응답으로 결정하는 단계를 포함한다.
[16]
상기 가중치를 적용하는 단계는 텍스트 분석 알고리즘을 이용하여 상기 입력 질의 및 상기 말뭉치로부터 맥락 단어를 추출하고, 추출한 맥락 단어에 미리 설정된 가중치를 적용한다.
[17]
상기 추출한 맥락 단어는 시간 정보 카테고리 또는 장소 정보 카테고리 중 적어도 하나에 해당한다.
[18]
상기 미리 설정된 가중치는 상기 입력 질의 및 상기 말뭉치에 포함된 단어들 중에서, 상기 추출한 맥락 단어에 해당하지 않는 단어에 적용되는 가중치보다 높다.
[19]
상기 질의 문장 임베딩 벡터 및 상기 복수의 말뭉치 문장 임베딩 벡터들을 생성하는 단계는 상기 가중치가 적용된 입력 질의 및 상기 가중치가 적용된 말뭉치에 대해 벡터화 알고리즘을 이용하여 상기 질의 문장 임베딩 벡터 및 상기 복수의 말뭉치 문장 임베딩 벡터들을 생성한다.
[20]
상기 벡터 유사도가 높은 임베딩 벡터를 대상 문장 임베딩 벡터로 결정하는 단계는 벡터 유사도 판단 알고리즘을 이용하여 상기 복수의 말뭉치 문장 임베딩 벡터들과 상기 질의 문장 임베딩 벡터 사이의 벡터 유사도를 각각 계산하고, 상기 복수의 말뭉치 문장 임베딩 벡터들 중에서 상기 벡터 유사도가 가장 높은 임베딩 벡터를 상기 대상 문장 임베딩 벡터로 결정한다.
[21]
상기 응답 결정 방법은 상기 대상 개념 그래프를 결정하는 단계 이전에, 상기 말뭉치로부터 개념, 관계 및 속성을 추출하는 단계, 상기 추출한 개념, 관계 및 속성을 이용하여 상기 말뭉치에 대한 복수의 개념 그래프들을 생성하는 단계, 그리고 상기 말뭉치 내 동일한 문장에서 비롯된 개념 그래프와 문장 임베딩 벡터를 대응시켜 저장하는 단계를 더 포함한다.
[22]
상기 대상 개념 그래프를 결정하는 단계는 상기 복수의 개념 그래프들 중에서, 상기 대상 문장 임베딩 벡터와 동일한 문장에서 비롯된 개념 그래프를 상기 대상 개념 그래프로 결정한다.
[23]
상기 입력 질의에 대한 응답으로 결정하는 단계는 상기 후보 개념들 중에서 상기 그래프 매칭 점수가 높은 상기 미리 설정된 수만큼의 개념을 상기 입력 질의에 대한 응답으로 결정한다.

발명의 효과

[24]
본 발명에 따르면, 질의 및 말뭉치 내 문장들을 구성하는 단어들 중 특정 카테고리에 해당하는 맥락 단어에 일반 단어보다 높은 가중치를 적용하는바, 맥락 단어를 일반 단어와 효율적으로 구분할 수 있고, 이를 통해 질의에 대한 응답 결정의 성능을 향상시킬 수 있다.

도면의 간단한 설명

[25]
도 1은 본 발명의 실시예에 따른 질의응답 장치를 도시한 도면이다.
[26]
도 2는 가중치 적용부가 문장의 맥락 단어들에 가중치를 적용하고, 맥락 유사도 결정부가 가중치가 적용된 문장을 이용하여 문장 임베딩 벡터를 생성하는 예시를 설명하는 도면이다.
[27]
도 3은 맥락 유사도 결정부가 문장 임베딩 벡터 사이의 유사도를 계산하는 방법을 설명하는 도면이다.
[28]
도 4는 개념 그래프 관리부가 개념 그래프들을 생성하는 방법을 설명하는 도면이다.
[29]
도 5는 질의응답 장치가 입력 질의의 응답을 결정하는 방법을 설명하는 도면이다.

발명의 실시를 위한 형태

[30]
아래에서는 첨부한 도면을 참고로 하여 본 발명의 실시예에 대하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 그리고 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.
[31]
명세서 전체에서, 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다.
[32]
본 명세서에서, "맥락 단어"는 질의 또는 말뭉치 내 문장들에서 장소 또는 시간 중 적어도 하나에 대한 정보를 포함하는 단어를 지칭한다. 예를 들면, 문장 "In 1705, who was the first scientist to be knighted?"에서, "맥락 단어"는 시간에 대한 정보를 나타내는 단어 "1705"이고, "맥락 단어"가 아닌 이외의 단어들 "In", ",", "who", "was", "the", "first", "scientist", "to", "be", knighted" 및 "?"는 일반 단어에 해당한다.
[33]
또한, 본 명세서에서, "문장 임베딩 벡터"는 문장에 대한 함축적인 의미를 나타내는 고정 길이의 k차원의 벡터를 지칭한다. 따라서, 본 명세서에서, "말뭉치 문장 임베딩 벡터"는 말뭉치를 구성하는 문장들에 대한 함축적인 의미를 나타내는 고정 길이의 k차원의 벡터를 지칭하며, "질의 문장 임베딩 벡터"는 문장 형태의 질의에 대한 함축적인 의미를 나타내는 고정 길이의 k차원의 벡터를 지칭한다.
[34]
이하 도면을 참조로 하여 본 발명의 실시예에 따른 개념 그래프 기반 질의응답 장치 및 이를 이용한 질의응답 방법에 대해 설명한다.
[35]
도 1은 본 발명의 실시예에 따른 질의응답 장치를 도시한 도면이고, 도 2는 가중치 적용부가 문장의 맥락 단어들에 가중치를 적용하고, 맥락 유사도 결정부가 가중치가 적용된 문장을 이용하여 문장 임베딩 벡터를 생성하는 예시를 설명하는 도면이고, 도 3은 맥락 유사도 결정부가 문장 임베딩 벡터 사이의 유사도를 계산하는 방법을 설명하는 도면이고, 도 4는 개념 그래프 관리부가 개념 그래프들을 생성하는 방법을 설명하는 도면이다.
[36]
도 1을 참고하면, 질의응답 장치(100)는 적어도 하나의 프로세서에 의해 구동되는 컴퓨팅 디바이스일 수 있으며, 가중치 적용부(110), 맥락 유사도 결정부(120), 개념 그래프 관리부(130), 후보 응답 결정부(140) 및 응답 결정부(150)를 포함한다. 본 발명의 실시예에서는 설명의 편의를 위하여 상기의 구성 요소만을 언급하고 있으나, 질의응답에 필요한 추가 구성 요소들을 포함할 수 있다.
[37]
가중치 적용부(110)는 말뭉치에서 말뭉치 맥락 단어를 추출하고, 입력 질의에서 질의 맥락 단어를 추출한다.
[38]
구체적으로, 가중치 적용부(110)는 텍스트 분석 알고리즘을 이용하여 말뭉치 및 입력 질의로부터 말뭉치 맥락 단어 및 질의 맥락 단어를 각각 추출한다.
[39]
이 경우, 말뭉치 맥락 단어 및 질의 맥락 단어는 특정 카테고리에 해당하는 단어이고, 특정 카테고리는 시간 카테고리 또는 장소 카테고리 중 적어도 하나를 포함할 수 있다.
[40]
예를 들면, 가중치 적용부(110)는 GeoNames와 같은 지명 사전 데이터베이스(미도시)와 연동하여 개체명 인식 알고리즘(Named-Entity Recognition, NER)을 이용해 말뭉치 또는 입력 질의로부터 장소에 대한 정보를 포함하는 맥락 단어를 추출할 수 있다.
[41]
또한, 가중치 적용부(110)는 규칙 기반 방법으로 말뭉치 또는 입력 질의로부터 시간에 대한 정보를 포함하는 맥락 단어를 추출할 수 있다. 특정 문장에서 단어를 추출하는 방법은 이미 공지된 기술이므로 본 명세서에서는 자세한 설명을 생략한다.
[42]
본 명세서에서 "맥락 단어"에 대해 앞서 정의한 바에 따라, 말뭉치 맥락 단어들은 말뭉치를 구성하는 문장들에서 장소 또는 시간 중 적어도 하나에 대한 정보를 포함하는 단어이고, 질의 맥락 단어는 문장 형태의 질의에서 장소 또는 시간 중 적어도 하나에 대한 정보를 포함하는 단어를 의미한다.
[43]
가중치 적용부(110)는 가중치 규칙에 따라 말뭉치 맥락 단어 및 질의 맥락 단어에 가중치를 적용한다.
[44]
구체적으로, 가중치 적용부(110)는 말뭉치 맥락 단어 및 질의 맥락 단어에 미리 설정된 가중치를 적용하며, 미리 설정된 가중치는 말뭉치 및 입력 질의에 포함된 단어들 중에서, 말뭉치 맥락 단어 및 질의 맥락 단어에 해당하지 않는 단어에 적용되는 가중치보다 높을 수 있다.
[45]
맥락 유사도 결정부(120)는 가중치가 적용된 말뭉치 및 가중치가 적용된 입력 질의에 대해 벡터화 알고리즘을 이용하여 복수의 말뭉치 문장 임베딩 벡터들 및 질의 문장 임베딩 벡터를 생성한다.
[46]
도 2는 가중치 적용부가 문장의 맥락 단어들에 가중치를 적용하고, 맥락 유사도 결정부가 가중치가 적용된 문장을 이용하여 문장 임베딩 벡터를 생성하는 예시를 설명하는 도면이다.
[47]
도 2를 참고하면, 예를 들어 문장 "H.Gilbert is an American 20c singer"에 대해 맥락 유사도 결정부가 문장 임베딩 벡터를 생성하는 경우, 가중치 적용부(110)는 문장을 구성하는 단어들 중 장소에 대한 정보를 포함하는 맥락 단어인 "American" 및 시간에 대한 정보를 포함하는 맥락 단어인 "20c"에 일반 단어들보다 높은 가중치를 적용할 수 있다. 예를 들면, 가중치 적용부(110)는 일반 단어들에 0.5의 가중치를 적용하고, 맥락 단어들에 0.5 내지 1의 가중치를 적용할 수 있다.
[48]
맥락 유사도 결정부(120)는 문장을 구성하는 각 단어들에 대한 단어 임베딩 벡터를 대상으로 맥락 어텐션을 이용하여 맥락 단어들에 일반 단어들 보다 높은 가중치를 적용한다. 도 2에서, L_Att는 장소 정보 카테고리에 해당하는 맥락 단어의 단어 임베딩 벡터에 높은 가중치를 처리하는 맥락 어텐션이고, T_Att는 시간 정보 카테고리에 해당하는 맥락 단어의 단어 임베딩 벡터에 높은 가중치를 처리하는 맥락 어텐션이다.
[49]
이후, 맥락 유사도 결정부(120)는 단어들 사이의 유사성을 결정하고, 문장 전체에 대한 문장 임베딩 벡터를 생성한다. 문장 임베딩 벡터 생성 과정에서 일반 단어보다 맥락 단어들에 높은 가중치가 적용되는바, 맥락 단어들과 관련된 단어 임베딩 벡터는 일반 단어와 관련된 임베딩 벡터보다 높은 가중치로 학습되어 생성된 문장 임베딩 벡터에서 맥락 단어들은 높은 영향을 미치게 된다.
[50]
맥락 단어들과 일반 단어들에 동일한 가중치가 적용되는 경우, 학습 데이터에서 맥락 단어들의 사용 빈도가 일반 단어들에 비해 적은 편이기 때문에 신경망 분류기(예를 들면, Bi-LSTM)가 맥락 단어들을 잘못 분류할 확률이 높으나, 위와 같이 생성된 문장 임베딩 벡터는 맥락 단어들이 일반 단어들보다 높은 영향을 가지게 되어 신경망 분류기에서 문장을 구성하는 맥락 단어들을 보다 용이하게 분류할 수 있고, 이는 결과적으로 질의에 대한 응답 결정의 성능을 향상시킬 수 있다.
[51]
맥락 유사도 결정부(120)는 복수의 말뭉치 문장 임베딩 벡터들과 질의 문장 임베딩 벡터 사이의 벡터 유사도를 기준으로 복수의 말뭉치 문장 임베딩 벡터들 중에서 대상 문장 임베딩 벡터를 결정한다.
[52]
도 3은 맥락 유사도 결정부가 문장 임베딩 벡터 사이의 유사도를 계산하는 방법을 설명하는 도면이다.
[53]
구체적으로, 맥락 유사도 결정부(120)는 벡터 유사도 판단 알고리즘을 이용하여 복수의 말뭉치 문장 임베딩 벡터들과 질의 문장 임베딩 벡터 사이의 벡터 유사도를 각각 계산한다.
[54]
예를 들면, 도 3을 참고하면, 맥락 유사도 결정부(120)는 복수의 말뭉치 문장 임베딩 벡터 중 어느 하나와 질의 문장 임베딩 벡터 사이의 수학적 유사도를 벡터 유사도 판단 알고리즘을 이용하여 계산할 수 있고, 계산된 수학적 유사도를 두 벡터 사이의 벡터 유사도로 결정할 수 있다.
[55]
이후, 맥락 유사도 결정부(120)는 복수의 말뭉치 문장 임베딩 벡터들 중에서 벡터 유사도가 높은 문장 임베딩 벡터를 질의 문장 임베딩 벡터와 유사한 맥락을 가진 대상 문장 임베딩 벡터로 결정한다. 예를 들면, 맥락 유사도 결정부(120)는 복수의 말뭉치 문장 임베딩 벡터들 중에서 벡터 유사도가 가장 높은 문장 임베딩 벡터를 대상 문장 임베딩 벡터로 결정할 수 있다.
[56]
개념 그래프 관리부(130)는 말뭉치로부터 개념, 관계 및 속성을 추출하고, 추출한 개념, 관계 및 속성을 이용하여 말뭉치에 대한 복수의 개념 그래프들을 생성하고, 말뭉치 내 동일한 문장에서 비롯된 개념 그래프와 말뭉치 문장 임베딩 벡터를 대응시켜 저장한다.
[57]
구체적으로, 개념 그래프 관리부(130)는 말뭉치 내 문장들로부터 개념, 관계 및 속성을 각각 추출한다. 특정 문장으로부터 개념, 관계 및 속성을 추출하는 방법은 다양한 방법으로 실행할 수 있으므로, 본 발명의 실시예에서는 어느 하나의 방법으로 한정하지 않는다.
[58]
도 4는 개념 그래프 관리부가 개념 그래프들을 생성하는 방법을 설명하는 도면이다.
[59]
도 4를 참고하면, 예를 들면, 말뭉치 내 문장 "The word 'robot' firstly written in a play" (from wikipedia document titled 'robot')"에 대해, 개념 그래프 관리부(130)는 개념 및 관계로 {<robot, is_a, word> : Wikipedia:robot), (<robot, appear, play> : Wikipedia:robot)}를 추출하고, 이에 대한 개념 그래프를 생성할 수 있다.
[60]
이후, 개념 그래프 관리부(130)는 문장 "The word 'robot' firstly written in a play" (from wikipedia document titled 'robot')"의 말뭉치 문장 임베딩 벡터와 개념 그래프를 대응시켜 저장할 수 있다. 개념 그래프 관리부(130)는 말뭉치 내 문장들 각각에 대해 위와 같은 방법으로 말뭉치 문장 임베딩 벡터와 개념 그래프를 대응시켜 저장할 수 있다.
[61]
후보 응답 결정부(140)는 대상 문장 임베딩 벡터에 대응하는 대상 개념 그래프를 결정한다.
[62]
구체적으로, 후보 응답 결정부(140)는 복수의 개념 그래프들 중에서, 대상 문장 임베딩 벡터와 동일한 문장에서 비롯된 개념 그래프를 대상 개념 그래프로 결정한다. 이를 위해 후보 응답 결정부(140)는 대상 문장 임베딩 벡터를 이용하여 개념 그래프 관리부(130)에 저장된 복수의 개념 그래프들을 검색할 수 있다.
[63]
후보 응답 결정부(140)는 대상 개념 그래프에 포함된 적어도 하나 이상의 개념들 각각에 대한 그래프 매칭 점수를 계산하여, 입력 질의에 대응하는 적어도 하나 이상의 후보 개념들을 결정한다. 이때, 본 명세서에서는 그래프 매칭 점수는 센터피스(center-piece) 알고리즘 등을 사용하여 구하는 것을 예로 하여 설명하나, 반드시 이와 같이 한정되는 것은 아니다. 또한, 센터피스 알고리즘은 이미 알려진 알고리즘으로, 본 명세서에서는 상세한 설명은 생략한다.
[64]
응답 결정부(150)는 후보 개념들 중에서 미리 설정된 수만큼의 개념을 입력 질의에 대한 응답으로 결정한다.
[65]
구체적으로, 응답 결정부(150)는 복수의 후보 개념들 중에서 그래프 매칭 점수가 높은 미리 설정된 수만큼의 개념을 입력 질의에 대한 응답으로 결정한다. 예를 들면, 응답 결정부(150)는 계산한 그래프 매칭 점수를 토대로 대상 개념 그래프와 의미적으로 가까운 상위 미리 설정된 수만큼의 개념들을 추출하고, 추출한 개념들을 입력 질의에 대한 응답으로 결정하여 사용자에게 제공할 수 있다.
[66]
도 5는 질의응답 장치가 입력 질의의 응답을 결정하는 방법을 설명하는 도면이다.
[67]
도 5에서, 도 1 내지 도 4와 동일한 내용은 그 자세한 설명을 생략한다.
[68]
도 5를 참고하면, 질의응답 장치(100)는 입력 질의 및 말뭉치에서 맥락 단어를 추출한다(S100).
[69]
구체적으로, 질의응답 장치(100)는 텍스트 분석 알고리즘을 이용하여 입력 질의 및 말뭉치로부터 맥락 단어를 각각 추출한다. 이 경우, 추출한 맥락 단어는 시간 정보 카테고리 또는 장소 정보 카테고리 중 적어도 하나에 해당한다.
[70]
질의응답 장치(100)는 추출한 맥락 단어에 가중치 규칙에 따라 가중치를 적용한다(S101).
[71]
구체적으로, 질의응답 장치(100)는 추출한 맥락 단어에 미리 설정된 가중치를 적용하며, 미리 설정된 가중치는 입력 질의 및 말뭉치에 포함된 단어들 중에서, 추출한 맥락 단어에 해당하지 않는 단어에 적용되는 가중치보다 높을 수 있다.
[72]
질의응답 장치(100)는 가중치가 적용된 입력 질의에 대한 질의 문장 임베딩 벡터를 생성하고, 가중치가 적용된 말뭉치에 대한 복수의 말뭉치 문장 임베딩 벡터들을 생성한다(S103).
[73]
구체적으로, 질의응답 장치(100)는 가중치가 적용된 입력 질의 및 가중치가 적용된 말뭉치에 대해 벡터화 알고리즘을 이용하여 질의 문장 임베딩 벡터 및 말뭉치 문장 임베딩 벡터들을 각각 생성한다.
[74]
질의응답 장치(100)는 질의 문장 임베딩 벡터와 말뭉치 문장 임베딩 벡터들 사이의 벡터 유사도를 각각 계산한다(S105).
[75]
구체적으로, 질의응답 장치(100)는 벡터 유사도 판단 알고리즘을 이용하여 복수의 말뭉치 문장 임베딩 벡터들과 질의 문장 임베딩 벡터 사이의 벡터 유사도를 각각 계산한다.
[76]
질의응답 장치(100)는 말뭉치 문장 임베딩 벡터들 중에서 벡터 유사도가 높은 문장 임베딩 벡터를 대상 문장 임베딩 벡터로 결정한다(S107).
[77]
구체적으로, 질의응답 장치(100)는 복수의 말뭉치 문장 임베딩 벡터들 중에서 벡터 유사도가 가장 높은 임베딩 벡터를 대상 문장 임베딩 벡터로 결정한다.
[78]
질의응답 장치(100)는 말뭉치 내 문장들에 대한 개념 그래프를 생성하고, 생성한 개념 그래프를 말뭉치 문장 임베딩 벡터와 대응시켜 저장한다(S109).
[79]
구체적으로, 질의응답 장치(100)는 말뭉치로부터 개념, 관계 및 속성을 추출하고, 추출한 개념, 관계 및 속성을 이용하여 말뭉치에 대한 복수의 개념 그래프들을 생성한다. 이후, 질의응답 장치(100)는 말뭉치 내 동일한 문장에서 비롯된 개념 그래프와 문장 임베딩 벡터를 대응시켜 저장한다.
[80]
한편, 비록 도 5에서는 대상 문장 임베딩 벡터를 결정한 이후 개념 그래프와 문장 임베딩 벡터를 대응시켜 저장하였으나, 이후 단계에서 대상 문장 임베딩 벡터에 대응하는 대상 개념 그래프를 결정하기 이전에 개념 그래프와 문장 임베딩 벡터를 대응시켜 저장하면 족하다.
[81]
질의응답 장치(100)는 대상 문장 임베딩 벡터에 대응하는 대상 개념 그래프를 결정한다(S111).
[82]
구체적으로, 질의응답 장치(100)는 복수의 개념 그래프들 중에서, 대상 문장 임베딩 벡터와 동일한 문장에서 비롯된 개념 그래프를 대상 개념 그래프로 결정한다.
[83]
질의응답 장치(100)는 대상 개념 그래프에 포함된 적어도 하나 이상의 개념들 각각에 대한 그래프 매칭 점수를 계산하여, 입력 질의에 대응하는 적어도 하나 이상의 후보 개념들을 결정한다(S113).
[84]
질의응답 장치(100)는 후보 개념들 중에서 미리 설정된 수만큼의 개념을 입력 질의에 대한 응답으로 결정한다(S115).
[85]
구체적으로, 질의응답 장치(100)는 복수의 후보 개념들 중에서 그래프 매칭 점수가 높은 미리 설정된 수만큼의 개념을 입력 질의에 대한 응답으로 결정한다.
[86]
본 발명에 따르면, 질의 및 말뭉치 내 텍스트를 구성하는 단어들 중 특정 카테고리에 해당하는 단어들인 맥락 표현 단어들에 일반 단어보다 높은 가중치를 적용하는바, 맥락 표현 단어들을 일반 단어와 효율적으로 구분할 수 있고, 이를 통해 질의에 대한 응답 결정의 성능을 향상시킬 수 있다.
[87]
이상에서 본 발명의 실시예에 대하여 상세하게 설명하였지만 본 발명의 권리범위는 이에 한정되는 것은 아니고 다음의 청구범위에서 정의하고 있는 본 발명의 기본 개념을 이용한 당업자의 여러 변형 및 개량 형태 또한 본 발명의 권리범위에 속하는 것이다.
[88]
[89]

청구범위

[청구항 1]
질의응답 장치로서, 말뭉치에서 말뭉치 맥락 단어를 추출하고, 가중치 규칙에 따라 상기 말뭉치 맥락 단어에 가중치를 적용하고, 입력 질의에서 질의 맥락 단어를 추출하고, 상기 가중치 규칙에 따라 상기 질의 맥락 단어에 가중치를 적용하는 가중치 적용부, 가중치가 적용된 말뭉치에 대한 복수의 말뭉치 문장 임베딩 벡터들 및 가중치가 적용된 입력 질의에 대한 질의 문장 임베딩 벡터를 생성하고, 상기 복수의 말뭉치 문장 임베딩 벡터들과 상기 질의 문장 임베딩 벡터 사이의 벡터 유사도를 기준으로 상기 복수의 말뭉치 문장 임베딩 벡터들 중에서 대상 문장 임베딩 벡터를 결정하는 맥락 유사도 결정부, 상기 대상 문장 임베딩 벡터에 대응하는 대상 개념 그래프를 결정하고, 상기 대상 개념 그래프에 포함된 적어도 하나 이상의 개념들 각각에 대한 그래프 매칭 점수를 계산하여, 상기 입력 질의에 대응하는 적어도 하나 이상의 후보 개념들을 결정하는 후보 응답 결정부, 그리고 상기 후보 개념들 중에서 미리 설정된 수만큼의 개념을 상기 입력 질의에 대한 응답으로 결정하는 응답 결정부 를 포함하는 질의응답 장치.
[청구항 2]
제1항에 있어서, 상기 가중치 적용부는 텍스트 분석 알고리즘을 이용하여 상기 말뭉치 및 상기 입력 질의로부터 상기 말뭉치 맥락 단어 및 상기 질의 맥락 단어를 추출하는 질의응답 장치.
[청구항 3]
제1항에 있어서, 상기 말뭉치 맥락 단어 및 상기 질의 맥락 단어는 특정 카테고리에 해당하는 단어이고, 상기 가중치 적용부는 상기 말뭉치 맥락 단어 및 상기 질의 맥락 단어에 미리 설정된 가중치를 적용하는 질의응답 장치.
[청구항 4]
제3항에 있어서, 상기 특정 카테고리는 시간 카테고리 또는 장소 카테고리 중 적어도 하나를 포함하는 질의응답 장치.
[청구항 5]
제3항에 있어서, 상기 미리 설정된 가중치는 상기 말뭉치 및 상기 입력 질의에 포함된 단어들 중에서, 상기 말뭉치 맥락 단어 및 상기 질의 맥락 단어에 해당하지 않는 단어에 적용되는 가중치보다 높은 질의응답 장치.
[청구항 6]
제1항에 있어서, 상기 맥락 유사도 결정부는 상기 가중치가 적용된 말뭉치 및 상기 가중치가 적용된 입력 질의에 대해 벡터화 알고리즘을 이용하여 상기 복수의 말뭉치 문장 임베딩 벡터들 및 상기 질의 문장 임베딩 벡터를 생성하는 질의응답 장치.
[청구항 7]
제1항에 있어서, 상기 맥락 유사도 결정부는 벡터 유사도 판단 알고리즘을 이용하여 상기 복수의 말뭉치 문장 임베딩 벡터들과 상기 질의 문장 임베딩 벡터 사이의 벡터 유사도를 각각 계산하고, 상기 복수의 말뭉치 문장 임베딩 벡터들 중에서 상기 벡터 유사도가 높은 문장 임베딩 벡터를 상기 대상 문장 임베딩 벡터로 결정하는 질의응답 장치.
[청구항 8]
제1항에 있어서, 상기 말뭉치로부터 개념, 관계 및 속성을 추출하고, 상기 추출한 개념, 관계 및 속성을 이용하여 상기 말뭉치에 대한 복수의 개념 그래프들을 생성하고, 상기 말뭉치 내 동일한 문장에서 비롯된 개념 그래프와 말뭉치 문장 임베딩 벡터를 대응시켜 저장하는 개념 그래프 관리부 를 더 포함하고, 상기 후보 응답 결정부는 상기 복수의 개념 그래프들 중에서, 상기 대상 문장 임베딩 벡터와 동일한 문장에서 비롯된 개념 그래프를 상기 대상 개념 그래프로 결정하는 질의응답 장치.
[청구항 9]
제1항에 있어서, 상기 응답 결정부는 상기 복수의 후보 개념들 중에서 상기 그래프 매칭 점수가 높은 상기 미리 설정된 수만큼의 개념을 상기 입력 질의에 대한 응답으로 결정하는 질의응답 장치.
[청구항 10]
질의응답 장치가 입력 질의의 응답을 결정하는 방법으로서, 입력 질의에서 추출한 맥락 단어에 가중치 규칙에 따라 가중치를 적용하고, 말뭉치에서 추출한 맥락 단어에 상기 가중치 규칙에 따라 가중치를 적용하는 단계, 가중치가 적용된 입력 질의에 대한 질의 문장 임베딩 벡터를 생성하고, 가중치가 적용된 말뭉치에 대한 복수의 말뭉치 문장 임베딩 벡터들을 생성하는 단계, 상기 질의 문장 임베딩 벡터와 상기 복수의 말뭉치 문장 임베딩 벡터들 사이의 벡터 유사도를 각각 계산하고, 상기 복수의 말뭉치 문장 임베딩 벡터들 중에서 상기 벡터 유사도가 높은 문장 임베딩 벡터를 대상 문장 임베딩 벡터로 결정하는 단계, 상기 대상 문장 임베딩 벡터에 대응하는 대상 개념 그래프를 결정하고, 상기 대상 개념 그래프에 포함된 적어도 하나 이상의 개념들 각각에 대한 그래프 매칭 점수를 계산하여, 상기 입력 질의에 대응하는 적어도 하나 이상의 후보 개념들을 결정하는 단계, 그리고 상기 후보 개념들 중에서 미리 설정된 수만큼의 개념을 상기 입력 질의에 대한 응답으로 결정하는 단계 를 포함하는 응답 결정 방법.
[청구항 11]
제10항에 있어서, 상기 가중치를 적용하는 단계는 텍스트 분석 알고리즘을 이용하여 상기 입력 질의 및 상기 말뭉치로부터 맥락 단어를 추출하고, 추출한 맥락 단어에 미리 설정된 가중치를 적용하는 응답 결정 방법.
[청구항 12]
제11항에 있어서, 상기 추출한 맥락 단어는 시간 정보 카테고리 또는 장소 정보 카테고리 중 적어도 하나에 해당하는 응답 결정 방법.
[청구항 13]
제11항에 있어서, 상기 미리 설정된 가중치는 상기 입력 질의 및 상기 말뭉치에 포함된 단어들 중에서, 상기 추출한 맥락 단어에 해당하지 않는 단어에 적용되는 가중치보다 높은 응답 결정 방법.
[청구항 14]
제10항에 있어서, 상기 질의 문장 임베딩 벡터 및 상기 복수의 말뭉치 문장 임베딩 벡터들을 생성하는 단계는 상기 가중치가 적용된 입력 질의 및 상기 가중치가 적용된 말뭉치에 대해 벡터화 알고리즘을 이용하여 상기 질의 문장 임베딩 벡터 및 상기 복수의 말뭉치 문장 임베딩 벡터들을 생성하는 응답 결정 방법.
[청구항 15]
제10항에 있어서, 상기 벡터 유사도가 높은 임베딩 벡터를 대상 문장 임베딩 벡터로 결정하는 단계는 벡터 유사도 판단 알고리즘을 이용하여 상기 복수의 말뭉치 문장 임베딩 벡터들과 상기 질의 문장 임베딩 벡터 사이의 벡터 유사도를 각각 계산하고, 상기 복수의 말뭉치 문장 임베딩 벡터들 중에서 상기 벡터 유사도가 가장 높은 임베딩 벡터를 상기 대상 문장 임베딩 벡터로 결정하는 응답 결정 방법.
[청구항 16]
제10항에 있어서, 상기 대상 개념 그래프를 결정하는 단계 이전에, 상기 말뭉치로부터 개념, 관계 및 속성을 추출하는 단계, 상기 추출한 개념, 관계 및 속성을 이용하여 상기 말뭉치에 대한 복수의 개념 그래프들을 생성하는 단계, 그리고 상기 말뭉치 내 동일한 문장에서 비롯된 개념 그래프와 문장 임베딩 벡터를 대응시켜 저장하는 단계 를 더 포함하는 응답 결정 방법.
[청구항 17]
제16항에 있어서, 상기 대상 개념 그래프를 결정하는 단계는 상기 복수의 개념 그래프들 중에서, 상기 대상 문장 임베딩 벡터와 동일한 문장에서 비롯된 개념 그래프를 상기 대상 개념 그래프로 결정하는 응답 결정 방법.
[청구항 18]
제10항에 있어서, 상기 입력 질의에 대한 응답으로 결정하는 단계는 상기 후보 개념들 중에서 상기 그래프 매칭 점수가 높은 상기 미리 설정된 수만큼의 개념을 상기 입력 질의에 대한 응답으로 결정하는 응답 결정 방법.

도면

[도1]

[도2]

[도3]

[도4]

[도5]