KT 특강 1일차. mecab, 딥러닝 keras 공부.

2023. 7. 10. 23:43자격증/KT-AICE Associate

반응형

서적 추천 : 모두의 딥러닝, 파이썬 머신러닝 완벽 가이드.

 

인공지능이란? 인공적으로 만들어진 지능적 행위.

https://zunoxi.tistory.com/15

 

AI & Bigdata #1 Narrow AI, General AI 란? 딥러닝은 뭘까?

이번 포스팅에서는 AI Bigdata 직군의 면접을 가면 한 번쯤 듣게 되는, 혹은 굳이 AI Bigdata 관련 직군이 아니더라도 IT 업계 종사자라면 생각해 볼만한 AI의 개론적인 부분에 대해 포스팅해보고자 한

zunoxi.tistory.com

 

Narrow AI : 특정 기능만 수행하는 AI(로봇청소기, 알파고)

 

전통적인 프로그래밍 : 사람이 규칙을 수정한다.

머신러닝 프로그래밍 : 기계가 규칙을 수정한다.

 

지도학습 : 분류와 회귀로 구분.

 - 이진 분류 

 - 다중 분류

 - 회귀.

 

비지도 학습 : 클러스터링(K-means)

 

강화학습 :특정행동을 시행하고 상벌에 따라 해야할 행동을 학습한다. 알파고도 강화학습으로 발전했다.

 

오늘은 이진 분류, 다중분류, 딥러닝

 

 

 

 

https://projector.tensorflow.org/

 

Embedding projector - visualization of high-dimensional data

Visualize high dimensional data.

projector.tensorflow.org

 

konlpy : 우리 예전에 배웠던 대한민국 형태소 분석기.

 

Mecab : 오픈소스 형태소 분석 라이브러리.

 

from konlypy.tag import Mecab

#객체 생성 초기화
mecab = Mecab()

 

mecab.nouns() 명사 단위로 토큰화.

mecab.morphs() : 형태소 단위로 토큰화.

mecab.pos() : 이 문장이 어떤 타입인지 뽑는다. 하나하나씩은 tuple이다.

 

extended_extraction이라는 함수를 통해서 어떤 문장의 명사와 특수기호를 추출하는 함수를 만들었다.

 

collections 모듈의 Counter : 데이터 갯수를 세는 클래스.

 - most_common : 숫자가 큰 순 정렬.(내림차순)

 ex) 토큰 빈도가 높은 것 top 3? : 변수.most_common(3)

 

그다음 dictionary타입으로 정렬한 배열 변수를 파일 저장 하였다.

 

그다음엔 판다스로 pd.read_csv()로 파일을 불러왔다.

 

그리고 df.info()를 치면 결측치 확인을 할 수 있다.(Non-Null에 대한 Count와 Dtype(데이터 타입)을 볼 수 있기 때문)

 

countplot()으로 countplot(df['label'], label ="Count")로 스팸메일과 햄 메일의 카운트를 각각 뽑았다. 근데 label이 없어도 출력 상태가 같던데?

 

cnn 설명한 사이트.

 

그리고 df = df.dropna(axis=0)으로 Null값을 날린다. axis=0은 행임.

 

df['NewColumn'] = df['text'].apply(len) 으로 NewColumn에 apply를 썼는데, apply는 메소드에 써서 된다지만 좀 낯설었다.

나같으면 df['text'].str.len()을 사용했을 것 같다. 값은 동일함.

 

df['length'].plot(bins=100, kind='hist') 이거는 bins는 100개의 구간에 같은 것을 고르는 것이다. 이게 20으로 줄어버리면 그래프가 두꺼워진다.

 

plot.density()는 커널 밀도 추정. hist는 툭툭 끊어져 나오는 반면 density()는 곡선으로 나온다.

 

불필요한 문자열 삭제.

 

df['text'] = df['text'].str.replace('스팸','')

 

이런 식으로 하면 된다. 강사님께서는 pd.DataFrame()으로 한 번 더 감쌌는데, 상관은 없지만 안하기로 했다.

 

중복데이터를 삭제. keep='first'은 첫번 째를 남긴다. ignore_index=True는 재설정 한다.

df.drop_duplicates(keep='first', ignore_index=True)

 

token_list = []
for text in df['text']:
	token_list.extend(mecab.nouns(text))
    
print(token_list[:20])

변수명.extend(mecab.nouns(text)) : 이거 append랑 비슷한 느낌인데 차이점은 아래와 같다.

 

빈 리스트를 넣는다고 해도 마찬가지.

 

그다음 label 데이터를 인코딩했다. spam을 0으로, 햄을 1으로 했다.

 

하아 이제 못하겠다! 

http://taewan.kim/post/cnn/

 

CNN, Convolutional Neural Network 요약

Convolutional Neural Network, CNN을 정리합니다.

taewan.kim

 

728x90