반응형

사람이 평소 말하는 언어나 읽는 문장을 자연어라고 합니다. 

언어나 문장을 컴퓨터가 처리 하게 하는 자연어 처리도 이미지 인식이나 음성 인식과 함께 머신러닝의 중요 응용 분야입니다.

 

01. 문장 구조 이해

자연어처리 :

자연어에 대응하는 개념은 인공어 입니다. 

 

기계가 자연어를 분석하고 해석해 의미를 이해한 결과로 사람에게 도움이나 피드백을 주는 것을 자연어 처리 라고 합니다. Natural Language Processing

자연어 처리는 문장을 단어로 나눠서 특징을 추출하고 다른 언어로 번역하는 등의 업무를 합니다. 

텍서트 마이닝이라는 분석 처리는 방대한 양의 문장에서 특징 단어나 문장을 추출해 시각화(그래프 등)합니다 .

 

띄어쓰기와 형태소 분석 

형태소 분석은 단어를 나누고 단어 분할로 얻은 단어의 품사를 인식하는 작업입니다. 품사 정보를 알면 단어 나누기 편히하므로  절 인식과 품사 인식을 함께 합니다. 

한국어 형태소 분석을 위한 개발 환경으로는ㄴ MeCabl, 코엔엘파이 KoNLPy등이 있습니다.

 

형태소 분석과 다른 단어 분할 방법으로 n-gram이 있습니다. 

문장으로 주어진 문자열을 n개 의 문자 창으로 설정해 문자 1개를 중복으로 포함하면서 단어를 생성한느 방법입니다.

문자 단위 n-gram

단어 단위 n-gram

 

형태소 분석이나 n-gram을 통해 단어 열로 분해한 상태(단어 각각의 배열이나 단어의 출현 횟수)를 하나의 묶음으로 나타내는 방법을 Bag-of-Words BoW모델이라고 합니다.

 

한편 베이즈 모델로 띄어쓰기하는 방법도 있습니다. 이를 비모수 베이즈 모델에 근거한 자율단어 분할법이라고 합니다. 

단어 목록이 없는 상황에서도 단어를 나눌 수 있는 것이 특징입니다.

이 방법은 디리클레 과정을 기반으로 둔 n-gram모델을 확장한 피트만-요 과정을 더 확장한 것입니다.

디레클레 과정에서 나타나는 단어 종류가 많을 수록 단어의 확률분포가 정해집니다.

 

그밖에 피트만-요 과정을 계층화한 계층 피트만-요 언어 모델 , 계층 피트만-요 언어 모델을 응용한 중첩 피트만-요 언어 모델도 있습니다. 이들은 공백을 없앤 영어도 단어를 이해할 수 있는 형태로 띄어쓰기할 수 있고 고문이나 해석할 수 없는 미지의 언어 등에도 사용할 수 있습니다.

 

02. 지식 습득과 통계 의미론

지식 획득 knowledge acquisition

컴퓨터 시스템(전문가 시스템 등)에 주어진 자연어 데이터는 지식과 특징을 추출해 정보를 얻을 수 있습니다. 이 정보를 지식 기반에 저장하는 것 

문서의 특징량 지표로 문서 검색에서 일반적으로 이용하는 TF-IDF가 있습니다.

TF 는 단어 빈도 (Term Frequency)라고 하며 문서 안 단어의 출현 빈도를 의미합니다. 

IDF는 역문서 빈도(Inverse Document Frequency)라고 하며 전체 문서 중 어떤 단어가 나오는 문서 수 (전체 문서 수로 나눈 빈도)의 역수를 구한 후 로그를 취한 다음에 1을 더한 값입니다.

 

이를 피하는 방법으로는 잠재 의미 인덱싱 Latent Sematic Indexing LSI이 있습니다.

특잇값 분해로 차원을 압축해서 중요도가 낮아 보이는 단어를 없애 상대적인 유사도를 높입니다.

또한 행렬 분해 기법인 잠재 의미 인덱싱에 확률 요소를 도입한 언언 모델로 확률 잠재 의미 인덱싱 Probabilistic Latent Semantic Indexing , PLSI이 있습니다. 문서에 나오는 단어 주제의 분포에서 단어 분포가 생성된다는 것을 모델화한 것입니다.

 

모델화한 잠재 디리클레 할당

