맨위로가기

구문 분석

"오늘의AI위키"는 AI 기술로 일관성 있고 체계적인 최신 지식을 제공하는 혁신 플랫폼입니다.
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.

1. 개요

구문 분석은 컴퓨터 언어의 소스 코드를 분석하여 자료 구조로 변환하거나, 자연어 문장의 문법적 구조를 분석하는 과정을 의미한다. 프로그래밍 언어의 구문 분석은 어휘 분석과 구문 분석 단계로 나뉘며, 파서 제네레이터를 통해 구문 분석기를 생성한다. 자연어의 경우 문맥의 복잡성으로 인해 다양한 문법과 알고리즘이 사용되며, 통계적 방법과 기계 학습을 활용하기도 한다. 심리언어학에서는 구문 분석이 언어 이해의 중요한 부분으로, 가든패스 문장, 부착 모호성, 중심 매립과 같은 문장 유형이 구문 분석 능력을 어렵게 만든다.

더 읽어볼만한 페이지

  • 구문 분석 - 패턴 매칭
    패턴 매칭은 데이터 구조나 문자열에서 특정 패턴을 찾아 식별하는 기법으로, 다양한 프로그래밍 언어와 시스템에서 사용되며 데이터 필터링, 추출 및 선언적 프로그래밍에 중요한 역할을 수행한다.
  • 구문 분석 - 낱말 분석
    낱말 분석은 자연어 처리와 컴파일 과정에서 문자열을 토큰으로 분해하는 과정으로, 렉서의 첫 단계로서 소스 코드에서 변수, 연산자 등을 식별하고 공백이나 주석을 제거하여 구문 분석기에 입력 가능한 형태로 정보를 구성한다.
  • 컴파일러 구성 - 바이너리 재컴파일러
  • 컴파일러 구성 - 낱말 분석
    낱말 분석은 자연어 처리와 컴파일 과정에서 문자열을 토큰으로 분해하는 과정으로, 렉서의 첫 단계로서 소스 코드에서 변수, 연산자 등을 식별하고 공백이나 주석을 제거하여 구문 분석기에 입력 가능한 형태로 정보를 구성한다.
구문 분석
지도 정보
기본 정보
분야컴퓨터 과학, 언어학
목적문자열 또는 기호 시퀀스의 구조를 분석
주어진 형식 문법 규칙에 따라 분석
입력 형태텍스트, 프로그램 코드, 자연어
출력 형태구문 트리, 추상 구문 트리
구문 분석 방법
하향식 구문 분석재귀 하향 분석
LL 분석
상향식 구문 분석LR 분석
SLR 분석
LALR 분석
기타 구문 분석차트 분석
CYK 분석
GLR 분석
구문 분석 단계
어휘 분석토큰 생성
구문 분석문법 구조 분석
의미 분석의미 해석
응용 분야
프로그래밍 언어컴파일러인터프리터 개발
자연어 처리문장 구조 분석
텍스트 이해
기계 번역
데이터베이스SQL 구문 분석
웹 기술HTML 및 XML 구문 분석
웹 브라우저
웹 크롤러

2. 컴퓨터 언어

컴퓨터 언어에서 파싱은 소스 코드를 분석하여 구문 트리 등의 자료 구조로 변환하는 과정이다. 이 과정은 컴파일러인터프리터에서 중요한 역할을 담당하며, 소스 코드가 프로그래밍 언어의 문법 규칙에 맞는지 검사한다. Parsing영어은 크게 두 단계로 나뉜다.


  • 어휘 분석: 소스 코드를 토큰이라는 의미 있는 단위로 분리한다.
  • 구문 분석: 토큰들의 관계를 분석하여 문법에 맞는지 확인하고, 구문 트리를 생성한다.


파서 제네레이터를 사용하면 파서 개발을 자동화할 수 있다.

2. 1. 파서의 역할

파서는 컴파일러인터프리터의 구성 요소 중 하나로, 소스 코드를 토큰 단위로 분해하고 이 토큰들의 문법적 관계를 분석하는 역할을 한다.[4] 파서는 크게 어휘 분석 단계와 구문 분석 단계로 나눌 수 있다.

  • 어휘 분석(Lexical Analysis): 입력 문자 스트림을 정규 표현식 등의 규칙에 따라 의미 있는 기호(토큰)들로 분할한다. 예를 들어, "12 * (3 + 4)^2"라는 입력은 12, *, (, 3, +, 4, ), ^, 2와 같은 토큰들로 분할된다.
  • 구문 분석(Syntax Analysis): 토큰들이 문법 규칙에 맞게 배열되었는지 확인한다. 맥락 자유 문법을 사용하여 표현식을 구성하는 요소들과 그 순서를 재귀적으로 정의한다.


