전체 글(35)
-
한국어 자연어처리 도구
한국어 자연어처리 도구에 대해서 알아보자 Fine-tuning vs. Few-shot Learning Fine-tuning: 사전 학습된 (pretrained) 언어 모델을 이용할 때는 풀고자 하는 작업에 맞게 Fine-tuning하여 사용합니다. Fine-tuning을 수행하면 풀고자 하는 작업에 맞는 학습 데이터를 이용하여 학습이 이루어지고, 이 과정에서 파라미터들이 갱신이 됩니다. Few-shot learning: Few-shot learning은 추가 학습 없이, 즉 파라미터들을 갱신하지 않고 작업을 수행할 수 있습니다. 이를 위해 작업에 대한 설명, 작업에 대한 예제, 함께 풀고자 하는 문제를 프롬프트 형식으로 모델의 입력으로 사용합니다. 이 때 사용되는 예제가 없으면 Zero-shot, 1개면..
2023.07.19 -
[6] 자연어처리에서의 텍스트 전처리 : 정수 인코딩(Integer Encoding)
컴퓨터는 텍스트보다 숫자를 더 잘 처리한다. 이를 위해 자연어 처리에서는 텍스트를 숫자로 바꾸는 여러가지 기법들이 존재한다. 그러고 이 기법들을 본격적으로 적용시키기 위한 첫 단계로 각 단어를 고유한 정수에 맵핑시키는 전처리 작업이 필요할 때가 있다. 예를 들어 갖고 있는 텍스트에 단어가 5,000개가 있다면, 5,000개의 단어들 각각에 1번부터 5,000번까지 단어와 맵핑되는 고유한 정수. 다른 표현으로는 인덱스를 부여한다. 가령, book은 150번, dog는 171번, love는 192번, books는 212번과 같이 숫자가 부여된다. 인덱스를 부여하는 방법은 여러 가지가 있을 수 있는데 랜덤으로 부여하기도 하지만, 보통은 단어 등장 빈도수를 기준으로 정렬한 뒤에 부여한다. 1. 정수 인코딩(In..
2023.07.17 -
[5] 자연어처리에서의 텍스트 전처리 : 정규 표현식(Regular Expression)
텍스트 전처리에서 정규 표현식은 아주 유용한 도구다. 정규 표현식 모듈 re의 사용 방법과 NLTK를 통한 정규 표현식을 이용한 토큰화에 대해서 알아보자 1. 정규 표현식 문법과 모듈 함수 파이썬에서는 정규 표현식 모듈 re을 지원하므로, 이를 이용하면 특정 규칙이 있는 텍스트 데이터를 빠르게 정제할 수 있다. 1) 정규 표현식 문법 정규 표현식을 위해 사용되는 문법 중 특수 문자들은 아래와 같습니다. . 한 개의 임의의 문자를 나타냅니다. (줄바꿈 문자인 \n는 제외) ? 앞의 문자가 존재할 수도 있고, 존재하지 않을 수도 있습니다. (문자가 0개 또는 1개) * 앞의 문자가 무한개로 존재할 수도 있고, 존재하지 않을 수도 있습니다. (문자가 0개 이상) + 앞의 문자가 최소 한 개 이상 존재합니다. ..
2023.07.17 -
[4] 자연어처리에서의 텍스트 전처리 : 불용어(Stopword)
갖고 있는 데이터에서 유의미한 단어 토큰만을 선별하기 위해서는 큰 의미가 없는 단어 토큰들을 제거하는 작업이 필요하다. 여기서 큰 의미가 없다는 것은, 자주 등장은 하지만 분석에는 의미가 없어서 별 도움을 안준다는 것을 의미한다. 예를들어 i, my , me 등은 자주 등장하지만 실제 분석에는 의미가 없다. 기여하는 바가 적다. 이러한 단어들을 불용어로 패키지 내에서 따로 관리하고있다. 물론 불용어를 개발자가 따로 직접 정의할 수도있다. 이번에는 영어 문장에서 NLTK가 정의한 영어 불용어를 제거하는 방법을 보고 한국어 문장에서 직접 정의한 불용어를 제거해보도록 하자 1. NLTK에서 불용어 확인하기 stop_words_list = stopwords.words('english') print('불용어 개..
2023.07.13 -
[3] 자연어처리에서의 텍스트 전처리 : 어간 추출(Stemming) and 표제어 추출(Lemmatization)
정규화 기법 중 코러스에 있는 단어의 개수를 줄일 수 있는 기법인 표제어 추출과 어간 추출이란 무엇일까? 이 두 작업이 갖고 있는 의미는 눈으로 봤을 때는 서로 다른 단어들이지만, 하나의 단어로 일반화시킬 수 있다면 하나의 단어로 일반화시켜서 문서 내의 단어 수를 줄이겠다는 것이다. 이러한 방법들은 단어의 빈도수를 기반으로 문제를 풀고자 하는 BoW 표현을 사용하는 자연어 처리 문제에서 주로 등장함 자연어 처리에서 전처리, 정규화의 지향점은 언제나 갖고있는 코러스로부터 복잡성을 줄이는 일이다. 1. 표제어 추출(Lemmatization) 표제어(lemma)는 한글로는 '표제어' 또는 '기본 사전형 단어' 정도의 의미를 갖습니다. 표제어 추출은 단어들로부터 표제어를 찾아가는 과정입니다. 표제어 추출은 단어..
2023.07.13 -
[2] 자연어처리에서의 텍스트 전처리 : 정제(Cleaning) and 정규화(Normalization)
토큰화 - 코퍼스에서 용도에 맞게 토큰을 분류하는 작업 토근화 작업 전, 후에는 텍스트 데이터를 용도에 맞게 정제 및 정규화 하는 일이 항상 함께한다. 정제 및 정규화의 목적은 무엇일까 - 정제 : 갖고 있는 코퍼스로부터 노이즈 데이터를 제거함 - 정규화 : 표현방법이 다른 단어들을 통합시켜서 같은 단어로 만들어줌 정제작업은 토큰화 작업에 방해가 되는 부분들을 배제시키고 토큰화 작업을 수행하기 위해 토큰화 작업보다 앞서 이루어지기도 하지만, 토큰 작업이후에도 여전히 남아있는 노이즈를 제거하기 위해 지속적으로 이루어지기도 함. 사실 완벽한 정제 작업은 어려운 편이라, 대부분의 경우 이정도면 잘됐다는 합의점을 찾기도 함. 1. 규칙에 기반한 표기가 다른 단어들의 통합 필요에 따라 직접 코딩을 통해 정의할 수..
2023.07.13 -
[한국어 번역] Detecting political bias in online articles using NLP and classification models
우리는 매일 새로운 정보를 받아드리고 그것을 통해 우리의 생각을 형성해나간다. 정보가 편향되지않고 중립적인것은 우리가 이성적이고 영향받지않는 결단을 내리기 위해 꼭 필요한 것이다. 이 게시물은 맥시도니아어로 작성된 언론 기사에서 정치적 편향을 감지하기 위한 다양한 자연어 처리(NLP) 알고리즘과 기계 학습 모델을 탐구합니다. 이 데이터셋은 2020년부터 2022년까지 약 6000개의 기사 텍스트로 구성되어 있습니다. 각 기사는 다음 세 가지 클래스 중 하나로 레이블링되어 있습니다: N - 중립 (편향되지 않음). 이러한 기사들은 독자 조사에 기반하여 거의 또는 전혀 편향이 없는 언론사에서 가져온 것입니다. V - 오른쪽 편향. 이러한 기사들은 오른쪽 정당의 언론센터에서 가져온 것입니다. S - 왼쪽 편향..
2023.07.13 -
확증 편향 確證偏向
"이들 보통사람들은 자기가 속한 집단의 권위에 대한 믿음이 어찌나 단단한지, 다른 시대나 국가, 다른집단이나 교회, 계급 그리고 정당 등이 자기 집단과 정반대로 생각해왔고 심지어 지금까지 그렇게 생각하고 있다는 사실을 알게되더라도 전혀 영향을 받지 않는다. 이들은 자기집단이 오류에 빠진 사람들을 바르게 이끌 책임이 있다고 생각한다." 존 스튜어스 밀 자신의 견해 내지 주장에 도움이 되는 정보만 선택적으로 취하고, 자신이 믿고 싶지 않은 정보는 의도적으로 외면하는 성향. 답정너? 대부분의 사람은 확증편향을 가지고있고 나 또한 가지고있다. 확증편향은 사람들이 어떻게 자아상을 안정적으로 유지할 수 있을지를 설명한다. 사람들은 스스로에 대한 자신의 믿음에 부합하는 피드백을 얻기를 열망하고 이끌어내려 한다. 일상..
2023.07.12 -
[1] 자연어처리에서의 텍스트 전처리 : 토큰화(Tokenization)
텍스트 전처리는 풀고자 하는 문제의 용도에 맞게 텍스트를 사전에 처리하는 작업입니다. 요리를 할 때 재료를 제대로 손질하지 않으면, 요리가 엉망이 되는 것처럼 텍스트에 제대로 전처리를 하지 않으면 뒤에서 배울 자연어 처리 기법들이 제대로 동작하지 않습니다. 1. 단어 토큰화(Word Tokenization) 토큰의 기준을 단어(word)로 하는 경우, 단어 토큰화(word tokenization)라고 합니다. 다만, 여기서 단어(word)는 단어 단위 외에도 단어구, 의미를 갖는 문자열로도 간주되기도 합니다. 예를 들어보겠습니다. 아래의 입력으로부터 구두점(punctuation)과 같은 문자는 제외시키는 간단한 단어 토큰화 작업을 해봅시다. 구두점이란 마침표(.), 컴마(,), 물음표(?), 세미콜론(;..
2023.07.12 -
통계적 언어 모델(Statistical Language Model, SLM)
언어 모델의 전통적인 접근 방법인 통계적 언어 모델을 소개합니다. 통계적 언어 모델이 통계적인 접근 방법으로 어떻게 언어를 모델링 하는지 배워보겠습니다. 통계적 언어 모델(Statistical Language Model)은 줄여서 SLM이라고 합니다. 2. 문장에 대한 확률 각 단어는 문맥이라는 관계로 인해 이전 단어의 영향을 받아 나온 단어입니다. 그리고 모든 단어로부터 하나의 문장이 완성됩니다. 그렇기 때문에 문장의 확률을 구하고자 조건부 확률을 사용하겠습니다. 앞서 언급한 조건부 확률의 일반화 식을 문장의 확률 관점에서 다시 적어보면 문장의 확률은 각 단어들이 이전 단어가 주어졌을 때 다음 단어로 등장할 확률의 곱으로 구성됩니다. 4. 카운트 기반 접근의 한계 - 희소 문제(Sparsity Prob..
2023.07.12