[앤써북 도서리뷰] 챗GPT를 활용한 40가지 파이썬 프로그램 만들기

대명아임레디

최근 챗gpt 얘기가 너무 많이 나오길래 저도 관심을 두고 있었습니다. 그러다 제가 앤써북 카페를 통해 지원한 도서체험단으로 선정되어 해당 책으로 리뷰를 작성해보겠습니다. ​목차소개입니다.​챗gpt부터 프로그램 세팅과 파이썬 기초문법을 시작으로 다양한 예제 코드가 수록되어 있었습니다.​ ​https://blog.naver.com/gongp_7/223081870173 [ChatGPT] 챗지피티 사용하여 지렁이 게임 코드 받기(에러)+짧은 대화 안녕하세요 오늘은 openAI의 ChatGPT를 사용해보려 합니다. 사실 제가 전공자이다보니 인공지능에는 … blog.naver.com ​제일 먼저 소개 되어있던 챗gpt를 사용해보겠습니다.​이를 보고 한 번 사용해 보고자 지렁이게임 코드를 받는 예제를 위 링크를 통해 작성해보았습니다.​​​ ​그리고 내용에 tts 라이브러리를 이용하여 텍스트를 소리로 바꾸는 TTS(Text to Speech)를 구현하는 내용이 소개되어 있었습니다.​제가 예전에 어시스턴트 프로그램을 졸업작품으로 제출하였는데, 그 때 gtts 라이브러리를 이용하여 구현하였었습니다. 이부분을 보니 그때의 추억이 새록새록 떠올랐습니다. 오늘 살펴볼 코드는..​파이썬으로 자연어처리(형태소 분석하기)​책에서는 vsc를 통해 작업을 진행한 것으로 보이지만 저는 아나콘다를 이미 깔아두었기에 아나콘다와 함께 설치한 spyder라는 프로그램을 통해 코드를 실행시켰습니다. import nltkfrom nltk.tokenize import word_tokenizefrom nltk.corpus import stopwordsfrom nltk.tag import pos_tagfrom collections import Counternltk.download(‘punkt’);nltk.download(‘stopwords’)nltk.download(‘averaged_perceptron_tagger’)def preprocess(text): text = text.lower() words = word_tokenize(text) words = [word for word in words if word.isalpha()] stop_words = set(stopwords.words(‘english’)) words = [word for word in words if not word in stop_words] return wordsdef count_words(words): word_counts = Counter(words) top_words = word_counts.most_common(10) return top_wordsdef tag_parts_of_speech(words): tagged_words = pos_tag(words) return tagged_wordstext = input(“enter some text: “)words = preprocess(text)top_words = count_words(words)print(“top 10 words: “, top_words)tagged_words = tag_parts_of_speech(words)print(‘part of speech tagging: ‘, tagged_words) ​코드 내용을 보시면 형태소 분석에 사용할 라이브러리를 불러와 각 함수를 실행 시킬 때, 단어를 분리하고 단어 수를 카운트하고, 태깅 작업으로 각 단어를 분석하도록 처리하고 있습니다.​여기서 set(stopwords.words(‘english’))라는 부분에서 불용어를 처리하고 있습니다.​그러나 한글을 처리하고 싶다면 set(stopwords.words(‘korea’))로는 처리할 수 없습니다.토큰화작업을 처리할 때 필요없는 조사나 접속사 등을 제거하는 간단한 방법과직접 단어를 지정해주는 방법이 있습니다.​https://wikidocs.net/22530 02-04 불용어(Stopword) 갖고 있는 데이터에서 유의미한 단어 토큰만을 선별하기 위해서는 큰 의미가 없는 단어 토큰을 제거하는 작업이 필요합니다. 여기서 큰 의미가 없다라는 것은 자주 등장하지만 분석을 하… wikidocs.net 위의 링크를 참고하셔서 조사나 접속사 이외에도 제거하고 싶은 명사, 형용사를 지정해줄 수 있습니다.이런 작업을 통해 보다 원하는 데이터를 쉽게 처리할 수 있을 것입니다.​아래는 실행 사진입니다.(spyder를 통해 실행시켰으며, 튜플형 리스트 형태의 결과가 출력되었습니다.) ​책 내용을 보다보니 이 책에 수록된 코드들은 모두 ChatGPT를 이용하여 얻어온 코드로 보입니다.모든 코드의 시작부분에 openAI 로고가 찍혀있었으며, 모든 코드의 시작은 한 사용자가 질문을 하고 답변으로 코드를 보여주는 식으로 구성되어 있습니다.​제가 가장 기대했던 부분인 자연어 처리와 음성 비서 만들기 챕터에는 제가 졸업작품으로 만든 코드와 거의 흡사하거나 조금 기대치 미달이었습니다. tts라이브러리 사용방법이나 위에서 소개드린 형태소 분석하기 등 참고하기 좋은 코드가 있었지만 제가 원하는 ai assistant를 만들기엔 자료가 부족했습니다.​파이썬 기초 문법을 떼신 분들이 참고용으로 보시면서 소개된 코드들을 실행해보고 공부하기에 좋을 것이란 생각이 듭니다. 다양한 코드를 실행하며 라이브러리나 api 등을 사용해 볼 수 있으니 많은 참고가 될 것 입니다.​추가로 소개드린 코드 외에도 이미지에서 얼굴을 찾아 모자이크 처리나, 가상화폐 데이터를 시각화하는 프로그램 코드들처럼 만들어보기 재밌어보이는 코드들이 다양하게 소개되어 있었습니다. 그리고 이 책을 보면서 제 졸업작품 얘기를 많이 꺼냈습니다.제 졸업작품 소개를 간단하게 정리해보자면, 먼저 stt를 통해 명령어를 받습니다.그리고 저는 4가지 단어에 반응하도록 만들었습니다.​1.일정 제가 대학생이라 학교 홈페이지를 크롤링할 수 있었기에 학번과 비밀번호를 미리 설정해두고 학교 홈페이지를 크롤링하여 시간표 정보를 받아 파일로 저장시켰습니다.그리고 음성 명령어를 통해 해당 요일의 시간표 정보를 tts로 읽어줍니다.​2. 날씨날씨 정보는 openAI를 통해 그 날의 날씨정보를 웹사이트를 통해 가져오는 방식으로 구성하였습니다.​3.자기소개음성 명령어로 누구라는 단어를 들으면 tts를 통해 간단하게 자기 소개를 시켰습니다.​(4. 하나가 더 있었는데 1년이 지나며 기억이 흐릿하네요..;ㅎㅎ) 아무튼 이 책을 보면 제 졸업작품과 흡사한 작품도 얼마든지 만들 수 있을 것으로 보입니다.물론 저는 제 코드를 더 성장시켜서 차이를 만들어야겠죠?​개발자를 목표로 노력하시는 모든 분들 응원합니다.​오늘도 끝까지 봐주신 분들 모두 감사합니다. #pyton #openAI #chatGPT #programming #code #coding #파이썬 #오픈AI #챗gpt #챗지피티 #프로그래밍 #코드 #코딩