2012-07-03 3 views
0

닫힌 컨텍스트에서 특정 동작을 추출 할 수있는 솔루션을 개발하려고합니다.ANTLR을 사용하여 얕은 구문 분석

예를 들어, 예약, 영화 티켓의 맥락에서, 사용자가 말한다면 :

"나는 그것이, 카사 블랑카 될 영화의 내일 밤에 가고 싶은 나는에 싶습니다 마지막 행, 제발 "

내가 영화, 원하는 좌석, 투사의 날짜와 시간의 이름을 가져 오기위한 문법을 ​​설계했습니다, 그러나 등

, 나는 그런 개발을위한 ANTLR에 대해 생각했습니다하지만 솔루션, 정말 그런 기능을 가지고 있는지, 나는 여러 개의 루트 기호를 정의 할 수 있다면, 나는 모르겠다.

답변

2

ANTLR은 사람의 개의 언어를 구문 분석하기에 적합하지 않습니다. 너무 모호합니다. 대신 NLP을 시도하십시오. 다음은 natural language processing toolkits입니다.

+0

감사합니다. 이러한 대안을 살펴 보겠습니다. 어쨌든 ANTLR을 사용하여 특정 동작을 문장으로 식별 할 수있는 방법이 있습니까? – asuka

+0

@adsuar, * "ANTLR을 사용하여 특정 행동을 문장으로 식별 할 수있는 방법이 있습니까?"* 물론 NLP 툴킷이이를 훨씬 잘 수행합니다. 그리고이 툴킷에는 즉시 사용할 수있는 언어에 대한 문법이 있습니다. ANTLR을 사용하면 자신 만의 문법을 작성해야합니다 (다양한 영어 문장을 신뢰할 수있게 구문 분석 할 수 없습니다!). –

+0

당신이 나를 도와 주신 소프트웨어 목록에서 볼 수있는 거의 모든 소프트웨어는 코퍼에 의해 중요한 통계적 노력을하고 있습니다. 지금 나는 큰 결핍이나 협착증이 있습니다. 그래서 특정 개념을 캡처하기위한 작은 문법을 개발할 수 있기 때문에 ANTLR에서 ** 얕은 파싱 **에 대해 궁금한 점이 있습니다. – asuka

3

ANTLR에는 문법의 모호성을 처리하는 방법이 있습니다. 이 방법은 ANTLR 4에서 개선되었지만, 모호한 언어 (특히 인간 언어)를 처리하는 경우에는 ANTLR을 필연적으로 작업에 부적합하게 만드는 거대한 제한에 직면하게됩니다.

ANTLR은 결국 모호성을 해결합니다. 여러 가지 잠재적 옵션 중 하나의 특정 옵션이 올바른 솔루션이라고 결정합니다. 이 해결책은 ANTLR을 사용한 구문 분석 프로세스의 초기 단계에서 발생하기 때문에 구문 분석을 포함하는 논리와 달리 의사 결정 프로세스에 의미 논리를 통합하는 것은 매우 어렵습니다.

편집 : NLP의 컨텍스트에서 ANTLR 4에 대해 특히 흥미로운 점 중 하나는 ANTLR 4가 해당 구문 분석기의 기초로 augmented transition network을 사용한다는 사실입니다. 어딘가에 자연 언어 처리에 사용할 수 있도록 수정하는 것이 가능하다는 것을 알고 있지만 현재까지는 어떻게 작동시키는 지 알지 못했습니다. 참조 : 현재 ANTLR 4 런타임의 optimized 버전을 개발했습니다.이 버전은 현재 참고 브랜치의 약간 뒤에 있지만 이번 여름에 뒤따 랐습니다.