어떻게이 왼쪽 재귀를 해결할 수 있습니까? 나는 해결책을 찾는 데 오랜 시간이 걸렸지 만 나는 그것에 투쟁한다. 문장 : Bob은 Max 자동차를 제공합니다. 여기서 보여주고 싶은 요점은 발생하는 왼쪽 재귀입니다. 어떤 NP -> NP, 어떻게이 문제를 해결할 수 있습니까? 지금 python3에서이 코드를 실행하면 충돌이 발생합니다.cfg 파서에서 왼쪽 재귀를 해결하려면 어떻게해야합니까?
import nltk.grammar
grammar = nltk.CFG.fromstring("""
S -> NP VP
VP -> V NP
NP -> "cars" | "Bob" | NP | "Max"
V -> "gives"
""")
sent = "Bob gives Max cars".split()
rd_parser = nltk.RecursiveDescentParser(grammar)
for tree in rd_parser.parse(sent):
print(tree)
오늘 이전에 같은 질문을했습니다. 코드를 사용하는 것이 더 낫지 만 기존 질문을 편집하는 대신 왜 그것을 삭제하고 다시 게시 했습니까? 이것은 사이트의 규칙에 위배됩니다. 앞으로는하지 마십시오. – alexis
나는 당신이'|'의 의미에 대해 사용하고있는 교과서를 다시 읽어야한다고 생각한다. – rici
"Bob give Max car"은 문법적 영어 문장이 아닙니다. 그러나 "밥은 맥스 차를 준다"는 괜찮습니다. 문법적 문장을 사용하면 질문의 요점이 조금 더 명확 해집니다. –