주제 모델 Topic model: 어떤 단어가 어떻게 문서나 주제에서 생성된느지 계산 모델로 검토하는 연구 영역

워드넷 WordNet

word2vec : 단어의 관계를 두 계층의 신경망에서 추정해 백터 공간에 나타낸 모델로 

 

03. 구조 분석

할당 분석

할당은 단어와 단어 사이의 관계를 나타내는 것으로 관계를 파악하면 문장의 의미를 이해할 수 있습니다.

할당받은 구조를 기계적으로 처리해서 관계를 파악하는 방법을 할당 분석이라고 합니다.

 

이동-감축 shift-reduce법이고  두가지 작업을 반복하면  트리 구조를 형성합니다. 

 이동 처리는 분석하지 않은 단어 열의 왼쪽(첫번째)을 트리에 넣는 작업니다. 

 감축 처리는 트리 집합 중 오른쪽 2개의 단어를 화살표로 연결하는 작업니다.

 

최소 생성 트르 Minimum Spanning Tree, Mst : 단어를 노드로 구성하는 그래프를 작성합니다. 

그리고 단어 사이의 관계에 점수를 설정한 후 높은 조합을 남겨서 트리 구조를 생성합니다.

 

이동-감축법이 단어를 하나씩 처리한다면 최소 생성 트리법은 한꺼번에 처리합니다. 

정밀도 측면에서는 최소 생성 트리법이 좋지만 처리 시간이 길어서 시간 효율성은 이동- 감축법이 좋습니다.

 

술어 줄 구조 분석 : 문장의 의미는 술어 대상을 나타내는 명사구 절로 표현할 수 있으므로 이들을 식별하는 처리를 술어 절 구조 분석이라고 합니다.

어구 구조 분석 : 단어 열로 구성된 어구를 통해 구조를 파악하는 방법으로 는 어구 구조 분석이 있습니다.

 

딥러닝

순환 신경망 Long Short-Term Memory를 자주 이용합니다.

순환신경망 이용은 단어 열의 나열을 시계열 상의 입력 데이터로 취급하는 것이 핵심입니다.

Long Short-Term Memory은 순환 신경망을 더 안정적으로 처리할 필요가 있을 때 사용합니다

한편 절 구조를 갖는 트리 구조로 단어 열을 다루면 재귀 신경망을 이용할 수 도 있습니다.

 

04. 텍스트 생성

기계번역: 기계를 통해 이해하기 어려운 문장을 원래의 문장으로 되돌리는 처리

어순의 차이는 기계 번역의 큰 장애물입니다.

목적 언어의 구조 정보를 이용  string - to - tree : 목적 언어의 구조 분석에 의존하는 장점과 처리 비용이 높다는 단점이 있습니다.

원래 언어의 구조 정보를 이용  tree-to-string : 번역문 생성은 단 시간에 된다는 장점이 있고 , 입력 문장의 구조에 따라 성능은 제각각이라는 단점이 있습니다.

양쪽 언어의 구조 정보를 이용 tree-to-tree

 => 순서가 크게 다르면 번역하는데 어려움이 있습니다.

구글은 더 자연스러운 번역 Google Neral Machine Translation GNMT

 

자동요약 

단일 문서의 추출형 요약 중 가장 단순하고 효과적인 방법으로 리드법이 있습니다.

 

통계 요약 Maximal Marginal Relevance, MMR알고리즘

문서 요약은 불필요한 구문 삭제 ,문장 결합, 구문 변형, 어휘 의역, 추상화/구체화 , 정렬 등의 여러가지 작업이 있습니다.

최대 피복 문제 Maximum coverage problem와 시설 입지 문제 Facility location problem 에 귀착시키는 것 등이 있습니다.

 

이미지에 설명 추가 및 문장 창작

집중 매커니즘 Attention mechanism: 인코더 -디코더 방법을 사용해 번역의 정화도를 높이는 것

Long Short-Term Memory을 이용한 음악 생성

순환 신경망을 이용한 영화 각본 생성

Conversation as a Platform-린나

린나는 TF-IDF와 word2vec 개념 외에도 순환 신경망을 중심으로 둔 딥러닝을 이용한다고 발표했습니다.

Deep Structured Semantic Models,DSSM

RNN-GPU Gated Recurrent Unit

GRU는 LSTM네트워크를 실현하는 블록의 하나입니다.

 

 

 

출처 : 처음 배우는 인공지능

반응형

+ Recent posts