문제

나을 배우려고 노력 CYK 분석하는 알고리즘.

이 설정의 문법 규칙,결과 테이블이 올바른지에 대한 두 개의 주어진 문장은?

S -> NP VP
VP -> VB NP
NP -> DT NN
PP -> IN NP
NP -> NP PP
NP -> NN
VP -> VP PP
IN -> with
NN -> dog
NN -> cat
VB -> ate
NN -> mouse
DT -> the


['S']
[None, None]
[None, None, 'VP']
['NP', None, None, 'NP']
['DT', 'NN', 'VB', 'DT', 'NN']
['the', 'cat', 'ate', 'the', 'dog']


['S']
['NP', None]
['NP', None, 'VP']
['NP', None, None, 'NP']
[None, None, 'VP', None, None]
[None, None, 'VP', None, None, 'PP']
['NP', None, None, 'NP', None, None, 'NP']
['DT', 'NN', 'VB', 'DT', 'NN', 'IN', 'DT', 'NN']
['the', 'cat', 'ate', 'the', 'dog', 'with', 'the', 'cat']
도움이 되었습니까?

해결책

할 수 있습을 최소화하기 위해 노력의 문법 먼저,몇 가지가 있기 때문에 불필요한 규정 또한 그 이유는 not in CNF.

그것을 보고 더 많은 간결하게,당신이이 일어날 None 에 첫 번째 예에서,두 번째 행에는 두 번째 열에 있습니다.거기에는 그것이 실제로 가능하가 S, 지만,이후에 논리 CYK 할 수 없는 추가 등과 같은 최적화 NP->NN.거기에서 S -> NP VP 앞서 언급한 None 셀룰라가 없습니다.때문에 CYK 수행할 수 없는 그, 문법에 있어야 합니다 CNF.그래서,기본적으로 거칠게 다음과 같를 적용 하려고 하는 C 컴파일러에서는 C++프로그램(이 없는 C++라이브러리)입니다.당신 lucky 도 올바른 결과를 얻을 상단에 있습니다.

는 말했다,나는가에 탐닉하는 두 번째 예는 당신입니다.

을 명확히 하기 위해,문법에 CNF 이 있는 경우 규칙 이러한 두 가지 형태:

S->AB
A->a

그래서 명확하게 같은 뭔가 NP -> NN 지에 CNF.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top