구문 분석이 완료되면, 의미 분석(semantic analysis) 단계에서 구문의 의미를 파악하고 적절한 작업을 수행한다.[17] 파서 생성기를 이용하면 파서 개발을 자동화할 수 있다.

2. 2. 파서의 종류

파서는 구문 분석 방법에 따라 크게 두 가지로 나뉜다.

  • 상향식 구문 분석: 주어진 형식 문법 규칙을 상향식으로 확장하여 구문 트리를 검색하고 입력 스트림의 좌측 최우선 유도를 찾는다. 토큰은 왼쪽에서 오른쪽으로 소모되며, 모호성을 수용하기 위해 문법 규칙의 모든 대안적인 우측을 확장한다.[18]
  • 하향식 구문 분석: 입력으로 시작하여 시작 기호로 다시 작성하려고 시도한다. 가장 기본적인 요소를 찾고, 그 요소를 포함하는 요소를 찾는 방식으로 진행된다. LR 파서가 대표적인 예시이며, 시프트-리듀스 구문 분석이라고도 한다.[18]


LL 파서와 재귀 하강 파서는 좌재귀 생성 규칙을 수용할 수 없는 상향식 구문 분석기의 예시이다.[20][21] 하지만, Frost, Hafiz, Callaghan이 개발한 알고리즘은 다항 시간 내에 모호성과 좌재귀를 수용하고, 잠재적으로 지수 개수의 구문 트리에 대한 다항 크기의 표현을 생성한다.[20][21]

구문 분석기는 ''좌측 최우선 유도''를 생성하는지, ''우측 최우선 유도''를 생성하는지에 따라 구분되기도 한다. LL 파서는 좌측 최우선 유도를, LR 파서는 우측 최우선 유도를 생성한다(일반적으로 역순).[18]

그 외, 시각적 프로그래밍 언어를 위한 ''그래픽 구문 분석'' 알고리즘[22][23], 그래프 문법 기반 구문 분석기[24], "자체 확장형" 자연어 사용자 인터페이스 구성을 위한 적응적 구문 분석 알고리즘[25] 등이 존재한다.

구문 분석 방법은 적용 가능한 문법 범위에 따라 다양하게 제안되어 왔다. 역사적으로 프로그래밍 언어를 대상으로 연구가 진행되었으며, 크게 연산자 우선순위 분석법, 상향식 구문 분석법, 하향식 구문 분석법으로 분류할 수 있다.

현재는 주로 하향식 구문 분석법인 LALR(1)을 사용한 구문 분석기가 yacc, bison과 같은 파서 제네레이터에 의해 생성된다. LL법이 사용·생성되는 경우도 있다.

2. 3. 파서 개발 소프트웨어

ANTLR, Bison, Yacc 등은 파서 개발을 위한 도구들이다. 이러한 도구들은 문법 규칙을 기반으로 파서 코드를 자동으로 생성해 준다.[29] 널리 알려진 구문 분석기 개발 도구는 다음과 같다.

  • ANTLR
  • 바이슨(Bison)
  • Coco/R
  • 정의절 문법
  • GOLD
  • JavaCC
  • 레몬(Lemon)
  • 렉스(Lex)
  • LuZc
  • 파보일드(Parboiled)
  • 파섹(Parsec)
  • Ragel
  • 스피릿 파서 프레임워크(Spirit Parser Framework)
  • 구문 정의 형식(Syntax Definition Formalism)
  • SYNTAX
  • XPL
  • Yacc

2. 4. 선행 예측 (Lookahead)

선행 예측(Lookahead)은 파서가 올바른 문법 규칙을 선택하기 위해 미리 몇 개의 토큰을 살펴보는 기법이다. LL, LR, LALR 파서 등에서 선행 예측을 사용하여 파싱의 효율성을 높인다.

대부분의 프로그래밍 언어는 제한된 선행 예측(일반적으로 1개)을 사용하는 구문 분석기로 구문 분석할 수 있도록 정의되는데, 이는 이러한 방식의 구문 분석기가 더 효율적이기 때문이다. 1990년 테렌스 파가 박사 논문에서 임의의 고정 값 k에 대해 효율적인 LL(k) 구문 분석기를 위한 구문 분석기 생성기인 ANTLR을 만들면서 이러한 경향에 중요한 변화가 생겼다.[28]

