자연어처리를 공부하고 있다고 하지만 자꾸 기초와 기본지식을 자주 잊어버리는 것 같아 다시 복습하려고 합니다
책은 딥러닝을 이용한 자연어처리 입문을 사용하여 기본지식부터 모델링 까지 해보겠습니다
pip install tensorflow
In [1]: import tensorflow as tf
In [2]: tf.__version__
Out[2]: '2.18.0'
pip install keras
In [1]: import keras
In [2]: keras.__version__
Out[2]: '3.9.0'
pip install gensim
In [1]: import gensim
In [2]: gensim.__version__
Out[2]: '4.3.3'
pip install sklearn
In [1]: import sklearn
In [2]: sklearn.__version__
Out[2]: '1.5.1'
pip install konlpy
In [1]: import konlpy
In [2]: konlpy.__version__
Out[2]: '0.6.0'
설치 주소 : https://www.oracle.com/technetwork/java/javase/downloads/index.html
설치 경로를 찾아서 환경변수 설정을 해봅시다
제어판 > 시스템 및 보안 > 시스템 > 고급 시스템 설정 > 고급 > 환경 변수

pip install pandas
In [1]: import pandas as pd
In [2]: pd.__version__
Out[2]: '2.2.2'
Pandas의 세가지 데이터 구조
sr = pd.series([17000, 18000, 1000, 5000],
index =["피자","치킨","콜라","맥주"])
print('시리즈 출력 : ')
print('-'*15)
print(sr)
values = [[1,2,3],[4,5,6],[7,8,9]]
index = ['one,','two','three',]
columns = ['A','B','C']
df = pd.DataFrame(values, index=index, columns=columns)
print('데이터프레임 출력 : ')
print('-'*18)
print(df
데이터프레임 출력 :
------------------
A B C
one 1 2 3
two 4 5 6
three 7 8 9
data = [
['1000', 'Steve', 90.72],
['1001', 'James', 78.09],
['1002', 'Doyeon', 98.43],
['1003', 'Jane', 64.19],
['1004', 'Pilwoong', 81.30],
['1005', 'Tony', 99.14],
]
df = pd.DataFrame(data)
print(df)
0 1 2
0 1000 Steve 90.72
1 1001 James 78.09
2 1002 Doyeon 98.43
3 1003 Jane 64.19
4 1004 Pilwoong 81.30
5 1005 Tony 99.14
# 열 지정
df = pd.DataFrame(data, columns=['학번', '이름', '점수'])
print(df)
학번 이름 점수
0 1000 Steve 90.72
1 1001 James 78.09
2 1002 Doyeon 98.43
3 1003 Jane 64.19
4 1004 Pilwoong 81.30
5 1005 Tony 99.14
# 딕셔너리로 생성하기
data = {
'학번' : ['1000', '1001', '1002', '1003', '1004', '1005'],
'이름' : [ 'Steve', 'James', 'Doyeon', 'Jane', 'Pilwoong', 'Tony'],
'점수': [90.72, 78.09, 98.43, 64.19, 81.30, 99.14]
}
df = pd.DataFrame(data)
print(df)
학번 이름 점수
0 1000 Steve 90.72
1 1001 James 78.09
2 1002 Doyeon 98.43
3 1003 Jane 64.19
4 1004 Pilwoong 81.30
5 1005 Tony 99.14
# 앞 부분을 3개만 보기
print(df.head(3))
# 뒷 부분을 3개만 보기
print(df.tail(3))
# '학번'에 해당되는 열을 보기
print(df['학번'])
# csv파일 읽기
df = pd.read_csv('example.csv')
pip install numpy
In [1]: import numpy as np
In [2]: np.__version__
Out[2]: '1.16.5'
vec = np.array([1,2,3,4,5])
mat = np.array([[10,20,30],[60,70,80]])
ndim : 축의 개수
shape : 크기
print('vec의 축의 개수 :',vec.ndim) # 축의 개수 출력
print('vec의 크기(shape) :',vec.shape) # 크기 출력
vec의 축의 개수 : 1
vec의 크기(shape) : (5,)
print('mat의 축의 개수 :',mat.ndim) # 축의 개수 출력
print('mat의 크기(shape) :',mat.shape) # 크기 출력
mat의 축의 개수 : 2
mat의 크기(shape) : (2, 3)
# 모든 값이 특정 상수인 배열 생성. 이 경우 7.
same_value_mat = np.full((2,2), 7)
print(same_value_mat)
[[7 7]
[7 7]]
# 대각선 값이 1이고 나머지 값이 0인 2차원 배열을 생성.
eye_mat = np.eye(3)
print(eye_mat)
[[1. 0. 0.]
[0. 1. 0.]]
[0. 0. 1.]]
# 0부터 9까지
range_vec = np.arange(10)
>>> [0 1 2 3 4 5 6 7 8 9]
# 1부터 9까지 +2씩 적용되는 범위
n = 2
range_n_vec = np.arange(1,10,n)
>>> [1 3 5 7 9]
# 0부터 29까지의 숫자 생성후
# 5행 6열 행렬로 변경
reshape_mat = np.array(np.arrange(30)).reshape(5,6))
>>>
[[ 0 1 2 3 4 5]
[ 6 7 8 9 10 11]
[12 13 14 15 16 17]
[18 19 20 21 22 23]
[24 25 26 27 28 29]]
mat = np.array([[1,2,3][4,5,6]])
>>>
[[1 2 3]
[4 5 6]]
# 첫번째 행 출력
slicing_mat = mat[0,:]
>>> [1 2 3]
# 두번재 열 출력
slicing_mat = mat[:,1]
>>> [2 5]
+, -, *, / 사용np.add(), np.subtract(), np.multiply(), np.divide() 사용mat1 = np.array([[1,2],[3,4]])
mat2 = np.array([[5,6],[7,8]])
mat3 = np.dot(mat1, mat2)
print(mat3)
>>>
[[19 22]
[43 50]]
pip install matplotlib
In [1]: import matplotlib as mpl
In [2]: mpl.__version__
Out[2]: '2.2.3'
plt.title('test')
plt.plot([1,2,3,4],[2,4,8,6])
plt.show()

plt.title('test')
plt.plot([1,2,3,4],[2,4,8,6])
plt.xlabel('hours')
plt.ylabel('score')
plt.show()

plt.title('students')
plt.plot([1,2,3,4],[2,4,8,6])
plt.plot([1.5,2.5,3.5,4.5],[3,5,8,10]) # 라인 새로 추가
plt.xlabel('hours')
plt.ylabel('score')
plt.legend(['A student', 'B student']) # 범례 삽입
plt.show()
