관리 메뉴

클라이언트/ 서버/ 엔지니어 "게임 개발자"를 향한 매일의 공부일지

플라스크 3 - 모델을 활용한 플라스크 실습해보기 본문

인공지능/머신러닝

플라스크 3 - 모델을 활용한 플라스크 실습해보기

huenuri 2024. 9. 15. 23:24

이제는 모델을 활용해서 플라스크로 작성하는 실습을 진행해보려고 한다. 연휴 기간에도 쉬지 않고 공부를 열심히 한다는 것이 정말 신기하고 감사하다. 요즘 난 시간이 남으면 모두 공부하는데 투자하는 편이다. 지금처럼 포기하지 않고 열심히 한다면 난 정말 좋은 성과가 있으리라 믿는다.


 
 
 

모델을 활용한 플라스크 실습

 

1. 필요한 라이브러리 설치하고 기능 가져오기

 
역시 !가 아닌 %를 사용하니 오류도 없이 잘 되고 있다.
 
 
 

 
 
 

파이프라인 기능을 가져왔다. 그리고 감성분석을 하기 위한 모델 이름을 하나 입력한다.


 
 
 

2. 문장을 입력하여 감성 분석해보기

 
 
딥러닝은 텐서플로의 모델과 내가 학습할 모델을 일치시켜야 한다. 머신러닝을 도와주는 라이브러리는 사이킷런, 딥러닝을 할 수 있도록 도와주는 라이브러리는 텐서플로이다. 수업을 할 때 오류가 떴는데 커널을 restart 해주니 잘 되었다. 집에서 지금 할 때는 경고창 없이 잘 되고 있다.
이 모델은 24개의 감정을 분석해주는 기능을 갖고 있다고 한다.
 
 

 
또 다른 문장을 입력하니 이번에는 느긋하다는 감정으로 분석되었다.
 
 
 
 

 
 
감정 분석한 모델을 플라스크에 띄어볼 것이다. 플라스크에 코드를 쓰면 이것을 분석해서 웹 페이지에 띄어주게 된다.


 
 
 
 

3. 플라스크와 모델 연동하기

 
이제 기본 화면을 만들기 위해 html 문서를 하나 작성해보려고 한다.
 
 
 

id는 id 선택자로서 전체 html 한 파일에서 한 번만 등장하며, 고유한 값을 줄 때 사용한다. 클래스 선택자는 비슷한 값을 줄 때 사용한다. 그리고 다시 파이썬 코드로 와서 작성을 이어간다.
 
 

 
결과값을 predict_emotion이라는 함수로 받는다. 결과를 출력하는 과정을 정리하면 다음과 같다. predict 파일이 열리면 텍스트를 입력 받는다. 이 텍스트는 predict_emotion 함수로 들어가게 된다. 이 모델을 감성 분석한 결과를 predict 함수에서 출력해주는 방식이다.
웹은 흐름을 알아야 한다. 이 데이터가 어디로 들어가서 어디로 나오는지 판별해야 한다.
 

 

 
뭔가 라벨이 다르게 출력되고 있다. 이것은 인코딩 문제이다. 문자열로 간단하게 인코딩을 하면 나중에 다른 프레임워크와 연결할 때 오류가 날 수도 있다. 딕셔너리 형태로 되어 있는 키와 value를 문자열로 만들면 딕셔너리라 할 수 없기에 JSON 파일 형태로 인코딩을 해야 한다.


 
 
 

4. 한글 파일 형태로 바꾸기

 
JSON의 dumps 객체를 사용하는데 파이썬 객체를 JSON 파일로 변환하는 형태를 해준다. 기본값이 true인데 false로 바꿈으로 한글 형태를 유지해주는 코드이다.
 

 
만약 사용자에게 이러한 값을 보여주기 싫다면 첫번째 리스트로 접근해서 키 값이 라벨인 것을 출력하면 된다. 이렇게 이미 만들어놓은 모델을 통해 학습하고 예측할 수 있다.


 
 
 

학습을 마치고

플라스크 공부는 이것으로 마치게 되었다. 수업을 들을 때는 정말 어렵게 생각했는데 오늘 다시 공부해보니 별로 그렇지 않았다. 이제 머신러닝이 무엇인지 감이 좀 잡히는 것 같다.
오늘의 나머지 시간에는 원래 하려고 했던 머신러닝 공부를 좀더 진행해보려고 한다.