NLP의 종속성 구문 분석 [예제 설명]
게시 됨: 2021-03-10자연어 처리는 인간 언어가 기술과 상호 작용하는 방식을 이해하기 위해 컴퓨터 언어학 및 인공 지능의 기본을 취하는 학제 간 개념입니다.
NLP는 실제 시나리오에 유형을 적용하기 위해 다양한 용어와 개념에 대한 심층적인 이해가 필요합니다. 이러한 기본 개념 중 일부는 품사(POS) 태깅, 통계적 언어 모델링, 구문, 의미 및 감정 분석, 정규화, 토큰화, 종속성 구문 분석 및 구성 구문 분석을 포함합니다.
이 기사에서는 NLP에서 구현되는 방식에 대한 관점을 얻기 위해 종속성 구문 분석의 기본 사항을 살펴보겠습니다.
목차
종속성 구문 분석
DP(Dependency Parsing)는 문장의 단어 간의 의존성을 조사하여 문법 구조를 분석하는 것을 말합니다. 이를 기반으로 문장은 여러 구성 요소로 나뉩니다. 이 메커니즘은 문장의 모든 언어 단위 사이에 직접적인 연결이 있다는 개념을 기반으로 합니다. 이러한 링크를 종속성이라고 합니다.
예를 들어 “ 나는 덴버를 경유하는 아침 비행기를 선호합니다.” 라는 문장을 생각해 봅시다 .
아래 다이어그램은 문장의 종속성 구조를 설명합니다.
원천
문장의 모든 언어 단위 또는 단어 사이의 관계는 유형이 지정된 종속성 구조에서 방향 호를 사용하여 표시됩니다. 다이어그램에 표시된 대로 "prefer" 트리 의 루트 는 위 문장의 머리 부분을 형성합니다.
두 단어 간의 관계는 종속성 태그로 표시됩니다. 예를 들어, "flight"라는 단어는 명사 "Denver"의 의미를 수정합니다. 따라서 비행이 머리이고 Denver가 자식 또는 종속인 비행 -> Denver에서 종속성을 확인할 수 있습니다. 이는 명목 수식어를 나타내는 nmod 로 표시됩니다.
이것은 하나가 머리 역할을 하고 다른 하나가 종속되는 모든 두 단어 사이의 종속성의 경우를 형성합니다. 현재 Universal Dependency V2 분류법은 아래 표에 지정된 대로 37개의 보편적 구문 관계로 구성됩니다.
종속성 태그 | 설명 |
ACL | 명사의 절 수식어(명사절) |
acl:relcl | 관계절 수식어 |
광고 | 부사절 수식어 |
advmod | 부사 수식어 |
advmod:emph | 강조 단어, 강조 |
advmod:lmod | 위치 부사 수식어 |
아모드 | 형용사 수식어 |
아포스 | 수식어 |
보조 | 보조자 |
보조:통과 | 수동 보조 |
사례 | 대소문자 구분 |
참조 | 알 맞는 접속사 |
참조: 사전 연결 | 선결 |
컴프 | 절 보완 |
음자리표 | 분류기 |
화합물 | 화합물 |
화합물:lvc | 가벼운 동사 구성 |
합성:prt | 구동사 입자 |
합성:리업 | 복제 화합물 |
화합물:svc | 연속 동사 합성 |
conj | 결합한 |
순경 | 접합부 |
csubj | 절 주제 |
csubj:통과 | 절 수동 주어 |
데프 | 지정되지 않은 종속성 |
데트 | 결정자 |
det:numgov | 명사의 경우를 지배하는 대명사 수량사 |
det:nummod | 명사와 일치하는 대명사 수량사 |
데트:포스 | 소유 한정사 |
담화 | 담론 요소 |
탈구 | 탈구된 요소 |
설명하다 | 조어 |
설명:임퍼 | 비인격적인 욕설 |
설명: 통과 | 재귀 수동태에 사용되는 재귀 대명사 |
설명:pv | 본질적으로 재귀 동사가 있는 재귀 음핵 |
결정된 | 고정 다중 단어 표현 |
평평한 | 플랫 여러 단어 표현 |
플랫:외부 | 외국어 |
플랫:이름 | 이름 |
함께 | 함께 간다 |
아이오브제이 | 간접 목적어 |
목록 | 목록 |
표시 | 채점자 |
nmod | 명목 수식어 |
nmod:포스 | 소유 명사 수식어 |
nmod:tmod | 임시 수정자 |
nsubj | 명목 주제 |
nsubj:통과 | 수동 명사 주어 |
nummod | 숫자 수정자 |
nummod:gov | 명사의 대소문자를 결정하는 수식어 |
오브제 | 물체 |
오블 | 비스듬한 명목상 |
obl:에이전트 | 에이전트 수정자 |
obl:arg | 비스듬한 주장 |
obl:lmod | 위치 수식어 |
obl:tmod | 임시 수정자 |
유아 | 유아 |
병렬 | 병렬 |
점을 찍다 | 구두 |
재검토 | 재정의된 유창성 |
뿌리 | 뿌리 |
부르는 | 부르는 |
xcomp | 개방절 보완 |
NLTK를 사용한 종속성 구문 분석
Dependency Parsing은 인간 언어의 통계적 NLP(Natural Language Processing)에 사용되는 라이브러리 및 코드 모음인 NLTK(Natural Language Toolkit) 패키지를 사용하여 수행할 수 있습니다.
NLTK를 사용하여 다음 방법 중 하나를 통해 종속성 구문 분석을 수행할 수 있습니다.
- 확률적, 투영적 종속성 파서 : 이 파서는 손으로 파싱된 문장에서 수집한 인간 언어 지식을 사용하여 새로운 문장을 예측합니다. 그들은 실수를 저지르고 제한된 훈련 데이터 세트로 작업하는 것으로 알려져 있습니다.
- Stanford parser : 자바로 구현된 자연어 파서입니다. 종속성 구문 분석을 수행 하려면 Stanford CoreNLP 파서 가 필요합니다 . 파서는 영어, 중국어, 독일어 및 아랍어를 포함한 여러 언어를 포함합니다.
파서를 사용하는 방법은 다음과 같습니다.
nltk.parse.stanford에서 가져오기 StanfordDependencyParser
path_jar = '경로_to/stanford-parser-full-2014-08-27/stanford-parser.jar'
path_models_jar = '경로_to/stanford-parser-full-2014-08-27/stanford-parser-3.4.1-models.jar'
dep_parser = StanfordDependencyParser(
path_to_jar = path_jar, path_to_models_jar = path_models_jar
)
result = dep_parser.raw_parse('나는 자다가 코끼리를 쐈습니다')
의존성 = result.next()
목록(종속성.triples())
위 프로그램의 출력은 다음과 같습니다.
[
((u'shot', u'VBD'), u'nsubj', (u'I', u'PRP')),
((u'shot', u'VBD'), u'dobj', (u'elephant', u'NN')),
((u'elephant', u'NN'), u'det', (u'an', u'DT')),
((u'shot', u'VBD'), u'prep', (u'in', u'IN')),
((u'in', u'IN'), u'pobj', (u'sleep', u'NN')),
((u'sleep', u'NN'), u'poss', (u'my', u'PRP$'))
]
선거구 분석
Constituency Parsing은 context-free 문법을 기반으로 합니다. 여기서 파스 트리는 각각 문법 범주에 속하는 하위 구문으로 분할된 문장을 포함합니다. 문장의 모든 언어 단위 또는 단어는 부모 노드와 품사 태그가 있는 터미널 노드 역할을 합니다.
예를 들어 "a cat"과 "box under the bed"는 명사구이고, "write a letter"와 "drive a car"는 동사구입니다.
" 나는 잠옷을 입고 코끼리를 쐈어 "라는 문장을 예로 들어 보겠습니다 . 다음은 구성 요소 구문 분석 트리의 그래픽 표현입니다.
원천
왼쪽의 파스 트리는 잠옷을 입은 코끼리를 촬영한 것이고 오른쪽의 파스 트리는 잠옷을 입은 코끼리를 촬영한 피사체를 나타냅니다.
전체 문장은 마지막 단어가 남을 때까지 하위 단계로 나뉩니다. VP는 동사구를 나타내고 NP는 명사구를 나타냅니다.
종속성 구문 분석 대 구성 요소 구문 분석
Stanford 구문 분석기를 사용하여 구성 요소 구문 분석을 구현할 수도 있습니다. 본질적으로 constituency parser에 따라 주어진 문장을 구문 분석한 다음 constituency parse tree를 종속성 트리로 변환합니다.
목표가 문장을 하위 구문으로 나누는 것이라면 구성 요소 구문 분석을 구현해야 합니다. 그러나 문장에서 단어 간의 종속성을 탐색하려면 종속성 구문 분석을 사용해야 합니다.
확인: NLP 프로젝트 아이디어 및 주제
결론
이 기사가 도움이 되었다면 Flipkart, Gramener 및 Zee5의 업계 전문가로부터 개인화된 멘토링을 제공 하는 upGrad의 기계 학습 및 NLP 6개월 PG 인증을 확인해야 합니다.
이 프로그램은 데이터 과학 및 기계 학습에 발판을 마련하려는 엔지니어, 소프트웨어/IT, 데이터 및 기타 전문가를 위해 설계되었습니다. IIIT BBangalorethe의 이 포스트 대학원 인증은 58%의 평균 급여 인상을 자랑하며, 상위 회사에서 데이터 분석가, 데이터 과학자, ML 엔지니어 및 NLP 엔지니어의 고급 직위를 얻는 데 필요한 모든 것입니다. 오늘 단돈 Rs. 월 3,034개!
NLP에서 종속성 구문 분석의 용도는 무엇입니까?
자연어 처리에서 종속성 구문 분석은 문장에서 단어 간의 의미 관계를 식별하는 데 사용되는 기술입니다. 종속 파서는 문장의 단어를 의미론적 역할에 매핑하여 단어 간의 구문 관계를 식별하는 데 사용됩니다. 종속성 구문 분석은 표면 구조 수준에서 자연어 텍스트의 구문 분석을 위한 잘 알려진 접근 방식입니다. 이 방법에서는 단어 간의 구문 종속성을 분석하고 각 단어의 구문 범주를 식별하여 선형 시퀀스의 단어 토큰에서 문장의 구문 구조를 복구합니다.
종속성 구문 분석의 응용 프로그램은 무엇입니까?
다음은 종속성 구문 분석이 사용되는 여러 응용 프로그램 영역의 목록입니다. 종속성 구문 분석의 주요 용도 중 하나는 자연어 처리의 구성 요소인 의미적 역할 레이블링(SRL) 및 정보 추출입니다. 종속성 구문 분석은 NLP 작업 외부의 구문 청크 및 구성 요소 구문 분석에도 사용됩니다. 종속성 구문 분석은 문장의 단어를 해당 구문 마커 또는 트리 구조에 매핑하는 구문 구조 구문 분석과 근본적으로 다릅니다.
구문 구문 분석과 종속성 구문 분석의 기본적인 차이점은 무엇입니까?
구문 구문 분석기와 종속 구문 분석기의 차이점은 종속 구문 분석기가 구문 분석 트리를 만들고 구문 구문 분석기가 구문 트리를 구축한다는 것입니다. 구문 분석은 사전 정의된 규칙을 사용하여 구문을 정의하는 것과 관련이 있으며 종속성 구문 분석기는 모든 종류의 구문을 이해할 수 있고 모호한 입력도 처리할 수 있습니다. 종속성 파서는 구문 인식, 청킹, 종속성 분석, 청킹 및 구문 분석에 사용할 수 있습니다.