LR 구문 분석기는 일반적으로 각 토큰을 확인한 후 다음과 같은 작업을 수행한다.

  • 이동(Shift): 나중에 축소하기 위해 현재 토큰을 스택에 추가한다.
  • 축소(Reduce): 스택에서 토큰을 꺼내어 구문 구성 요소를 형성한다.
  • 종료(Terminate): 파싱을 종료한다.
  • 오류(Error): 알려진 규칙이 적용되지 않는 경우이다.
  • 충돌(Conflict): 이동할지 축소할지 결정할 수 없는 경우이다.


선행 예측은 다음과 같은 두 가지 장점을 제공한다.

  • 충돌 발생 시 파서가 올바른 작업을 수행하도록 돕는다. 예를 들어, else 절이 있는 if 문을 구문 분석하는 경우가 이에 해당한다.
  • 많은 중복 상태를 제거하고 추가 스택의 부담을 줄인다. 예를 들어, C 언어의 비선행 검사 구문 분석기는 약 10,000개의 상태를 갖는 반면, 선행 검사 구문 분석기는 약 300개의 상태를 갖는다.

예시: 식 `1 + 2 * 3` 구문 분석대부분의 프로그래밍 언어와 대수 공식에서는 덧셈보다 곱셈에 더 높은 우선 순위를 부여하므로, 위 예제의 올바른 해석은 `1 + (2 * 3)`이다. 다음은 식 구문 분석 규칙 집합(문법)이다.

규칙 번호규칙 내용설명
Rule1E → E + E식은 두 식의 합이다.
Rule2E → E * E식은 두 식의 곱이다.
Rule3E → number식은 단순한 숫자이다.
Rule4+는 *보다 우선 순위가 낮다.



위의 Rule4는 의미 규칙이며, 이를 구문에 통합하도록 문법을 다시 작성할 수 있다. 그러나 모든 의미 규칙을 구문으로 변환할 수 있는 것은 아니다.

선행 검사를 사용하는 LALR 구문 분석기는 다음과 같이 작동한다.

1. 규칙3을 예상하여 입력 `1`에서 `1`을 스택으로 이동한다. 즉시 축소하지 않는다.

2. 규칙3에 따라 입력 `+`에 따라 스택 항목 `1`을 단순 식 `E`로 축소한다. 선행 예측은 `+`이므로 `E +` 경로에 있으므로 스택을 `E`로 축소할 수 있다.

3. 규칙1을 예상하여 입력 `+`에서 `+`를 스택으로 이동한다.

4. 규칙3을 예상하여 입력 `2`에서 `2`를 스택으로 이동한다.

5. 규칙3에 따라 입력 `*`에 따라 스택 항목 `2`를 식 `E`로 축소한다. 선행 검사 `*`는 앞에 `E`만 예상한다.

6. 이제 스택에는 `E + E`가 있고 입력은 `*`이다. 규칙2에 따라 이동하거나 규칙1에 따라 축소하는 두 가지 선택이 있다. 규칙4에 따라 `*`가 `+`보다 우선 순위가 높으므로 규칙2를 예상하여 `*`를 스택으로 이동한다.

7. 규칙3을 예상하여 입력 `3`에서 `3`을 스택으로 이동한다.

8. 입력 끝을 본 후 규칙3에 따라 스택 항목 `3`을 식 `E`로 축소한다.

9. 규칙2에 따라 스택 항목 `E * E`를 `E`로 축소한다.

10. 규칙1에 따라 스택 항목 `E + E`를 `E`로 축소한다.

이러한 방식으로 생성된 구문 트리는 정확하며, LALR 구문 분석기는 비선행 검사 구문 분석기보다 효율적으로 동작한다.

3. 자연어

자연어 파싱은 문장을 분석하여 그 구조와 의미를 이해하는 과정이다. 기계 번역자연어 처리 시스템에서는 인간 언어로 작성된 텍스트를 컴퓨터 프로그램이 구문 분석한다.[4] 하지만 인간 언어의 구조에는 모호성이 존재하기 때문에, 프로그램이 쉽게 구문 분석하기 어렵다.[5]

자연어 데이터를 구문 분석하기 위해서는 사용할 문법에 동의해야 한다. 구문의 선택은 언어학적 및 전산적 고려 사항 모두에 영향을 받는다. 자연어의 구문 분석은 기본적인 것은 형식 언어의 경우와 유사하지만, 임의적인 변형이 많은 복잡성과, 많은 언어에서 모호성이 있으며, 의미를 고려하지 않으면 구문이 결정되지 않는 경우도 있는 등, 독특한 어려움이 있다.

