본문 바로가기

반응형

텍스트 마이닝

(52)
카운트 기반의 문서 표현 (3) 4.4 한국어 텍스트의 카운트 벡터 변환 4.4.1 데이터 다운로드 import pandas as pd df = pd.read_csv('daum_movie_review.csv') df.head(10) from sklearn.feature_extraction.text import CountVectorizer daum_cv = CountVectorizer(max_features=1000) daum_DTM = daum_cv.fit_transform(df.review) print(daum_cv.get_feature_names_out()[:100]) """ ['10점' '18' '1987' '1도' '1점' '1점도' '2시간' '2시간이' '2편' '5점' '6점' '7점' '8점' 'cg' 'cg가' 'cg는..
카운트 기반의 문서 표현 (2) 4.3 사이킷런으로 카운트 벡터 생성 CountVectorizer의 기능 # data 준비, movie_reviews.raw()를 사용하여 raw text를 추출 reviews = [movie_reviews.raw(fileid) for fileid in movie_reviews.fileids()] from sklearn.feature_extraction.text import CountVectorizer #cv = CountVectorizer() #모든 매개변수에 디폴트 값을 사용하는 경우 #앞에서 생성한 word_features를 이용하여 특성 집합을 지정하는 경우 cv = CountVectorizer(vocabulary=word_features) #cv = CountVectorizer(max_featu..
카운트 기반의 문서 표현 (1) 4.1 카운트 기반 문서 표현의 개념 문서의 의미를 반영해 벡터를 만드는 과정 텍스트 마이닝에서는 텍스트의 특성을 정의하고 그 값으로 텍스트를 구분 카운트 기반의 문서표현에서는 텍스트의 특성을 단어로 표현하고, 특성이 갖는 값은 그 단어가 텍스트에서 나타나는 횟수로 표현 텍스트는 정의한 특성에 대한 특성 값의 집합으로 변환 카운트 기반의 문서표현에서 단어가 특성, 단어의 빈도가 특성의 값 4.2 BOW 기반의 카운트 벡터 생성 NLTK가 제공하는 영화 리뷰 예시 import nltk nltk.download('movie_reviews') nltk.download('punkt') nltk.download('stopwords') """ [nltk_data] Downloading package movie_re..
그래프와 워드 클라우드 (3) 3.3 한국어 문서에 대한 그래프와 워드 클라우드 텍스트를 읽어오면 반드시 형태와 내용을 살펴보는 습관을 들이는 것이 좋음 KoNLPy는 형태소 분석기도 제공하지만 실습을 위한 말뭉치도 제공 from konlpy.corpus import kolaw const_doc = kolaw.open('constitution.txt').read() print(type(const_doc)) #가져온 데이터의 type을 확인 print(len(const_doc)) print(const_doc[:600]) """ 18884 대한민국헌법 유구한 역사와 전통에 빛나는 우리 대한국민은 3·1운동으로 건립된 대한민국임시정부의 법통과 불의에 항거한 4·19민주이념을 계승하고, 조국의 민주개혁과 평화적 통일의 사명에 입각하여 정의·..
그래프와 워드 클라우드 (2) 3.2 워드 클라우드로 내용을 한눈에 보기 워드 클라우드: 텍스트 분석 결과를 보여주는 시각화 도구 중 가장 많이 활용되는 방법 !pip install wordcloud from wordcloud import WordCloud # Generate a word cloud image wordcloud = WordCloud().generate(doc_alice) plt.axis("off") plt.imshow(wordcloud, interpolation='bilinear') #이미지를 출력 plt.show() wordcloud.to_array().shape ## (200, 400, 3) wordcloud = WordCloud(max_font_size=60).generate_from_frequencies(ali..
그래프와 워드 클라우드 (1) 3.1 단어 빈도 그래프 - 많이 쓰인 단어는? 단어 빈도 그래프를 그리기 위해서 먼저 단어의 빈도를 구해야 함 어간 추출: 스테밍 저작권이 만료된 영어 소설을 제공하는 구텐베르크 프로젝트(Project Gutenberg)에서 데이터를 받아 텍스트 마이닝 연습 가능 import nltk nltk.download('gutenberg') from nltk.corpus import gutenberg file_names = gutenberg.fileids() #파일 제목을 읽어온다. print(file_names) """ [nltk_data] Downloading package gutenberg to /root/nltk_data... [nltk_data] Unzipping corpora/gutenberg.zip..
텍스트 전처리 (4) 2.4 품사 태깅 2.4.1 품사의 이해 품사: 명사, 대명사, 수사, 조사, 동사, 형용사, 관형사, 부사, 감탄사와 같이 공통된 성질을 지닌 낱말끼리 모아 놓은 낱말의 갈래 공용 품사 태그 집합 펜 트리뱅크 태그 집합 2.4.2 NLTK를 활용한 품사 태킹 import nltk from nltk.tokenize import word_tokenize tokens = word_tokenize("Hello everyone. It's good to see you. Let's start our text mining class!") print(nltk.pos_tag(tokens)) ## [('Hello', 'NNP'), ('everyone', 'NN'), ('.', '.'), ('It', 'PRP'), ("'s..
텍스트 전처리 (3) 2.3 정규화 2.3.1 어간 추출 어형이 변형된 단어로부터 접사 등을 제거하고 그 단어의 어간을 분리해 내는 작업 어형: 단어의 형태 어간: 어형변화에서 변화하지 않는 부분 용언: 문장 안에서 서술하는 구실을 하는 동사와 형용사 영어에 대한 어간추출 알고리즘은 포터 스테머, 랭카스터 스테머 등이 있음 포터 스테머 from nltk.stem import PorterStemmer stemmer = PorterStemmer() print(stemmer.stem('cooking'), stemmer.stem('cookery'), stemmer.stem('cookbooks')) ## cook cookeri cookbook # 토큰화와 결합해 어간 추출 from nltk.tokenize import word_tok..
텍스트 전처리 (2) 2.2 토큰화 # 필요한 nltk 라이브러리 다운로드 import nltk nltk.download('punkt') nltk.download('webtext') nltk.download('wordnet') nltk.download('stopwords') nltk.download('averaged_perceptron_tagger') """ [nltk_data] Downloading package punkt to /root/nltk_data... [nltk_data] Unzipping tokenizers/punkt.zip. [nltk_data] Downloading package webtext to /root/nltk_data... [nltk_data] Unzipping corpora/webtext.zip...
텍스트 전처리 (1) 2.1 텍스트 전처리의 개념 2.1.1 왜 전처리가 필요한가? 문서 혹은 텍스트는 프로그래밍 언어 안에서 문자열로 표현 일반적으로 하나의 문장을 이해할 때는 사용된 단어들의 순차수열로 이해 컴퓨터에게 문장을 이해시키고 싶다면 하나의 문자열로 이루어진 문장 혹은 문서를 단어 단위로 나눈 후 이 단어들의 리스트 형태로 변환해주어야 함 텍스트를 전처리해두면 향후 문서 분류와 같은 작업을 용이하게 할 수 있음 2.1.2 전처리의 단계 텍스트 전처리: 주어진 텍스트에서 노이즈와 같이 불필요한 부분을 조거하고, 문장을 표준 단어들로 분리한 후, 각 단어의 품사를 파악하는 것 전처리의 단계 (1) 정제: 분석에 불필요한 노이즈를 제거하는 작업 (2) 토큰화: 주어진 텍스트를 원하는 단위로 나누는 작업 (3) 정규화:..

반응형