Data Analysis/Natural Language Processing(NLP)

Data Analysis/Natural Language Processing(NLP)

자연어 전처리 적용 I

이번 챕터에서 배운 전처리 방법들을 실제 데이터에 적용해 보겠습니다. 실습 준비하기 실습에는 IMDb 영화 리뷰 데이터를 사용하겠습니다. IMDb는 The Internet Movie Database의 약자로, 약 200만개 이상의 영화 관련 정보들이 저장되어 있는 데이터 베이스입니다. 실습에는 IMDb에 있는 데이터 중 10개만 가져와서 사용하겠습니다. 아래 imdb.tsv 파일을 확인해 주세요. imdb.tsv review 0"Watching Time Chasers, it obvious that it was made by a bunch of friends. Maybe they were sitting around one day in film school and said, \""Hey, let's pool..

Data Analysis/Natural Language Processing(NLP)

불용어 제거 실습

실습 설명 불용어 제거를 위한 함수 clean_by_stopwords()를 만들어 주세요. ● clean_by_stopwords()는 파라미터로 단어 토큰화된 코퍼스(tokenized_words)와 불용어 목록(stopwords_set)을 받습니다. ● 결과로는 불용어가 제거된 단어 토큰 리스트를 반환합니다. ● 불용어 목록은 NLTK에서 제공하는 기본 불용어 목록 세트를 받아와 사용합니다. main.py import nltk from nltk.corpus import stopwords from nltk.tokenize import word_tokenize from text import TEXT nltk.download('stopwords') nltk.download('punkt') corpus = TE..

Data Analysis/Natural Language Processing(NLP)

불용어(Stopwords)

코퍼스에서 큰 의미가 없거나, 분석 목적에서 벗어나는 단어들을 불용어(stopword)라고 합니다. 이런 단어들은 정확한 분석을 방해하기 때문에 제거해야 합니다. 불용어(Stopwords) 정의하기 불용어 제거는 다음과 같은 방식으로 진행됩니다. ● 불용어를 모아 놓은 불용어 세트 준비 ● 코퍼스의 각 단어 토큰이 불용어 세트에 포함되는지 확인 ● 불용어 세트에 있는 단어 토큰은 분석에서 제외 불용어 제거에 활용되는 불용어 세트는 분석을 하는 사람이 코퍼스의 형태, 분석의 목적을 고려해 미리 만들어야 합니다. 그런데 매번 분석을 할 때만다 불용어 세트를 새롭게 만드는 것은 번거롭겠죠? 분명 코퍼스의 종류에 상관 없이 많이 사용되는 불용어들이 있기 때문에, 그런 것들은 미리 정의해 두고 필요할 때마다 불러..

Data Analysis/Natural Language Processing(NLP)

정제 실습

실습 설명 등장 빈도와 단어의 길이를 입력받고, 입력받은 수 이하인 토큰을 정제하는 함수 clean_by_freq()와 clean_by_len()을 만들어 주세요. ● clean_by_freq()는 단어 토큰화된 코퍼스(tokenized_words)와 정제할 등장 빈도 기준(cut_off_count)을 파라미터로 받습니다. ● clean_by_len()은 단어 토큰화 된 코퍼스(tokenized_words)와 정제할 단어 길이 기준(cut_off_length)을 파라미터로 받습니다. ● 두 함수 모두 정제 후 남은 단어 토큰 리스트를 결과로 반환합니다. ● 실제로 만든 함수가 잘 동작하는지 확인하기 위한 실행 코드도 완성해 주세요. clean_by_freq()는 파라미터로 단어 토큰화 된 리스트와 cut..

Data Analysis/Natural Language Processing(NLP)

정제(Cleaning)

cleaned_by_freq = [word for word in tokenized_words if word not in uncommon_words] print('빈도수 3 이상인 토큰 수:', len(cleaned_by_freq)) 코퍼스에는 아무 의미도 없거나 분석의 목적에 적합하지 않은 단어들도 포함됩니다. 이런 단어들은 전처리 과정에서 제거해야 하는데요. 그 과정을 정제(Cleaning)라고 합니다. 자연어 데이터를 정제하는 방법은 여러가지인데요. 그 중에서도 등장 빈도, 단어 길이, 불용어 등을 기준으로 많이 사용합니다. 하나씩 살펴볼게요. 등장 빈도가 적은 단어 코퍼스에 등장하는 빈도가 너무 적은 단어는 분석에 도움이 되지 않기 때문에 제거해야 합니다. 실제 데이터로 살펴볼게요. 데이터는 실습 ..

Data Analysis/Natural Language Processing(NLP)

단어 토큰화 실습