자연어 문법에서는 경우에 따라 여러 가지 해석이 가능한 문장도 존재한다. 예를 들어, "아름다운 물레방앗간의 처녀"라는 문장에는 '물레방앗간이 아름답다'는 경우와 '처녀가 아름답다'는 경우와 같이 최소한 두 가지 해석이 존재한다.

의존 관계 구조 예시 1


의존 관계 구조 예시 2


일본어 구문 분석은 주로 문절 간의 의존 관계 구조를 발견하는 것이 주된 목적이다.

"Colorless green ideas sleep furiously."와 같이, 구문적으로는 아무런 문제가 없지만 의미를 파악하기 어려운 문장도 있다.

3. 1. 전통적인 방법

전통적인 문법 교육에서 구문 분석(clause analysis라고도 함)은 텍스트를 구성 품사로 분해하여 각 부분의 형태, 기능 및 통사적 관계를 설명하는 것을 포함한다.[3] 이는 주로 언어의 활용과 어미 변화에 대한 연구를 통해 결정되는데, 곡용이 심한 언어의 경우 매우 복잡할 수 있다. "사람이 개를 문다"와 같은 구절을 구문 분석하려면, 단수 명사 "사람"이 문장의 주어이고, 동사 "문다"가 동사 "물다"의 현재 시제의 3인칭 단수이며, 단수 명사 "개"가 문장의 목적어임을 주목해야 한다. 문장도와 같은 기법은 문장의 요소 간의 관계를 나타내는 데 사용되기도 한다.

구문 분석은 과거 영어권 전역에서 문법 교육의 중심이었으며, 서면 언어의 사용과 이해에 필수적인 것으로 널리 여겨졌다. 그러나 이러한 기법에 대한 일반적인 교육은 더 이상 일반적이지 않다.

3. 2. 전산적 방법

전산언어학에서는 컴퓨터 프로그램을 이용해 자연어를 파싱하는 방법을 연구하고 있다. 이러한 기술은 기계 번역이나 자연어 처리 시스템에서 활용된다.[4] 하지만 인간 언어는 모호성이 많아 컴퓨터 프로그램으로 쉽게 분석하기 어렵다.[5]

자연어 데이터 구문 분석을 위해서는 우선 사용할 문법을 정해야 한다. 구문 선택은 언어학적, 전산적 고려 사항 모두에 영향을 받는다. 예를 들어, 어떤 시스템은 어휘 기능 문법을 사용하지만, 이 문법의 구문 분석은 NP-완전 문제로 알려져 있다. 머리 중심 구 구조 문법도 많이 쓰이지만, Penn 트리뱅크처럼 덜 복잡한 형식을 사용하기도 한다. 얕은 구문 분석은 명사구와 같은 주요 구성 요소의 경계만 찾는 방법이다. 의존 문법 구문 분석은 언어적 논쟁을 피하는 또 다른 전략이다.

최근에는 통계적 방법을 부분적으로 도입한 구문 분석기가 많다. 이러한 구문 분석기는 이미 주석이 달린(수동으로 구문 분석된) 훈련 데이터 말뭉치를 활용한다.[6] 이 방식을 통해 시스템은 특정 문맥에서 다양한 구성이 나타나는 빈도에 대한 정보를 얻는다. (기계 학습 참조.) 사용되는 접근 방식에는 (PCFG),[6] 최대 엔트로피,[7] 신경망[8] 등이 있다. 대부분의 성공적인 시스템은 어휘적 통계를 사용하지만, 과적합을 막기 위해 평활화가 필요하다.

자연어 구문 분석 알고리즘은 프로그래밍 언어의 문법처럼 '좋은' 속성을 갖는다고 보장할 수 없다. 앞서 언급했듯이, 일부 문법 형식은 계산적으로 구문 분석하기 매우 어렵다. 일반적으로 원하는 구조가 문맥 자유가 아니더라도 문맥 자유 근사치를 사용하여 먼저 분석을 수행한다. 문맥 자유 문법을 사용하는 알고리즘은 CYK 알고리즘의 변형과 휴리스틱을 함께 사용하여 시간을 절약하는 경우가 많다. (차트 구문 분석 참조.) 쉬프트-리듀스 알고리즘의 선형 시간 버전을 사용하여 속도를 높이는 시스템도 있다. 최근에는 구문 재순위 지정과 같이 구문 분석기가 여러 분석을 제안하고 더 복잡한 시스템이 최상의 옵션을 선택하는 방식도 개발되었다. 자연어 이해 응용 프로그램에서 의미 구문 분석기는 텍스트를 의미 표현으로 변환한다.[9]

