[[컴퓨터공학|컴퓨터 과학 & 공학
Computer Science & Engineering
]]- [ 펼치기 · 접기 ]
- ||<tablebgcolor=#fff,#1c1d1f><tablecolor=#373a3c,#ddd><colbgcolor=#0066DC><colcolor=white> 기반 학문 ||수학(해석학 · 이산수학 · 수리논리학 · 선형대수학 · 미적분학 · 미분방정식 · 대수학(환론 · 범주론) · 정수론) · 이론 컴퓨터 과학 · 암호학 · 전자공학 · 언어학(형태론 · 통사론 · 의미론 · 화용론 · 음운론) · 인지과학 ||
하드웨어 구성 SoC · CPU · GPU(그래픽 카드 · GPGPU) · ROM · RAM · SSD · HDD · 참조: 틀:컴퓨터 부품 기술 기계어 · 어셈블리어 · C/C++ · C# · Java · Python · BIOS · 절차적 프로그래밍 · 객체 지향 프로그래밍 · 해킹 · ROT13 · 일회용 비밀번호 · 사물인터넷 · 와이파이 · GPS · 임베디드 · 인공신경망 · OpenGL · EXIF · 마이크로아키텍처 · ACPI · UEFI · NERF · gRPC · 리버스 엔지니어링 · HCI · UI · UX · 대역폭 · DBMS · NoSQL · 해시(SHA · 브루트 포스 · 레인보우 테이블 · salt · 암호화폐) · RSA 암호화 · 하드웨어 가속 연구
및
기타논리 회로(보수기 · 가산기 · 논리 연산 · 불 대수 · 플립플롭) · 정보이론 · 임베디드 시스템 · 운영 체제 · 데이터베이스 · 프로그래밍 언어{컴파일러(어셈블러 · JIT) · 인터프리터 · 유형 이론 · 파싱 · 링커 · 난해한 프로그래밍 언어} · 메타데이터 · 기계학습 · 빅데이터 · 폰노이만 구조 · 양자컴퓨터 · 행위자 모델 · 인코딩(유니코드 · MBCS) · 네트워크 · 컴퓨터 보안 · OCR · 슈퍼컴퓨터 · 튜링 머신 · FPGA · 딥러닝 · 컴퓨터 구조론 · 컴퓨터 비전 · 컴퓨터 그래픽스 · 인공지능 · 시간 복잡도(최적화) · 소프트웨어 개발 방법론 · 디자인 패턴 · 정보처리이론 · 재귀 이론 · 자연어 처리(기계 번역 · 음성인식) · 버전 (버전 관리 시스템 · Git · GitHub)
NLP은(는) 여기로 연결됩니다.
동음이의어에 대한 내용은 NLP(동음이의어) 문서 참고하십시오.1. 개요
Natural Language Processing (NLP) / 自然語 處理컴퓨터가 인간의 언어를 이해하고 처리할 수 있도록 연구하는 학문.
2. 상세
인공지능의 하위 분야이다. 흔히 우리가 아는 말하는 컴퓨터 및 인간과 대화하는 컴퓨터 관련 기술이 이 쪽에 속한다.언어학, 컴퓨터과학, 인공지능, 전산언어학(Computational Linguistics)의 연구 분야이며, 자연어를 컴퓨터로 해석하고, 의미를 분석하여 이해하고, 자동으로 생성하는 것 등에 관련된 분야다.
이 분야의 하위 분류로 정보 추출, 자동 교정, 대화 시스템, 기계 번역 등이 있다.
NLP 시스템을 테스트하는 방법으로 유명한 것 중 하나로 튜링 테스트가 있다.
3. 역사
1960년대 일반적인 인공지능을 만들려던 시도가 실패한 후[1], 인간의 언어를 분석하고 해석하여 처리하는 인공지능이 세분화돼 자연어 처리 분야가 생겼다.2018년 다양한 딥러닝 모델이 생겼지만 여전히 자연어 처리를 잘 못 한다. 대신, 언어에 대한 깊은 이해없이 피상적인 확률 및 통계를 이용하여 대량의 정보를 처리하는 기술은 많이 발전했다. 대표적으로, 구글로 대표되는 검색 엔진이 있다. 단어 간의 통계적 유사성에 바탕을 두고 문서를 검색해낸다.
2023년 트랜스포머 기반 언어모델이 대중화됐고 챗GPT가 상용화되어 정보 검색에 사용되고 있다.
4. 하위 분야
4.1. 정보 검색
Information Retrieval(IR)검색 시스템을 개발하는 분야. 대표적으로 구글이 있다. 최근 10년간 가장 빠르게 발전하였으며 수익성이 큰 시장이다.
넓은 의미로는 수 많은 문서 중에서 유저가 원하는 문서를 최적의 속도로 찾아내는 과정을 말한다. 발상은 도서관 관리 시스템에서 시작됐다고 한다. 좁은 의미로 웹상의 텍스트 기반 문서 검색을 말한다. 유저가 던져주는 단서를 쿼리(query, 질의)라고 부르며 빠른 검색을 위하여 색인이 사용된다. 색인은 구글의 경우 웹상의 모든 문서를 단어 별로 쪼갠 다음 uni-gram, bi-gram, tri-gram 등등 묶어서 해당 gram이 어떤 문서에 포함되어 있는지 링크를 저장한다. gram의 의미는 연속된 부분의 묶음을 뜻한다. uni-gram은 한 개 단어, bi-gram은 연속된 두 단어 등. 유저가 "나무위키 정보검색"이라는 질의를 던지면 검색 시스템은 "나무위키"라는 단어가 포함되는 문서리스트와 "정보검색"이라는 단어가 포함된 문서리스트를 불러와 교집합을 구하고 연관도에 따라 랭킹하여 보여준다.
물론 실제 과정은 이보다 훨씬 복잡하며 한국어의 경우 음절 gram을 사용한다. 빠른 검색을 위하여 색인의 구현이 관건이다. 윈도우 시스템의 검색기능은 잘 보면 시스템 설정에 색인 허용이라는게 있다. 이걸 하면 사전에 색인을 만들어 검색을 빠르게 하는데 문제는 이로 인해 시스템 자원을 잡아먹어 사양이 안 좋은 컴퓨터는 굉장히 느려진다. 저사양 컴퓨터를 위한 윈도우 8.1/10 최적화 팁 문서를 보면 항상 등장하는 항목이기도 하다. 상용 검색엔진은 색인을 On-disk B Tree 또는 유사한 해시를 사용한다. 소문/루머에 의하면 구글에서는 색인을 램 파일 시스템이라고 부르는 특수한 파일 시스템에 구현했다고 한다. HDD 대신 RAM에다 전세계 웹 문서를 때려박았다는 의미다. 그 밖에 정확한 검색을 위해서는 질의와 문서 간 유사도 계산을 개선하는 방법이 있는데 현재까지 정보검색 연구의 주된 주제이다.
이 밖에 Content-based IR 또는 Multimedia IR이라고 하여 텍스트 외에 이미지, 음성, 음악 등을 질의로 사용하는 검색 시스템이 있다. 구글의 이미지 검색이 하나의 예가 된다. 과거에는 MIT 미디어 랩의 한 학생이 멜로디를 흥얼거리기만 해도 해당 노래를 찾아주는 시스템을 만들어 화제가 되기도 했다.
4.2. 정보 추출
Information Extraction(IE)비정형의 문서로부터 정규화된 정보를 뽑아내는 기술. 크게 개체명 인식(Named Entity Regonition)과 관계 추출(Relation Extraction)으로 나뉘어진다.
예를 들어 위키피디아 문서에서 사람, 회사 이름을 뽑아내고, 뽑힌 개체간의 관계(소속, 이직 등)를 추출하는 것이 있다.
4.3. 문장/문서 분류
Sentence/Document Classification한 문장/문서가 어떤 분류/카테고리에 속하는지 컴퓨터가 자동으로 분류하는 학문. 예를 들면 카테고리가 컴퓨터/스포츠/시사/연예가 있으면 포털사이트의 모 기사가 어떤 카테고리에 해당되는지 분류하는 과정.
주로 1) 자질 추출, 2) 분류기 학습 두 단계로 나뉜다.
자질 학습은 TF-IDF, PLSI, LDA 등 방법이 있고, CNN, RNN, transformer 등 딥 러닝 기반 방법도 있다.
분류기 학습은 SVM, Perceptron, Logistic Regression 등 기계학습 기법이 있다.
4.4. 단어 분류
Word Classification문장 내 각 단어들의 카테고리를 목적에 따라 컴퓨터가 자동으로 분류하는 학문. 목적에 따라 아래와 같은 종류로 나뉘며 주로 HMM, CRF, 딥 러닝 등 기계학습 방법들이 사용된다.
- 품사 태깅(Part-Of-Speech Tagging) : 주어진 문장의 단어들의 품사가 무엇인지 컴퓨터가 자동으로 인식하는 학문. 한국어나 일본어처럼 형태학적으로 풍부한 언어들은 사전에 형태소 분석 과정이 필요하다. 주로 기계 번역/감정 분석/구문 분석 등 과정의 전처리 과정으로 사용된다.
- 개체명 인식(Named Entity Recognition) : 문장 내 인명, 지명과 같은 고유명사들을 인식/분류하는 과정.
- 중의성 해소(Word Sense Disambiguation 또는 Word Sense Induction) : 한 단어가 여러 의미가 있을 경우 문맥에 맞는 의미를 컴퓨터가 자동으로 인식하는 과정.
4.5. 구문 분석
Sentence Parsing 또는 Syntactic Analysis문장의 구조, 의존 구조 등 구조를 컴퓨터가 분석하게 만드는 분야. 언어학적 개념/목적에 의해 구조 구문 분석(Structural Parsing)과 의존 구문 분석(Dependency Parsing)으로 나뉜다.
주로 기계 번역/감정 분석/대화 시스템 등 과정의 전처리 과정으로 사용된다.
4.6. 감정 분석
Sentiment Analysis 또는 Opinion Mining한 문장이 어떤 의도/감정을 나타내고 있는지 분류. 예를 들면 영화 평론 사이트의 유저 댓글이 해당 영화에 대해 긍정/부정으로 평가했는지 분류하는 과정. 목적/결과물에 따라 문장 분류에 포함되기도 한다. 완전히 문장 분류에 해당될 수 없는 이유는 일부 감성 분석은 단순 분류가 아니라 감정 트리(sentiment tree)를 만들어내는 것이기 때문이다.
4.7. 의미역 결정
Semantic Role Labeling문장에서 주어, 목적어가 무엇인지, 그들의 의미적 관계가 어떠한지 결정해주는 과정. 주로 자동 대화 시스템에 사용된다.
이론언어학의 의미론 (그 중에서도 특히 형식의미론) 및 통사론이 많이 개입되는 분야이다.
4.8. 음성 인식
자세한 내용은 대화형 음성 인공지능 문서 참고하십시오.4.9. 자동 대화 시스템
Dialogue System 또는 Dialogue Manager유저가 입력/말 한 문장에 대해 컴퓨터가 자동으로 가장 적합한 문장을 생성하여 보여주거나 음성으로 전환하여 "대화"를 시뮬레이션 하는 학문을 말한다. 챗봇, Siri 등이 해당 기술을 이용한다. 유저의 의도를 파악하는것이 관건이고 감정 분석/의미역 결정 과정이 전처리 과정으로 사용된다. 학습에는 주로 HMM 기반 기계학습 방법론이 사용된다.
간략한 버전으로 질문응답/질의응답이 있다. IBM에서 개발하여 퀴즈방송에서 1위를 차지한 왓슨이 이에 해당된다.
4.10. 기계 번역
Machine Translation(MT)언어 A로 되어있는 글을 언어 B로 자동으로 바꾸는 것을 연구하는 분야.
언어 계통적 유사성이 높은 언어간 번역(영어-프랑스어/독일어)은 잘 하는 반면, 계통적 유사성이 낮은 언어간 번역(한국어-영어)은 아직 잘 하지 못한다. 구글 번역의 예를 보면, 언어의 뉘앙스적인 면은 사용자들이 학습시키면 그럭저럭 하는 것 같다.
- 유명한 오류
원문 | 오역 | 옳은 번역 | ||||||
Time flies like an arrow. | 시간 파리는 화살을 좋아한다. | 시간이 쏜살같이 지나간다. | ||||||
War never again! Never again war! | 결코 다시 전쟁! 결코 다시 전쟁! | 전쟁은 다시는 일어나면 안됩니다! 또 다른 전쟁이 일어나서는 안 됩니다! |
4.10.1. 기계번역의 역사
기계번역은 컴퓨터가 발명된 시점부터 제기된 발상으로 오랜 역사를 가지고 있지만 본격적으로 연구가 진행된것은 1980년대 후반~1990년대 초반이다.주로 다음과 같은 네 개의 패러다임 을 거쳤다.
4.10.1.1. 규칙/패턴 기반 방법론
번역 과정에서 가능한 수많은 경우의 수를 조건문(if A then B)으로 구현하는것이다. 한국어의 경우 주로 형태소 분석, 품사 태깅, 구문구조 분석, 상호참조 해결, 단어 중의성 해소, 개체명 인식 등 많은 전처리 과정을 거친 뒤 대역사전과 술부변환/어순조정 규칙을 이용하여 대상언어로 번역한다.한계점은 엄청 많다. 일단 언어라는 것이 제한된 단어들의 조합으로도 수많은 문장을 만들어 낼수 있고 모든 가능한 단어의 조합까지 고려하면 경우의 수는 무한대에 가깝다. 실제로 국내 최초로 기계번역시스템을 개발할 때는 연구원 20명이 한일 대사전을 수작업으로 넣었다고 한다. 앞서 서술한 수많은 전처리 모듈들도 전부 개발해야 하며 난이도는 번역에 비해 상대적으로 간단할 뿐이지 절대 쉬운 작업이 아니다. 마지막으로 특정 언어 쌍에 대해 개발한 시스템은 타 언어 쌍에 적용할 수 없으며 전부 다시 만들어야 한다 또한 기능 향상 및 유지보수가 쉽지 않으며 신조어가 생기는 현시대에 적합하지 않다.
4.10.1.2. 예시/검색 기반 방법론
규칙/패턴 기반이 하도 비용이 많이 드니 제안되어 잠깐 빛을 발했던 방법이다. 데이터베이스에 수만~수십만에 달하는 번역 예시를 저장해놓고 입력 문장이 들어오면 그 중에서 가장 유사한것을 골라 결과를 출력하는것이다. 문장 간 유사도를 측정하기 위해 주로 정보 검색 기법으로 쓴다. 특정 오류에 맞추어 대응하는 시스템 수정이 가장 간편한 방법론이기 때문에 예시기반 시스템에선 오류 예시를 DB에 추가하면 끝난다.단점은 정확히 일치한 문장이 나타날 확률이 낮으며 정보검색기법으로 유사도를 측정한다 하더라도 보유 데이터의 한계로 정확도는 한참 떨어진다. 이를 극복하기 위해 문장 전체가 아니라 문장을 절로 쪼개 해당 방법론을 적용하였다. 이후 통계 기반 방법론에 대체되었다.
4.10.1.3. 통계 기반 방법론
예시/검색 기반 방법론이 발전되어 나온 방법으로 구글번역을 비롯해 대부분의 온라인 서비스가 이 형태로 되어있다. 쉽게 설명하면 언어 A의 문장이 주어졌을때 언어 B중 가장 높은 확률로 나타날 문장을 구하는것이다. 이런 확률을 구하기 위하여 해당 확률을 다시 단어 번역 확률, 구 번역 확률, 어순 조정 확률로 세분화돼 통계 기반 기계학습 방법으로 학습하며 기타 도움이 되는 정보도 임의로 추가할 수 있다. 해당 방법론은 모델을 구현하기만 하면 번역 데이터가 있는 임의의 언어 쌍에 그대로 적용할 수 있다는 장점이 있다. 번역 데이터가 1천만 문장 쌍이 있어야 쓸만한 성능이 나온다. 또한 통계기반 모델은 도메인(분야, 예를 들면 뉴스, 특허, 채팅, SMS 등등)에 굉장히 의존적이며 뉴스 도메인 데이터로 학습한 모델을 SMS번역에 적용하면 심각한 성능저하가 생긴다. 웹상에 MOSES[2]와 같은 오픈소스 툴이 있고 유럽 언어쪽은 많은 데이터가 있기에 쉽게 돌려볼수 있다.4.10.1.4. 딥 러닝 기반 방법론
알파고 등장 이후 빠르게 연구 중인 방법론이다. 시퀀스를 처리하기 용이한 순환 신경망 (RNN)이 사용되며 소스언어(번역 되어야 할 언어)를 처리하는 인코더와 타겟언어(번역돼 출력되는 언어)를 생성하는 디코더로 구성되어 있다. 인코더는 입력 문장을 축약된 표현으로 바꾸어 주고 디코더가 다시 축약된 표현을 근거로 번역문을 생성한다.학습을 하기 위하여 통계 기반 방법론과 마찬가지로 대규모 데이터를 필요로 한다. 성능은 통계 기반 방법론보다 더 좋으나 대규모 데이터를 학습하기 위해서 수많은 GPU가 필요하다.
4.10.2. 기계번역연구가 유명한 대학
국가 | 대학 |
국내 | 고려대학교, 포항공과대학교, 한국외국어대학교 |
영국 | 에든버러 대학교[3] |
독일 | KIT[4] |
미국 | 존스 홉킨스 대학교[5], 펜실베이니아 대학교[6], 뉴욕 대학교[7], 스탠퍼드 대학교, 카네기 멜런 대학교 등등 |
캐나다 | 몬트리올 대학교[8][9], 토론토 대학교 |
중국 | 중국과학원대학원, 하얼빈공대, 동북대학교 |
일본 | NAIST, 교토대학, 도호쿠대학 |
4.10.3. 기계번역 관련 경진대회
경진대회 | 비고 |
WMT[10] | 매년 진행되며 유럽언어(영어, 프랑스어, 독일어, 체코어, 스페인어, 러시아어, 핀란드어) 위주 |
OpenMT | 2~3년에 한번씩 진행되며 미국정부기관 NIST 주관. 영어, 중국어, 아랍어, 한국어 위주. 참고로 국방부 DARPA 프로젝트로 시작하여 군사목적으로 번역기 개발을 한거라 대상언어가 전부 적대/잠재적 적대국 언어다. 한국어는 북한 때문. |
WSLT | 매년 진행되며 독일 KIT 주관. 언어/소스는 WMT랑 동일. 단 WMT와 차이점이라면 Text번역 외에도 음성인식 및 통역 (Speech Translation)에 특화되어 있다. |
WAT | 네임드는 좀 떨어지지만 일본 주관. 일본어, 한국어, 중국어 위주. |
5. 관련 정보
5.1. 학술대회/학술지
학술대회명 | 비고 | 논문통과률 | 등급 |
Associations for Computational Linguistics(ACL) | 자연언어처리분야 모든 주제 망라 | 20~30% | 최고등급 |
ACM Special Interest Group on Information Retrieval(SIGIR) | 정보검색 분야 주제 | 8~15% | 최고등급 |
학술지명 | 비고 |
Computational Linguistics(CL) | 자연어 처리 분야 최고 등급 학술지 |
ACM Transactions on Information Systems(TOIS) | 정보 검색 분야 최고 등급 학술지 |
5.2. 소프트웨어/리소스
목록은 전부 학술용/오픈소스 소프트웨어이다.분야 | 툴 | 언어 | 비고 |
기계번역 | MOSES | C++ | 통계기계번역 오픈소스 툴 |
기계번역 | dl4mt | python | 뉴럴기계번역 오픈소스 툴, deep learning for machine translation의 약자이다. 딥 러닝 툴 theano를 미리 깔아야 한다. |
자연언어처리 | Stanford CoreNLP | java | 품사 태깅, 개체명 인식, 의존 구문 분석, 분할/복원, 감정 분석, 상호 참조 해결, 정보 추출 등 기능을 제공한다. 영어한정, 일부 모듈은 중국어도 지원. |
자연언어처리 | 울산대 한국어 형태소분석/품사 태깅 툴 | [불명확] | 한국어 형태소분석, 품사 태깅 오픈소스 툴 |
한국어 사전학습 모델 | LMkor | python | Language Model For Korean의 약자이다. 100GB에 달하는 대규모 한국어 텍스트로 학습한 다양한 사전학습 모델을 사용해 볼 수있다. |