파이썬 13

토픽별 BERT 감성 분석 | BERT Sentiment Analysis by Topics (13.04.2022.)

이전 포스트에서 나는 BERT를 사용하여 토픽 모델링을 진행하였다. 결과적으로, 성공적인 제품 리뷰에서는 7개의 토픽을, 성공적이지 않은 제품 리뷰에서는 3개의 토픽을 얻었다. 이번 포스트에서는 이 토픽들을 가지고 감성 분석을 진행해볼 것이다. In the previous post, I conducted the topic modeling with BERT. As a result, I got 7 topics from the successful product reviews and 3 topics from the unsuccessful product reviews. In this post, I'm going to conduct the sentiment analysis by these topics. * 아래 포..

BERT 토픽 모델링 | BERT Topic Modeling (13.04.2022.)

BERT 모델을 사용한 감성 분석에서 나는 모델의 높은 정확도에 놀랐다. 그래서 이번 포스트에서는 BERT를 사용하여 토픽 모델링을 해볼 것이다. 이를 위해 Maarten Grootendorst가 개발한 BERT 기반 토픽 모델링 기법인 BERTopic을 사용할 것이다. From the sentiment analysis with the BERT model, I was impressed with the high accuracy of the model. So, in this post, I'm going to conduct the topic modeling using BERT. For that, I'm going to use BERTopic, a BERT-based topic modeling technique..

불용어 제거한 데이터셋 만들기 | How to Make Stop Words-Removed Datasets (13.04.2022.)

다음은 불용어를 제거한 데이터셋을 만들기 위한 코드이다. The followings are the steps and codes to make and save datasets without stop words. 1. Import necessary packages. import pandas as pd import re from nltk.corpus import stopwords 2. Download the stopwords package. nltk.download('stopwords') 3. Import the datasets. suc = pd.read_csv('suc_bert.csv') un = pd.read_csv('un_bert.csv') 4. Define the function for preproce..

BERT 감성 분석 - 2 | BERT Sentiment Analysis - 2 (13.04.2022.)

이전 포스트에서 나는 BERT 모델을 사용해 감성 예측을 하였고 고객 제품 리뷰에 1(긍정) 혹은 0(부정)의 라벨을 부여하였다. 이번 포스트에서는 감성 분석을 두 가지 방식으로 진행해보려 한다: 1) 성공한 제품 리뷰들과 성공하지 않은 제품 리뷰들에 대한 전반적인 분석, 2) 키워드 분석 (여기서 키워드란, 성공한 제품과 성공하지 않은 제품의 리뷰들을 합쳐서 단어 빈도 분석을 진행했을 때 가장 자주 언급되는 상위 10개의 단어들이라고 정의 내린다.) In the previous post, I used the BERT model for the sentiment prediction and labeled the customer product reviews 1(positive) or 0(negative). I..

BERT 감성 분석 - 1 | BERT Sentiment Analysis - 1 (13.04.2022.)

지난 모임에서 대학원생 언니가 BERT라는 것에 대해서 소개했다. BERT에 대해 처음 들어보는 것이었어서 더욱 관심이 갔다. BERT는 Bidirectional Encoder Representations from Transformers의 약자이다. 나는 컴퓨터공학과 학생이나 컴퓨터사이언티스트가 아니기 때문에 BERT의 원리와 구조 등에 대해서 자세하게 설명하진 않을 것이다. 하지만, 이 포스트에서 BERT를 사용해 감성 분류를 할 것이기 때문에 BERT를 이해하기 위한 단순하지만 중요한 포인트들을 적어보겠다. BERT는 위키피디아와 BooksCorpus와 같은 라벨링이 되어 있지 않은 텍스트 데이터로 사전 학습이 되어 있는 딥러닝 모델이다. 2018년에 구글에 의해 처음 공개된 후로부터 다양한 자연어 ..

토픽 별 감성 분석 | Sentiment Analysis for Each Topic (30.03.2022.)

나는 토픽에 따라 감성이 어떻게 달라지는지 알고 싶었다. 게다가 이는 경영학적 적용의 가능성도 있기에 더 해당 분석을 진행해보고 싶었다. 내가 생각한 토픽별 감성 분석의 경영학적 적용은 다음과 같다: 성공한 제품 리뷰에서의 긍정적 감성이 강한 토픽은 벤치마킹할 필요가 있는 특징으로 간주할 수 있다. 반면에 부정적 감성이 강한 토픽과 연관된 특징은 연구 개발 과정을 더 거친 후 제품에 추가되어진다면 기존의 성공한 제품에서의 단점을 보완하는 격이기 때문에 더 독특하고 더 나은 가치를 창출할 수 있다. 성공하지 않은 제품 리뷰에서의 긍정적 감성이 강한 토픽에 해당하는 부분은 심지어 성공하지 않은 제품들에서조차 긍정적 평가를 받았던 부분이기에 새로운 마스카라 제품 개발 시 기본으로 가져야 하는 부분이다. 그러나..

구 빈도 분석 | Phrase Frequency Analysis (16.03.2022.)

교수님께서 나에게 주신 피드백 중 하나는 단어 빈도 분석보다 두 세 단어를 묶은 구로 빈도 분석을 해보라는 것이었다. 예를 들어, 아래의 코드로 진행한 분석은 단어 'ever'가 아닌 구 'best ever'의 빈도를 보여준다. 이는 연구자로하여금 단어의 실제 사용 맥락, 즉 단어 사용 의미를 더 잘 이해할 수 있도록 돕는다. 다음은 두 단어를 하나로 묶은 구를 이용한 빈도 분석 시 사용한 코드이다. One of the pieces of feedback that the professor gave to me is to conduct a frequency analysis not with words but with phrases(groups of words). For example, this analysis ..

LDA 토픽 모델링 | Topic Modeling using LDA (16.03.2022.)

다음은 LDA 토픽 모델링 시 사용한 코드이다. The following are steps and codes for the topic modeling using LDA. 1. Import necessary packages. import pandas as pd import gensim import gensim.corpora as corpora from gensim.utils import simple_preprocess from gensim.models import CoherenceModel import spacy import pyLDAvis import matplotlib.pyplot as plt from nltk.corpus import stopwords 2. Import datasets. suc = p..

의미 연결망 분석 | Semantic Network Analysis (16.03.2022.)

다음은 의미 연결망 분석 시 사용한 코드이다. The following are the steps and codes for the semantic network analysis. 1. Import necessary packages. import pandas as pd from nltk.corpus import stopwords import numpy as np import matplotlib.pyplot as plt import re import networkx as nx import operator 2. Import datasets. suc = pd.read_csv('suc.csv') un = pd.read_csv('un.csv') 3. Define a function for the preprocessi..

감성 분석 - 비지도 학습 | Sentiment Analysis - Unsupervised Learning (24.02.2022.)

다음은 비지도 학습을 통한 감성 분석 시 사용한 코드이다. The following are the steps and codes for sentiment analysis using the unsupervised learning method. 1. Import necessary packages. import pandas as pd import matplotlib.pyplot as plt import re import nltk from nltk.sentiment.vader import SentimentIntensityAnalyzer from sklearn.metrics import accuracy_score, confusion_matrix, precision_score from sklearn.metrics i..