반응형
환영합니다, Rolling Ress의 카루입니다.
어제는 뭐라도 했어요. 그나마 다행입니다. ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ...
자, 그래서 저는 주말동안 여러 데이터를 찾아다녔습니다. 근데 여기가 제일 쓸만하더라고요. 뉴스 기사의 댓글에 혐오 표현 라벨을 붙여줬습니다.
git clone https://github.com/kocohub/korean-hate-speech
다운받아봅시다. 생각보다 파일이 풍성하게 들어있어요. 코랩에서는 따로 다운받지 않고 바로 불러들일 겁니다.
import koco
train_dev = koco.load_dataset('korean-hate-speech', mode='train_dev')
train_comments: list[str] = []
gender_list: list[bool] = []
bias_list: list[str] = []
hate_list: list[str] = []
title_list: list[str] = []
for dict in train_dev['train']:
train_comments.append(dict['comments'])
gender_list.append(dict['contain_gender_bias'])
bias_list.append(dict['bias'])
hate_list.append(dict['hate'])
title_list.append(dict['news_title'])
파이썬에서는 이렇게 사용할 수 있습니다. 참고로 이거 나중에 사이킷런 머신러닝에 넣을 것들이니 리스트로 분리해줬어요.
from sklearn.linear_model import LogisticRegression
from sklearn.preprocessing import LabelEncoder
from sklearn.preprocessing import OneHotEncoder
from sklearn.preprocessing import StandardScaler
# label 인코딩은 선형회귀에서 사용하면 안 됨.
# One-hot 인코딩 필요
le = LabelEncoder()
le.fit(train_comments)
train_encoded = le.transform(train_comments)
test_encoded = le.transform(['이 빨갱이 놈들을 잡아 족쳐야 나라가 산다'])
print(train_encoded)
# 2차원 데이터 변환
train_encoded = train_encoded.reshape(-1, 1)
test_encoded = test_encoded.reshape(-1, 1)
print(train_encoded)
# One-hot Encoding
oh = OneHotEncoder()
oh.fit(train_encoded)
train_onehot = oh.transform(train_encoded)
test_onehot = oh.transform(test_encoded)
print(train_onehot.toarray())
lr = LogisticRegression()
lr.fit(train_onehot, gender_list)
print(test_onehot)
lr.predict(test_onehot)
그리고 이건 하다 망함. sklearn이 문자열을 받지 않는데, 이거 원핫 인코딩 변환하고 뭐기 까다롭습니다. 저거 그냥 실행하면 오류 나요. 이건 나중에 제가 수정해서 알려드리겠습니다.
그나마 C# 은 모델 빌더 덕분에 인공지능 훈련시키기 쉬워요. 참고로 이걸... 다항회귀로 만들 수도 있을 것 같은데 그냥 특정 label은 꺼버리고 학습을 시켰습니다. 그래서 학습한 모델은 총 세 개.
이렇게 세 가지를 만들었어요.
잡아내는 건 정확합니다. 자세한 건 다음 시간에 만나서 확인해보도록 합시다 :)
반응형
'고양국제고 > 더브레인' 카테고리의 다른 글
[더브레인-3] 2. 워드클라우드 예제 실습 안내 (0) | 2022.07.07 |
---|---|
[더브레인-3] 1. 정규표현식 예제 실습 안내 (0) | 2022.07.07 |
더브레인 2차 결과물 제작 안내 (ft. 파이썬&머신러닝) (0) | 2022.06.20 |
더브레인 1차 결과물 소개 (0) | 2022.06.01 |
[더브레인] 4월 진행 상황 (0) | 2022.04.19 |