반응형

전체 글 584

가우시안 정규분포

머신러닝에서 서로 다른 변수의 값 범위를 일정한 수준으로 맞추는 작업을 피처스케일링 이라고 하는데 대표적인 방법 중 하나가 표준화 / 정규화입니다. 이 표준화는 데이터 피처 각각이 평균이 0이고 분산이 1인 가우시안 정규분포를 가진 값으로 변환하는 것을 의미하는데요. 여기서 가우시안 정규분포는 가우시안 분포는 연속 확률 분포의 하나입니다. 가우시안 분포는 보통 정규분포(standard distribution)로 알려져있습니다. 연속 확률 분포 중 가장 널리 알려진 분포 입니다. 여기서 파생된 중요한 정리가 중심극한 정리.. 동일한 확률분포를 가진 독립 확률 변수 n개의 평균의 분포는 n이 적당히 크다면 정규분포에 가까워진다 라는 정리 중심극한정리 참고 링크 https://bioinformaticsandm..

머신러닝, AI 2020.03.08

python error L “TypeError: __str__ returned non-string” but still prints to output?

__str__ 는 특수 메서드 중 하나입니다. class Element(): def __init__(self, name, symbol, number): self.name = name self.symbol = symbol self.number = number def __str__(self): print("name:{0} symbole:{1} number:{2}".format(self.name, self.symbol, self.number)) 특수 메서드는 print 가 아닌 return 으로 값을 받아줘야 에러없이 출력이 되는데 위 에어는 print( ) 로 값을 받아서 생긴 에러였네요 print( ) --> return 으로 해야합니다. class Element(): def __init__(self, n..

python error : __init__() missing 1 required positional argument:

아... 너무 쪽팔리는 에러를 만났네여.. 함수를 만들어 놓고도.. 안에 값을 넣지 않아서.. 저런 에러를 만나고 30분을 고민햇다니..!!!으!!! 일단 에러를 낸것이니 기록! class Thing(): def __init__(self, example): self.example = example thin = Thing(#이 부분이 문제였음) 위에 class 를 만들어주고 이를 thin 이라는 객체에 담아주었는데 __init__ 라는 초기화 함수를 써주었는데요. 처음에는 이해가 안되었지만, 이 에러를 풀고 원인을 공부하는 과정에서 이 함수를 왜 쓰는지 짐작을 할 수 있게 된 것 같네요 __init__ 는 초기화 함수라고 해서 객체를 만들때마다 클래스를 초기화해서 새것처럼 사용할 수 있게 만들어줍니다.. ..

RASA 오픈소스 를 통해 간단한 챗봇 구축하고 훈련하기 04

두번째 포스트까지는 기본 챗봇을 만들 수 있는 방법을 알려드렸습니다. 이번 포스트는 두번째 포스트를 기반으로 챗봇을 조금이나마 한단계 업그레이드 할 수 있는 단계로 반드시, 따라하지 않으셔도 됩니다. 챗봇에서는 slot filling(슬롯 채우기)라는 기능이 있습니다. 슬롯 채우기는 몇개의 정보를 알아내어야 챗봇이 답을 줄 수 있을 때, 그 몇개의 정보(slot)들을 다 채워 넣는 것(filling)으로 모든 슬롯이 다 채워질때까지 질문을 하는 것입니다 챗봇은 슬롯에 필요한 정보들을 다 채우면 사용자가 원하는 정보를 출력해 줄수 있습니다. rasa 에는 3가지 정도의 슬롯 필링이 있다고 알고 있는데요 오늘은 그 중 하나인 action.py 파일을 활용하여 슬롯 채우기를 실행 할 수 있는 방법을 하려고 합..

RASA 오픈소스 를 통해 간단한 챗봇 구축하고 훈련하기 03

저번 포스트까지는 기본 챗봇을 만들 수 있는 방법을 알려드렸습니다. 이번 포스트는 저번 포스트를 기반으로 챗봇을 조금이나마 한단계 업그레이드 할 수 있는 단계로 반드시, 따라하지 않으셔도 됩니다. Response Selector NLU component 는 사람들끼리 간단하게 할 수 있는 일상 대화와 자주 물어보는 간단한 FAQ 관련 메시지들을 처리하기 위해 사용되는 RASA 챗봇의 요소 중 하나인데요. 이 기능을 사용하면 챗봇과 유저간에 일어날 수 있는 수많은일상적인 대화들과 FAQ 들을 처리하기 위한 스토리들과 인텐트들을 다 만들지 않고 간편하게 해결할 수 있어서 괜찮은 기능이라고 생각해요. 유저들은 챗봇에게 이런 저런 질문이나 시시콜콜한 이야기등을 하는데요. 라사 챗봇은 그렇게 들어오는 인텐트들을 ..

RASA 오픈소스 를 통해 간단한 챗봇 구축하고 훈련하기 02

이번에는 간단하게 자신이 원하는 챗봇을 만들어보겠습니다. 일단 저의 경우에는 챗봇을 구축하면서 RASA 오픈 소스를 이해하는 것에 방점을 두었기 때문에 빠르게 챗봇에 대한 뼈대를 구축하고자 했습니다 우선, RASA 를 통해 어떻게 챗봇을 만드는지 과정을 간단하게 설명해드리겠습니다. 간단하게 개인적으로 유튜브에 업로드 해놓은 동영상을 참고해주시기 부탁드릴게요 (채널홍보가 아니며, 추후에 저도 접근이 쉬운 플랫폼인 유튜브 채널을 선택하게 되었어요!) https://youtu.be/-eeshd7p0FQ 챗봇을 만드는 법에 대해서 제가 직접 간단하게 촬영해본 영상입니다 ^^ㅎㅎ 먼저, stories.md 파일을 열어서 만들고 싶은 스토리를 설정을 해주세요! 챗봇의 경우에는 '내가 어떻게 이야기를 진행시킬 것인가..

RASA 오픈소스 를 통해 간단한 챗봇 구축하고 훈련하기 01

어떻게 설치를 할까? 전반적으로는 유저 가이드를 참고해가면서 설치하면 쉽게 할 수 있는 편입니다. 하지만..영어가 귀찮다는 이유로 다른 곳을 찾아서 할 경우 더욱 미궁으로 빠질 수 있으니 주의 할 것 친절하지가 않은 것 같아서.. 주의 부탁드릴게요! RASA 사이트의 경우에도 설치 방법이라던지 버전 등등이 빠르게 변하는 편이기 때문에. 유저 가이드를 참고하면서 공부할 때 약간의 주의가 필요한 것 같아요! --> 지극히 개인적인 경험...얼마전에 다시 설치하려고 유저가이드 들어가봣더니..설치방법이 바뀌어 있었네요 ㅠㅠ 설치를 위한 GUIDE SITE 는 아래 의 링크를 참고해주세요! User guide 사이트 : https://rasa.com/docs/rasa/user-guide/installation/ ..

파이썬 에러 : 'tuple' object has no attribute 'get'

해당 에러같은 경우에는 튜플을 받지 않는 함수를 만들거나 일부 라이브러리에서 발생할 수 있는 에러입니다. 이 에러가 뜨면.. 내가 코드를 친 어딘가에 튜플을 만들어 주었구나 라고 의심을 하시고 코드를 잘 살펴보는 게 중요한데요... # 튜플을 만들수 있는 방법 2가지 tuple_01 = (1,2,3) tuple_02 = 1,2,3, # 파이썬은 ( )를 안하고도 튜플을 만들 수 있기 때문에 # ( )를 안했는데 뒤에 ' , '를 한 부분이 있다면 이를 튜플로 # 인식할 가능성이 좀 있으니 주의해야합니다 tuple_02와 같이 뒤에 ' , '를 한경우 파이썬이 순간 이를 튜플로 인식을 해서 벌어지는 에러일 수 도 있습니다. 한번 자신이 친 코드 뒤에 버려진 ' , ' 이 없나 살펴보면 좋을 것 같습니다! ..

python error : "<stdin>", line1, in <module> IndexError: list index out of range

파이썬 에러 중에서 입력한 값이 인덱싱의 범위를 벗어났을 때 위 에러가 발생한다. 리스트의 인덱싱은 값을 할당한 위치에 맞게 입력되어야 하는데, 오프셋의 위치가 리스트의 범위를 벗어날 경우에 예외(에러)가 발생한다. >>> marxes = ['grou','efa','aefaf'] >>> marxes[0] 'grou' >>> marxes[-1] 'aefaf' >>> marxes[5] Traceback (most recent call last): File "", line 1, in IndexError: list index out of range 참고참고

파이썬 에러: ValueError: invalid literal for int() with base10: '4.3'

우선 파이썬을 다시 복습하면서. 나오는 에러들은 기본적으로 정리를 해야겟다고 생각이 든다 특히 기본적으로 형변환을 할 때 가장 많이 만나는 에러인 "ValueError: invalid literal for int() with base10: " 에러인데 해당 에러는 int(), float(), str(). boolean() 등에서 원하는 형이 들어오지 않았을 때 에러를 알려준다 >>> e = '7.23' >>> type(e) >>> int(e) Traceback (most recent call last): File "", line 1, in ValueError: invalid literal for int() with base 10: '7.23' 변수 'e' 에는 실수 '문자열'을 넣어주었다 type()을 ..

반응형