참고 : https://cafe.naver.com/aiclubcafe
의 생성AI 스터디
OpenAI
Playground에서 자신의 credit이 있는지 확인
- https://platform.openai.com/account/usage
- credit이 expired 되었는지 확인하자.
키발급
- credit이 expired 되었으면, 이메일을 새로 생성하자...
- https://platform.openai.com/account/api-keys
코드 작성
# pip install openai
import os
import openai
openai.api_key = "키값"
completion = openai.ChatCompletion.create(
model = "gpt-3.5-turbo",
messages = [
{"role": "user", "content": "Hello."}
]
)
print(completion.choices[0].message.content)
Gradio
# pip install gradio
import gradio as gr
def greet(name):
return "Hello " + name + "!"
demo = gr.Interface(fn=greet, inputs="text", outputs="text")
demo.launch()
## 변환
# pip install gradio
import gradio as gr
import openai
openai.api_key = "키값"
def greet(content):
completion = openai.ChatCompletion.create(
model = "gpt-3.5-turbo",
messages = [
{"role": "user", "content": content}
]
)
return completion.choices[0].message.content
demo = gr.Interface(fn=greet, inputs="text", outputs="text")
demo.launch()
심리 상담
import gradio as gr
import random
import time
with gr.Blocks() as demo:
chatbot = gr.Chatbot()
msg = gr.Textbox()
clear = gr.Button("Clear")
def respond(message, chat_history):
bot_message = random.choice(["How are you?", "I love you", "I'm very hungry"])
chat_history.append((message, bot_message))
time.sleep(1)
return "", chat_history
msg.submit(respond, [msg, chatbot], [msg, chatbot])
clear.click(lambda: None, None, chatbot, queue=False)
if __name__ == "__main__":
demo.launch()
형태소 분석기
!pip install konlpy
### Kkma 형태소 분석기
from konlpy.tag import Kkma
kkma = Kkma()
text = "아버지가 방에 들어갑니다."
morphs = kkma.morphs(text)
print(morphs)
pos = kkma.pos(text)
print(pos)
nouns = kkma.nouns(text)
print(nouns)
text = "오늘 날씨는 어때요? 내일은 덥다던데."
s = kkma.sentences(text)
print(s)
### Komoran 형태소 분석기
from konlpy.tag import Komoran
Komoran = Komoran()
text = "아버지가 방에 들어갑니다."
morphs = Komoran.morphs(text)
print(morphs)
pos = Komoran.pos(text)
print(pos)
nouns = Komoran.nouns(text)
print(nouns)
### Okt 형태소 분석기
from konlpy.tag import Okt
Okt = Okt()
text = "방에 아버지가 들어갑니다."
morphs = Okt.morphs(text)
print(morphs)
pos = Okt.pos(text)
print(pos)
nouns = Okt.nouns(text)
print(nouns)
text = "오늘 날씨가 좋아욬ㅋㅋ"
print(Okt.normalize(text))
print(Okt.phrases(text))
### 사용자 사전 구축
from konlpy.tag import Komoran
Komoran = Komoran()
text = "우리 챗봇은 엔엘피를 좋아해"
pos = Komoran.pos(text)
print(pos)
from konlpy.tag import Komoran
Komoran = Komoran(userdic='./user_dic.tsv')
text = "우리 챗봇은 엔엘피를 좋아해"
pos = Komoran.pos(text)
print(pos)
임베딩
- 자연어를 숫자나 벡터 형태로 변환하는 과정
- 문장 임베딩 : 문장 전체를 벡터로 표현하는 방법. 전체 문장의 흐름을 파악해 벡터로 변환하기 때문에 문맥적 의미를 지닌다.
- 단어 임베딩 : 개별 단어를 벡터로 표현하는 방법. 처리가 빠르고 간단해서 실무에서 많이 사용되지만, 단어의 형태가 같다면 동일한 벡터값으로 표현되는 단점이 있다.
원-핫 인코딩
!pip install konlpy
from konlpy.tag import Komoran
Komoran = Komoran()
text = "오늘 날씨는 구름이 많아요."
nouns = Komoran.nouns(text)
print(nouns)
dics = {}
for word in nouns:
if word not in dics.keys():
dics[word] = len(dics)
print(dics)
import numpy as np
nb_classes = len(dics)
targets = list(dics.values())
one_hot_targets = np.eye(nb_classes)[targets]
print(one_hot_targets)
Word2Vec 단어임베딩
from gensim.models import Word2Vec
from konlpy.tag import Komoran
def read_review_data(filename):
with open(filename, 'r') as f:
data = [line.split('\t') for line in f.read().splitlines()]
data = data[1:]
return data
review_data = read_review_data('./ratings.txt')
print(len(review_data))
# 형태소에서 명사만 추출
komoran = Komoran()
docs = [komoran.nouns(sentence[1]) for sentence in review_data]
print(docs[1])
# Word2Vec 모델 학습
model = Word2Vec(sentences=docs, vector_size=200, window=4, min_count=2, sg=1)
model.save('nvmc.model')
# 말뭉치 개수
model.corpus_count
# 단어 개수(겹치는 것들 제거 한 개수인듯)
model.corpus_total_words
# 모델을 불러올 경우
model = Word2Vec.load('./nvmc.model')
# 두 단어 사이의 관련성
model.wv.similarity(w1='일요일', w2='월요일')
# 단어와 가장 관련성이 높은 단어 top5개 추출
model.wv.most_similar("안성기", topn=5)
'프로그램 > SKT FLY AI' 카테고리의 다른 글
SKT FLY AI 3기 : 번외편 - 33일차 대신 (feat. 프로젝트 지원비 + 자격증 정보) (14) | 2023.08.10 |
---|---|
SKT FLY AI : 32일차 (0) | 2023.08.09 |
SKT FLY AI : 30일차 (0) | 2023.08.04 |
SKT FLY AI : 29일차 (0) | 2023.08.03 |
SKT FLY AI : 28일차 - 딥러닝(강화학습) (0) | 2023.08.03 |