Chomsky Normal Form 방법 : CYK 파서 성능 영향?


9

차트 파서는 Chomsky 표준 양식을 기반으로 또는 생산 규칙을 ​​기반으로 직접 구현할 수 있습니다. 현재 Chomsky 표준 양식을 사용하는 CYK 차트 파서가 있다고 가정합니다. 이진화는 고유하게 정의되지 않았습니다. 이는 CYK 차트 구문 분석의 성능에 영향을 줍니까? CYK 차트 파서의 성능을 향상시키기 위해이를 활용할 수 있습니까?


이 접근법은 같은 크기의 문법을 만듭니다. CYK는 항상 전체 테이블을 채우므로 "적합한 규칙이 있습니까?"확인 속도를 높일 수 있습니다. 따라서 규칙 수만 문법 구조가 아닌 영향을 미칠 것으로 예상합니다.
Raphael

이진화에 사용 된 방법은 문법의 크기에도 영향을 미쳐 CYK 성능에 영향을 미칩니다. informatica-didactica.de/cmsmadesimple/… CNF에 대한 몇 가지 대안을 논의합니다
Max

답변:


6

근본적인 복잡성은 변할 수 없다는 것이 명백한 대답이지만, 실제로 만나게 될 문자열을 파싱하기위한 더 나은 알고리즘이있을 수 있습니다. 그러나 문제는 개별 문법 생성 (문제의 A, B 및 C)의 상대적 빈도가 적고 하나의 이진화가 다른 이진화에 의해 생성 될 수 있는 사용되지 않는 막 다른 구문 의 문제인 것 같습니다 .

약간의 검색으로 CKY Parsing (Song, Ding 및 Lin, EMNLP 2008)에 대한 더 나은 이진화를 발견 했습니다. 실제로 예상되는 문자열과 비교하여 "더 나은"또는 "더 나쁜"이진화를 선택할 있다고 결론 지은 것 같습니다 파싱해야합니다. 실제로 최소화하고자하는 "데드 엔드 파싱 (dead end parses)"의 이름은 불완전한 구성 요소 인 것 같습니다 . 첫 페이지에는 좋은 예가 있습니다.


프로덕션 (S-> ABC) (T-> ABD)을 포함한 문법을 ​​고려하십시오. "BC"앞에 항상 "A"가 있지만 "AB"뒤에 "C"가없는 경우 B와 C를 결합하면 데드 엔드가 줄어들고 상대 주파수는 관련이 없습니다. 단어가 무작위로 나타나는 경우 "몇 가지"와 "많은"에 대한 당신의 요점은 의미가 있지만, Song, Ding 및 Lin 이하 고있는 것은 ngram 주파수를 이용하는 것입니다. 또한 필자의 예에서는 공유를 활용하여 "AB"이진화로 이길 수도 있다고 지적합니다.
Rob Simmons

4

실제로 Chomsky Normal Form (CNF)은 CYK를 실행할 필요가 없으며 이진화 만 수행합니다. 이진화는 파싱의 입방체 복잡성을 보존하는 데 필수적이지만 비 단말기 (NT)에만 중요합니다. 그러나 두 개의 비 단말기 및 일부 터미널 만 포함하는 규칙이 있으면 CYK 알고리즘이 프로그래밍 및 설명하기가 더 복잡해집니다.

당신이 말했듯이, 이진화를 수행하는 많은 방법이 있습니다. 어떤 것들은 다른 것보다 작은 문법을 낳을 것입니다. 예를 들어

X -> B C D
Y -> B C E 

로 이진화 할 수 있습니다

X -> Z D
Y -> Z E
Z -> B C

따라서 계산 및 결과 크기를 줄일 수있는 인수 분해를 통해 하나의 규칙을 저장합니다.

그러나 다른 규칙을 사용하면 시작이 아닌 규칙의 끝을 인수 분해 할 수 있습니다.

Rob Simmons의 답변 에서 인용 한 Song, Ding 및 Lin작업에 익숙하지 않습니다 . 아이디어는 흥미롭지 만 계산을 최적화하는 다른 방법과 비교할 때 얼마나 효과적 일지 궁금합니다. 나는 그렇게 두려워하지 않습니다.

요점은 순수 CKY 알고리즘에 대해서만 문제를 분석하는 것이 학문적이지만 비용이 많이 드는 운동으로 여겨지므로 막 다른 구문 분석을 크게 개선 할 수있는 다른 종류의 최적화가 있기 때문입니다.

CYK는 모두 동일한 동적 프로그래밍 모델을 기반으로하는 알고리즘 계열에서 가장 간단한 변형 중 하나 일뿐입니다. 이 알고리즘의 가장 간단한 버전은 동적 프로그래밍으로 알려진 것이 아니라 제품 간으로 알려져 있기 때문에 분명히 말하고 있습니다. 그것은 인해, CF 문법 F의 언어와 FSA A의 정규 언어의 교차로를 생성하는 CF 문법 G의 오래된 건축 인 바 힐렐, PERLES 및 샤미르 (1961) 로, 1995 년에 랭 말했다 .

동적 프로그래밍에 기반한 모든 차트 파서 또는 일반 CF 파서는 해당 교차 제품 구성의 "최적화 된"변형으로 볼 수 있으며, 최적화는 주로 파서의 쓸모없는 계산을 피하기 위해 사용됩니다. 그러나 쓸모없는 계산을 피하면 유용한 것들이 복제되어 더 나빠질 수 있으므로 문제는 미묘합니다.

상향식이기 때문에 CKY 알고리즘은 문법의 공리에서 파생 될 수없는 부분 구문 분석의 쓸모없는 계산을 생성합니다.

GLR 파서 와 같은 알고리즘 (결함이있는 버전이 게시되었지만 더 잘 알려진 것 중 하나라고 함)에는 비용이 많이 드는 그러한 쓸모없는 계산을 피할 수있는 하향식 지식이 있습니다. 쓸모없는 계산을 절약하는 것과 관련하여 다른 동작을 가진 다른 많은 변형이 있습니다.

이 최적화 전략을 염두에두고 이진화 전략을 분석해야합니다. 사소한 문제가 될 수있는 것을 최적화하고 더 강력한 기술을 무시하는 요점은 무엇입니까?

구문 분석 프로세스의 최적화는 또한 모든 가능한 구문 분석을 나타내는 구문 분석 구조의 "품질"과 밀접하게 연결되어 있으며 종종 (공유) 구문 분석 포리스트라고합니다. 나는 또 다른 대답 에서 그것을 토론합니다 .

이러한 문제 중 일부는 문헌에서 논의됩니다. 예를 들어 Billot와 Lang 은 구문 분석 전략과 관련하여 이진화의 일부 측면을 분석합니다.

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