자연어 쿼리를 처리하는 방법?


11

자연어 쿼리에 대해 궁금합니다. 스탠포드는 자연 언어 처리를위한 강력한 소프트웨어 세트를 가지고 있습니다 . 또한 Apache OpenNLP 라이브러리텍스트 엔지니어링을위한 일반 아키텍처를 보았습니다 .

자연어 처리에는 엄청나게 많은 용도가 있으며 이러한 프로젝트의 문서를 빨리 ​​흡수하기 어렵게 만듭니다.

간단한 질문을 SQL로 기본 변환하는 데 필요한 작업을 개략적으로 간략하게 설명 할 수 있습니까?

순서도의 첫 번째 사각형은 약간의 미스터리입니다.

여기에 이미지 설명을 입력하십시오

예를 들어 다음과 같이 알고 싶습니다.

How many books were sold last month?

그리고 나는 그것을 번역하고 싶습니다.

Select count(*) 
  from sales 
  where 
   item_type='book' and 
   sales_date >= '5/1/2014' and 
   sales_date <= '5/31/2014'

답변:


6

자연어 쿼리는 매우 복잡하여 일반화하기가 매우 어려울 수 있습니다. 높은 수준에서 나는 명사와 동사의 관점에서 사물을 생각하려고 노력할 것입니다.

그렇다면 지난달에 몇 권의 책이 팔렸습니까?

구문 분석기로 문장을 세분화하여 시작하면 다음과 유사한 트리 형식을 반환합니다.

여기에 이미지 설명을 입력하십시오

주제 책, 과거 판매 행위를 나타내는 복합적 구두 문구 및 한 달의 시간이 집중된 명사구가 있음을 알 수 있습니다.

수정 자에 대한 주제를 더 자세히 설명 할 수 있습니다. 책은 "얼마나 많은지", 한 달은 "마지막"입니다.

문장을 세분화하면 해당 요소를 SQL 언어에 매핑해야합니다 (예 : = = count, books => book, sold => sales, month => sales_date (interval) 등).

마지막으로, 언어 요소가 있으면 다른 엔티티가 서로 상호 작용하는 방식에 대한 일련의 규칙을 제시하면됩니다.

item_type = 'book'및 sales_date> = '5/1/2014'및 sales_date <= '5/31/2014'인 판매에서 개수 (*)를 선택하십시오.

이것은 내가 시작하는 방법에 대한 높은 수준이며, 내가 언급 한 거의 모든 단계는 사소한 것이 아니며 실제로 토끼 구멍은 끝이 없을 수 있습니다. 이렇게하면 많은 점들이 연결됩니다.


1

간단한 질문을 답으로 바꾸는 것은 간단 하지 않습니다.

기술 전반에 걸쳐 광범위하고 정확하게이를 수행하는 최초의 기술이 큰 승자가 될 것입니다.

그러나 인공 지능 (예 : IBM Watson, Amazon Alexa)의 "질문에 답하기"라는 격차를 메우는 것도 있습니다. 이를 위해서는 문제의 데이터, 데이터 저장소의 내용 및 명사, 동사 및 대명사가 관련된 언어 복잡성을 해결해야합니다.

Microsoft는 English Query로 여기에 모험을 떠났지만 중단했습니다. Kueri.me 는 같은 일을하는 파이썬 기반 플랫폼입니다.

SQL (Structured Query Languages) 등, SOQL, MDX, Hive, Impala 등이 구식 SQL을 사용합니다. 아직 많은 부분을 대체하지는 않았지만이 모든 부분은 더 큰 "최종 목표"에 대한 작은 수정 사항이며 인공 지능 (AI), 특히 기계 학습에 있습니다.

질문은 :

"컴퓨터가 원하는 것을 알아낼 수 있습니까?"

아직. 언어 학자, 수학자, 엔지니어 등이 파이 조각에 기여하기 위해 달콤한 인공 지능 및 기계 학습 케이크 중 일부를 즐길 수 있습니다.


0

일반 텍스트 메시지를 SQL로 구문 분석하는 구문 분석기를 작성하는 방법에는 여러 가지가 있습니다. 예를 들어 문법 기반 파서를 만들고 NLP 알고리즘을 사용하여 구조적 쿼리를 작성할 수 있습니다. 전자 상거래와 같이 한 도메인에서 이미 파싱 된 메시지가 많이있는 경우 Machine Learning 접근 방식을 시도하여 추가 구문 분석에 사용할 수 있습니다.

그러나 가장 좋은 방법은 텍스트를 SQL로 변환하기 위해 문법 기반 구문 분석기와 구문을 수정하고 오타를 근절하여 규칙 기반 문법을 보완하기 위해 ML을 결합하는 것입니다.

다른이 접근 방식에 대해 자세히 알아보기 여기 .

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.