자연어의 구문에는 복잡성과 모호성이 존재하며, 의미를 고려해야 구문이 결정되는 경우도 있어 어려움이 따른다. 형태소 분석은 어휘 분석에 해당한다.

형식 언어는 대부분 문맥 자유 문법 기반[30]으로 구문 분석되지만, 자연어는 언어학적 관점이나 컴퓨터 처리 용이성 등을 고려하여 다양한 문법과 방법을 검토해야 한다.

최근 구문 분석은 통계학적 방법을 부분적으로 도입하여, 미리 구문 분석된 훈련용 데이터 그룹을 사용한다. 이 방법은 확률 문맥 자유 문법(PCFG), 최대 엔트로피 원리, 뉴럴 네트워크 등을 사용하며, 품사를 포함한 단어 출현 순서의 통계를 활용한다. 그러나 과적합 문제가 있어 평활화가 필요하다.

자연어 구문 분석 알고리즘은 형식 언어처럼 “좋은” 특성을 가진 문법에 의존할 수 없다. 일반적으로 목표 구조가 문맥 자유가 아니더라도 문맥 자유 근사를 적용하여 구문 분석을 수행한다. CYK 알고리즘 기반에 휴리스틱을 추가하거나, 차트 파서 등을 사용한다. 최근에는 구문 분석기가 복수 분석 결과를 반환하고 상위 시스템이 최적을 선택하는 방법도 있다.

일본어 구문 분석은 문절 간 의존 관계 구조를 발견하는 것이 주된 목적이다.

3. 3. 심리언어학

심리언어학에서는 인간이 문장을 이해하는 과정을 연구하며, 이 과정에서 구문 분석(파싱)이 중요한 역할을 한다.[10] 신경언어학에서는 뇌의 어떤 영역이 구문 분석에 관여하는지 연구한다. 구문 분석은 작업 기억의 기능으로 이해되며, 문장의 여러 부분을 동시에 활용 가능하게 유지하여 분석하는 기능이다.[10]

구문 분석 능력에 어려움을 주는 문장 유형은 다음과 같다.

문장 유형설명예시
가든패스 문장 (garden-path sentence)문장의 가장 일반적인 해석이 문법적으로 잘못된 것처럼 보이지만, 자세히 보면 문법적으로 정확하다."말이 헛간을 지나쳐 달렸다(The horse raced past the barn fell)"에서 raced는 처음에는 과거 시제 동사로 해석되지만, 형용사 구의 일부로 기능한다.[12]
부착 모호성 (attachment ambiguity)문장의 여러 부분을 수정할 수 있는 구절을 포함하여 구문 관계를 식별하기 어렵다."소년은 망원경으로 여자를 보았다(The boy saw the lady with the telescope)"에서 with the telescope는 소년(boy saw) 또는 여자(lady)를 수정할 수 있다.[11]
중심 매립 (center embedding)구절이 유사하게 형성된 다른 구절의 중앙에 배치된다."쥐는 고양이가 남자가 친 쥐를 쫓았고, 쥐는 덫으로 들어갔다(The rat the cat the man hit chased ran into the trap)"[13]



신경언어학에서는 뇌에서 구문 분석이 어떻게 일어나는지를 설명하려는 여러 이론이 있다.


  • 생성 모델 (generative model): 뇌 안에 구문 분석을 위한 별도의 모듈이 있으며, 이는 어휘 인식 및 검색에 선행하고, 문제가 감지되면 구문 해석을 수정하기 위해 돌아가는 것이 아니라 단일 구문 결과를 따른다.[14]
  • 현대 모델: 문장 처리는 모듈식이 아니거나 엄격한 순서로 일어나지 않는다. 어휘 접근, 구문 처리, 의미 결정이 뇌에서 동시에 발생하여 여러 구문 가능성을 동시에 고려할 수 있다.[15]


연구에 따르면 뇌의 여러 영역이 구문 분석에 역할을 할 수 있다.[16]

  • 좌측 전측두극 (left anterior temporal pole)
  • 좌측 하전두회 (left inferior frontal gyrus)
  • 좌측 상측두회 (left superior temporal gyrus)
  • 좌측 상전두회 (left superior frontal gyrus)
  • 우측 후대상피질 (right posterior cingulate cortex)
  • 좌측 각회 (left angular gyrus)


