자연어처리

텍스트 길들이기

25G 2024. 4. 28. 08:40

개인적으로 생성형 인공지능의 등장으로 텍스트 길들이기의 중요도가 떨어졌다라고 생각이 들지만... 그래도 잘 생각해보면 여전히 인터넷 세상에는 엄청나게 많은 텍스트 데이터들이 있고 생성형 인공지능을 사용하는 데에 어려움을 느끼거나 혹인 생성형 인공지는이란것을 사용하여 정보를 얻는다는 것이 대중들에게 익숙해지기 까지는 시간이 더 필요하며 기술적 해결점도 아직까지는 많은것같다. 그렇기때문에 자연어를 핸들링하고 분류하는 기술은 웹 개발자로써 중요한 덕목이라고 생각한다.

애플리케이션에 조회를 할때 사용자들은 검색했을때 결과페이지를 뒤져서 원하는 정보를 얻기보단 알고싶은 것에 대한 답을 곧바로 알고싶어 한다.결국 궁극적으로 사용자는 본인의 삶과 일에 집중하게 도와주는 도구를 원할 뿐이지 기술이 뭔지는 알필요도없고 알려고 하지도 않을것이다. 그렇기에 요구되는 바를 정리해 보면..

  • 주어진 정보 요구에 대해 연관된 답과 지원 콘텐츠를 찾는 능령
  • 사용자를 거의 개입시키지 않으면서 텍스트를 구조화하고 다루는 능력
  • 입력이 항상 증가해도 앞의 두가지 일을 해낼 수 있는 능력

위 세가지 능력을 두루 가춰 특출나 질 수록 애플리케이션은 사용자들의 선택을 받게 되는 것 같다. 인스타그램, 페이스북, 구글 등등...

텍스트 처리의 어려움

문장을 단순히 단어의 조합이라고 하기는 어렵다. 인간들과의 대화에는 긍정과 부정, 부정의 의미를 지녔어도 긍정의 의미가 될 수 있고 긍정의 의미를 가졌어도 부정의 의미를 가지기도한다. 거기에 더해 "한글"이라는 언어는 영어보다 난이도가 몇배는 더 높다. 단순히 조합 경우의 수를 따져봐도 한글은 복잡한 받침까지 모두 고려 돼야 하기 때문이다.

한글

자음 14개, 모음 10개인 경우: 자음+모음 조합만 고려하면 14 * 10 = 140가지 경우가 나옵니다.
받침이 있는 경우 (27개의 받침 포함): (14 * 10 * 28) = 3,920가지 경우가 추가됩니다 (여기서 28은 받침 없음 + 27개의 받침).

영어

한 글자는 26가지 경우가 있습니다.
이 예시는 한 글자에 대한 계산입니다. 두 글자 이상을 조합하는 경우는 각 언어의 가능한 문자 수의 제곱, 세 글자는 세제곱 등으로 계산됩니다.

예를 들어, 두 글자로 구성된 단어를 만든다면:

한글: 3,920가지 음절의 제곱, 즉 3,920 * 3,920 = 15,366,400가지 경우의 수
영어: 26 * 26 = 676가지 경우의 수

두 글자로 구성된 단어를 만드는데에 단순 수학적 계산으로 도출된 경우의수의 차이를 보면 한글이 얼마나 자연어처리를 하기가 어려운지 실질적으로 와닿을수 있다. 거기에 한글은 의미를 분석하기도 어렵다. 예를 들어 민수가 집에서 축구를하다 어머니가 아끼는 화분을 깨먹으면 어머니가 하는 말은 "잘한다! 아예 집안살림을 다 깨먹지그래?" 라고 하신다. 이러한 경우까지 다 따지면 어쩌면 한글자연어처리는 최상급난이도를 가지고 있다고 생각한다.

해결해야 하는 문제들..

  • 문자
    • 인코딩문제, 대소문자, 구두점, 강세, 숫자 같은 경우 애플리케이션에 따라 다 다르게 다뤄진다.
  • 단어와 형태소
    • 단어 분할, 품사 배정, 동의어찾기, 어간 추출, 약어,두문자어, 맞춤법 등등..
  • 복수 단어와 문장
    • 구절감지, 구문분석, 문장 경계감지, 동일 지시어 분석, 단어 의미 명확화, 단어간의 관계 조합
  • 문서
    • 문서를 이해하기위해선 문서를 넘어서는 지식이 필요하다.

자! 위와같은 경우를 모두 따져 완벽히 인간의 말을 이해하는 애플리케이션을 만든다는 것은 엄청나게 어려운 문제이며 완벽한 접근방식이 있기가 어렵다. 하지만 생성형 인공지능의 등장으로 여러문제가 해결됐지만 아직 가야할길은 멀다고 생각한다.

출처 :자연어 텍스트 처리를 통한 검색 시스템 구축

'자연어처리' 카테고리의 다른 글

자연어 처리 : 검색  (0) 2024.05.13
텍스트 길들이기 기초  (0) 2024.05.06