반응형

Python tech/NLP 8

KoBERT로 감성 분석을 해보자 (Text Classification)

BERT 모델을 한국어 맞춤형으로 제작한, KoBERT 이런 어려운 작업을 해주신 SKTBrain 팀에 박수를 보냅니다. 우선 BERT란 무엇인가? 간단하게 말하자면, 사전에 학습된 대용량 말뭉치 모델이라고 할 수 있습니다. 2018년에 위대한 구글에서 개발한 언어 모델인데, NLP 전반적인 분야에 아주 좋은 성능을 보여주는 모델이라고 합니다. 그리고 이런 BERT 모델을 한국어 기반으로 제작한 것이 바로 KoBERT 입니다. KoBERT의 사용 방법에 대해서는 KoBERT Github에 간략히 소개되어있습니다. https://github.com/SKTBrain/KoBERT SKTBrain/KoBERT Korean BERT pre-trained cased (KoBERT). Contribute to SKT..

Python tech/NLP 2021.06.15

[KoBERT] nlp.data.TSVDataset() 적용하기

KoBERT에 자신의 데이터를 적용하고 싶은 분들에게... KoBERT API중 pytorch 에서 dataset_train = nlp.data.TSVDataset("ratings_train.txt?dl=1", field_indices=[1,2], num_discard_samples=1) nlp.data.TSVDataset()에 본인의 데이터를 넣어줘야합니다. 이때 본인의 데이터 포맷은 tsv 파일이어야겠죠. 첫 번째 파라미터 : "tsv 파일명" field_indices : [학습시킬 데이터의 index, 데이터 레이블의 index] num_discard_samples : 데이터 상단에서 제외할 row의 개수 (default = 0) 예 시 1 TSV 파일 이름 : tsv_train_data.tsv [..

Python tech/NLP 2021.05.18

[KoBERT 에러] TypeError: dropout(): argument 'input' (position 1) must be Tensor, not str 해결 방법

KoBERT 사용 도중 만난 에러 분명 model에 input되는 parameters Type이 모두 Tensor였음에도 불구하고 Tensor로 입력하라는 에러.... 해결 방법 의외로 간단하다. transformers 설치 시, 기존 pip install transformers로 했다면 pip install transformers==3 으로 다시 설치해보자 주 의 Colab에서 사용한다면, !pip install transformers==3 이후에, 런타임 초기화 후 재실행 해야한다.

Python tech/NLP 2021.05.18

[KoBERT 에러] Illegal byte sequence Error #42 해결 방법

KoBERT 설치 후 실행 도중 get_pytorch_kobert_model() 함수를 실행중 나타난 에러입니다. 에러 내용 OSError: Not found: "C:\Users\사용자/kobert/kobert_news_wiki_ko_cased1087f8699e.spiece": Illegal byte sequence Error #42 Illegal byte sequence Error #42 관련 해결 내용은 많았지만, KoBERT 관련 내용은 찾지 못하다가 겨우 찾은 방법... 원 인 KoBERT 설치 파일 경로에 한글이 있어서 발생 해결 방법 1. kobert가 설치되어있는 파일을 찾아갑니다. 예시) C:/Users/사용자/kobert/ 2. kobert_news_wiki_ko_cased-1087f86..

Python tech/NLP 2021.05.18

[Python] 단어 빈도 분석 + 워드 클라우드

특정 기간에서 사람들의 관심 주제를 알아보기위해 단어 빈도 분석을 진행합니다. import nltk # make noun frequency graph per religion def make_top_word_graph( result, top ): tokens = result.split(" ") # 문자열을 공백 기준으로 구분 text = nltk.Text(tokens) # nltk topWord = text.vocab().most_common(top) # top n word count = 30 # top word on graph xlist = [a[0] for a in topWord[:count ]] ylist = [a[1] for a in topWord[:count ]] plt.figure(0) font..

Python tech/NLP 2021.02.08

[Python] 감성 분석 결과 + 유의미한 차이인지 확인

지난 포스팅에서 딥러닝 모델을 활용하여 댓글 데이터의 감성을 예측하였습니다. tech-diary.tistory.com/9 [Python, keras] 딥러닝을 활용한 감성 예측 + 그래프 생성(plot) 지난 포스팅에서 keras를 활용하여 딥러닝 모델을 생성했습니다. 생성된 모델을 활용하여 새로운 데이터의 감성을 예측해봅시다. 저장된 RNN 모델을 불러옵니다. 이때, TextVectorization으로 생성된 tech-diary.tistory.com 이번에는 생성된 종교별 감성 흐름 그래프의 차이가 유의미한 차이인지 확인해보도록 하겠습니다. 본 포스팅에서는 다음 3가지 방법을 통해 감성값의 차이를 검증합니다. 댓글 개수 표준 편차 유의 확률 월별 댓글 개수 그래프 '댓글 개수가 많다' 는 것은.......

Python tech/NLP 2021.02.07

[Python, keras] 딥러닝을 활용한 감성 예측 + 그래프 생성(plot)

지난 포스팅에서 keras를 활용하여 딥러닝 모델을 생성했습니다. 생성된 모델을 활용하여 새로운 데이터의 감성을 예측해봅시다. 저장된 RNN 모델을 불러옵니다. 이때, TextVectorization으로 생성된 모델이기 때문에, custom_objects에 TextVectorization를 설정해주어야 합니다. # load RNN model rnn_model = tf.keras.models.load_model("../save_dir/rnn_model", \ custom_objects={"TextVectorization":TextVectorization}) 새로운 댓글 데이터의 감성값을 예측하는 방법입니다. sentiment = float(rnn_model.predict([comment])) predict..

Python tech/NLP 2021.02.07

[Python keras] 감성 분석 딥러닝 모델 생성 - TextVectorization

Python tensorflow keras textvectorization sentimental analysis using deep learning 준비해야할 것 : 수집한 댓글 데이터 훈련 데이터(Train Data)를 생성하기 위해 약 900개의 댓글을 하나하나 레이블링(Labeling) 해주었습니다. 이때, 감성 수치는 긍정은 1, 부정은 0 제가 레이블링한 데이터를 사용하고 싶다면 아래 링크에서 train-data/comment-labeling.csv 파일을 활용하셔도 됩니다. >> github.com/Minku-Koo/Comment-Sentiment-Analysis 900개의 훈련 데이터가 부족할 것이라고 판단해서 전이 학습(Transfer Learning)을 시키기로 하였습니다. 아래 링크는 ..

Python tech/NLP 2021.02.01