이러한 구조는 구절 구조 구문 분석 또는 의존 구조 구문 분석을 선호할 수 있으며, 이는 서로 다른 유형의 구문 분석이 다르게 처리될 수 있음을 의미한다.[16]

3. 4. 담화 분석

담화 분석은 언어 사용과 기호적 사건을 분석하는 방법을 연구한다. 설득적인 언어는 수사학이라고 할 수 있다.

4. 한국어 파싱의 특징

한국어는 교착어로서 조사가 발달하고 어순이 비교적 자유로워 파싱에 어려움이 있다. 한국어 파싱은 주로 의존 문법에 기반하여 문장 내 단어 간의 의존 관계를 분석하는 방식으로 이루어진다.

4. 1. 한국어 파싱 도구

KoNLPy, 세종 코퍼스 등은 한국어 자연어 처리에 널리 사용되는 도구 및 데이터이다. 최근에는 딥 러닝 기반의 파싱 모델이 개발되어 성능이 향상되고 있다.

참조

[1] 웹사이트 Parse https://www.dictiona[...] dictionary.reference.com 2010-11-27
[2] 서적 Generalized LR Parsing https://books.google[...] Springer Science & Business Media 2012-12-06
[3] 웹사이트 Grammar and Composition https://web.archive.[...] 2012-11-24
[4] 서적 Foundations of Statistical Natural Language Processing https://books.google[...] MIT Press
[5] 학술지 A Probabilistic Model of Lexical and Syntactic Access and Disambiguation
[6] 논문 Accurate unlexicalized parsing https://www.aclweb.o[...] Association for Computational Linguistics
[7] 논문 A maximum-entropy-inspired parser https://aclanthology[...] Association for Computational Linguistics
[8] 논문 A fast and accurate dependency parser using neural networks http://www.aclweb.or[...] Proceedings of the 2014 conference on empirical methods in natural language processing (EMNLP)
[9] arXiv Data Recombination for Neural Semantic Parsing 2016-06-11
[10] 학술지 Syntactic parsing and working memory: The effects of syntactic complexity, reading span, and concurrent load
[11] 학술지 Garden Path Phenomena and the Grammatical Basis of Language Processing
[12] 서적 The cognitive basis for linguistic structures 1970
[13] 논문 Working Memory Constraints on Multiple Center-Embedding https://escholarship[...] Proceedings of the Annual Meeting of the Cognitive Science Society
[14] 학술지 The independence of syntactic processing
[15] 논문 On the modularity of sentence processing: semantical generality and the language of thought Language and Conceptualization
[16] 학술지 Distinguishing Syntactic Operations in the Brain: Dependency and Phrase-Structure Parsing
[17] 논문 Semantic parsing via paraphrasing https://www.aclweb.o[...] Proceedings of the 52nd Annual Meeting of the Association for Computational Linguistics (Volume 1: Long Papers)
[18] 서적 Compilers: principles, techniques, and tools Addison-Wesley Longman Publishing Co., Inc.
[19] 서적 Parsing schemata : a framework for specification and analysis of parsing algorithms Springer 1997
[20] 논문 Modular and Efficient Top-Down Parsing for Ambiguous Left-Recursive Grammars https://aclanthology[...] 10th International Workshop on Parsing Technologies (IWPT), ACL-SIGPARSE
[21] 논문 Parser Combinators for Ambiguous Left-Recursive Grammars http://scholar.uwind[...] 10th International Symposium on Practical Aspects of Declarative Languages (PADL), ACM-SIGPLAN
[22] 학술지 Defining and parsing visual languages with layered graph grammars https://scholar.goog[...]
[23] 논문 A graph grammar approach to graphical parsing https://www.research[...] Visual Languages, Proceedings., 11th IEEE International Symposium on
[24] 학술지 A context-sensitive graph grammar formalism for the specification of visual languages https://web.archive.[...]
[25] 서적 Adaptive Parsing: Self-Extending Natural Language Interfaces https://books.google[...] Springer Science & Business Media 2012-12-06
[26] 웹사이트 Natural Language Processing Techniques in Prolog https://cs.union.edu[...]
[27] 웹사이트 Classic Parsing Algorithms http://www.stat.ucla[...]
[28] 서적 The C Programming Language https://archive.org/[...] Prentice Hall 1988-04
[29] 기타
[30] 기타



본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.

문의하기 : help@durumis.com