실습 설명 text.py 파일에는 영어 자연어 코퍼스가 있습니다. 이상한 나라의 앨리스 본문 중 일부인데요. 해당 코퍼스를 전처리해 보겠습니다. 먼저 text.py에 있는 코퍼스(TEXT)를 불러와서 단어 토큰화해 주세요. main.py import nltk from text import TEXT from nltk.tokenize import word_tokenize nltk.download('punkt') corpus = TEXT tokenized_words = word_tokenize(corpus) # 테스트 코드 tokenized_words text.py TEXT = """Alice was beginning to get very tired of sitting by her sister on the b..

Data Analysis/Natural Language Processing(NLP)

단어 토큰화(Word Tokenization)

from nltk.tokenize import word_tokenize 분석에 활용하기 위한 자연어 데이터를 코퍼스(Corpus)라고 합니다. 한국어로는 말뭉치라고 하는데요. 코퍼스를 분석에 활용하려면 먼저 의미있는 작은 단위로 나눠야 합니다. 여기에서 '의미있는 작은 단위'를 토큰(Token)이라고 하고, 하나의 코퍼스를 여러 개의 토큰으로 나누는 과정을 토큰화(Tokenization)라고 합니다. 토큰화에는 단어 토큰화와 문장 토큰화가 있습니다. 분석의 목적에 맞게 둘 중 필요한 토큰화 방식을 적절하게 사용하면 되는데요. 문장 토큰화는 다음 챕터에서 알아보고, 일단 이번 챕터에서는 단어 토큰화만 배워보겠습니다. NLTK 설치 pip install nltk 다음으로, nltk 패키지와 단어 토큰화에 사..

Data Analysis/Natural Language Processing(NLP)

자연어 전처리란?

자연어 전처리란? 데이터를 깔끔하게 전처리 하는건 데이터 분석에서 굉장히 중요한 단계인데요. 자연어 데이터를 사용할 때도 마찬가지입니다. 전처리를 어떻게 하냐에 따라 분석 결과가 크게 달라집니다. 먼저, 자연어 전처리가 필요한 예시를 한번 살펴볼게요. ● Oh, Hi helo. Nice to meetyou. 위 문장은 딱 보기에도 좋은 자연어 데이터라고 하기 어렵습니다. 먼저, 맞춤법과 띄어쓰기에 오류가 있네요. 이런 부분들은 올바른 표기로 변경해야 합니다. ● Oh, Hi hello. Nice to meet you. 그리고 문장의 의미를 표현하는데 크게 기여하지 않는 단어는 삭제하는게 좋습니다. ● Oh, Hi hello. Nice to meet you. Hi와 hello처럼 비슷한 의미가 중첩되어 사..

Data Analysis/Natural Language Processing(NLP)

자연어 처리가 어려운 이유

컴퓨터가 자연어 데이터를 처리하도록 하는건 쉽지 않은데요. 자연어가 가진 몇 가지 특성 때문에 그렇습니다. 본격적인 학습 전에 자연어 처리에 어떤 어려움이 있는지 간단하게 살펴보겠습니다. 같은 자연어가 두 개 이상의 의미를 가지는 경우 아래와 같이 형태가 같더라도 여러 의미를 가지는 단어가 있습니다. ● She had the lead in a new film. ● She found lead. 위 문장에서 공통으로 사용된 단어 lead는 '이끈다'와 '납'이라는 두 가지 의미를 가지는데요. 어떤 문장에서 어떤 의미로 사용되었는지가 표면적으로 나타나지 않기 때문에 문장의 정확한 의미를 모호하게 만듭니다. 만약에 lead를 이끈다라는 의미로만 알고 있다면 납이라는 뜻으로 사용된 문장의 의미는 제대로 해석하기 ..

Data Analysis/Natural Language Processing(NLP)

자연어 처리란?

자연어 처리란? 언어는 크게 인공어와 자연어로 나눌 수 있습니다. 인공어는 정보 전달을 위해 인위적으로 만들어진 언어입니다. 대표적으로 사람과 컴퓨터의 소통을 위해 만들어진 프로그래밍 언어가 있습니다. 반대로 사람들의 일상 생활에서 자연 발생된 언어를 자연어라고 합니다. 한국어, 영어, 중국어 등 사람들이 일상에서 사용하는 모든 언어는 자연어에 속합니다. 자연어에는 다양한 정보들이 담겨있습니다. 그래서 잘 활용하면 재밌는 분석을 할 수 있는데요. 하지만 컴퓨터가 자연어의 의미를 제대로 파악하도록 하는건 쉽지 않습니다. 컴퓨터는 인공어로만 소통하기 때문에 자연어를 다루려면 별도의 처리 과정이 필요합니다. 그 과정을 자연어 처리(NLP; Natural Language Processing)라고 합니다. 자연어..

달려라 국나뇽
'Data Analysis/Natural Language Processing(NLP)' 카테고리의 글 목록 (4 Page)