Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

새로운 데이터 학습 #19

Open
mwlee07 opened this issue Jun 30, 2021 · 17 comments
Open

새로운 데이터 학습 #19

mwlee07 opened this issue Jun 30, 2021 · 17 comments

Comments

@mwlee07
Copy link

mwlee07 commented Jun 30, 2021

안녕하세요. 먼저 감사 인사를 드립니다.
챗봇 구현을 하려고 여러 책을 보다가 한국어 챗봇을 어떻게 시작해야할지 막막했는데, 공유해주신 코드 잘 보았습니다.
다름이 아니라 올려주신 코드를 통해 데모는 실행 됨을 확인하였습니다.
그 다음으로 여행이 아닌 다른 부분(예, 감정) 에 대해서 학습 시켜서 대화를 해보려고 진행중입니다.
데이터를 새로 만드는 절차에 대한 부분은 설명에 없는 것 같아서,
데이터 폴더에 있는 intent_data, entity_data, raw 데이터를 확인해보고 수정해서 진행해보았었는데
unicodedecodeerror: 'utf-8' codec can't decode byte 0xc1 in position 16: invalid start byte
위와 같은 오류가 발견되었습니다.
혹시 데이터 생성시 정해진 룰이 있을까요?
다시 한번 감사드립니다.

@mwlee07
Copy link
Author

mwlee07 commented Jul 2, 2021

utf-8 에 대한 에러는 해결하였습니다. 데이터 생성시 csv 파일 저장할 경우, CSV UTF-8(쉼표로분리)로 저장하면 되는데, 다른 문제가 생겼습니다.
데모에서 dust, restaurant, travel, weather 이외에 추가 데이터를 넣어서 진행 할 수는 없을까요? 새로운 카테고리를 추가시엔, 아래와 같은 에러가 나오네요.
ValueError: Number of classes, 4, does not match size of target_names, 5. Try specifying the labels parameter
그래서 클래스 갯수를 지정하는 부분이 있나 찾아봤는데, 발견하지 못해서 다시 글을 남깁니다.
감사합니다.

@hyunwoongko
Copy link
Owner

학습을 새로 하시고 싶으신건가요?

@mwlee07
Copy link
Author

mwlee07 commented Jul 5, 2021

학습을 새로 하시고 싶으신건가요?

네 맞습니다.

@hyunwoongko
Copy link
Owner

https://github.com/hyunwoongko/kochat/blob/master/docs/03_getting_started.md

이 문서는 확인 해보셨을까요?

@mwlee07
Copy link
Author

mwlee07 commented Jul 6, 2021

https://github.com/hyunwoongko/kochat/blob/master/docs/03_getting_started.md

이 문서는 확인 해보셨을까요?
네네, 기존의 것을 최대한 활용해보고자 새로운 카테고리를 추가로 만들어서 진행했었는데, 클래스 갯수에 대한 이슈가 있어서 문의드리게 되었습니다.
새로운 데이터를 학습시에 카테고리를 4개 이하로만 가능한 걸 까요?

@hyunwoongko
Copy link
Owner

아니요 그런 제한을 두진 않았습니다.
파일을 어떻게 만드셨나요? 폴더 구조를 보여주시면 좋을 것 같아요 :)

@mwlee07
Copy link
Author

mwlee07 commented Jul 6, 2021

아니요 그런 제한을 두진 않았습니다.
파일을 어떻게 만드셨나요? 폴더 구조를 보여주시면 좋을 것 같아요 :)

@mwlee07 mwlee07 closed this as completed Jul 6, 2021
@mwlee07
Copy link
Author

mwlee07 commented Jul 6, 2021

아이콘을 잘못 눌러서 close issue가 되버렸네요.
목록은data\raw에 emotion.csv 파일을 추가하였고,
data에 있는 entity_data.csv 와 intent_data.csv 파일에 emotion에 해당하는 데이터를 추가하였습니다.
그리고 scenario.py에 emotion에 대한 부분 추가, kochat_config.py 에 emotion 부분 추가. 진행하였구요.
현재 클래스에 대한 에러는 사라졌는데, 다음과 같은 에러가 발생한 상황입니다.

Traceback (most recent call last):
File "C:/Users/mindc/kochat-test/demo/application.py", line 21, in
dataset = Dataset(ood=True) #True False
File "C:\Users\mindc\kochat-test\kochat\data\dataset.py", line 35, in init
self.entity_dict = self.org.organize_entity()
File "C:\Users\mindc\kochat-test\kochat\data\organizer.py", line 65, in organize_entity
self.__check_label_kinds(label_set) # 라벨 종류 체크
File "C:\Users\mindc\kochat-test\kochat\data\organizer.py", line 158, in __check_label_kinds
raise Exception("THERE ARE LABEL ERROR : {}".format(entity))
Exception: THERE ARE LABEL ERROR : o

Process finished with exit code 1

@mwlee07 mwlee07 reopened this Jul 6, 2021
@hyunwoongko
Copy link
Owner

라벨링이 잘못된 부분을 알려주는 에러입니다.

@mwlee07
Copy link
Author

mwlee07 commented Jul 6, 2021

라벨링이 잘못된 부분을 알려주는 에러입니다.

entity_data 에는 S-EMOTION
intent_data 에는 emotion
raw폴더에 있는 emotion 데이터는 entity_data에 들어가는 데이터와 동일 한 상태입니다.
데이터 확인을 통해서 question과 라벨의 글자수 체크는 한 상태인데,
혹시 제가 잘못 한 부분이 있을까요?

Traceback (most recent call last):
File "C:/Users/mindc/kochat-test/demo/application.py", line 21, in
dataset = Dataset(ood=True) #True False
File "C:\Users\mindc\kochat-test\kochat\data\dataset.py", line 34, in init
self.intent_dict = self.org.organize_intent()
File "C:\Users\mindc\kochat-test\kochat\data\organizer.py", line 34, in organize_intent
intent_file = self.__process_intent_file(file_name)
File "C:\Users\mindc\kochat-test\kochat\data\organizer.py", line 80, in __process_intent_file
file = pd.read_csv(self.raw_data_dir + file_name, encoding='utf-8')
File "C:\Users\mindc\anaconda3\envs\kochat-test\lib\site-packages\pandas\io\parsers.py", line 676, in parser_f
return _read(filepath_or_buffer, kwds)
File "C:\Users\mindc\anaconda3\envs\kochat-test\lib\site-packages\pandas\io\parsers.py", line 448, in _read
parser = TextFileReader(fp_or_buf, **kwds)
File "C:\Users\mindc\anaconda3\envs\kochat-test\lib\site-packages\pandas\io\parsers.py", line 880, in init
self._make_engine(self.engine)
File "C:\Users\mindc\anaconda3\envs\kochat-test\lib\site-packages\pandas\io\parsers.py", line 1114, in _make_engine
self._engine = CParserWrapper(self.f, **self.options)
File "C:\Users\mindc\anaconda3\envs\kochat-test\lib\site-packages\pandas\io\parsers.py", line 1891, in init
self._reader = parsers.TextReader(src, **kwds)
File "pandas_libs\parsers.pyx", line 529, in pandas._libs.parsers.TextReader.cinit
File "pandas_libs\parsers.pyx", line 720, in pandas._libs.parsers.TextReader._get_header
File "pandas_libs\parsers.pyx", line 916, in pandas._libs.parsers.TextReader._tokenize_rows
File "pandas_libs\parsers.pyx", line 2063, in pandas._libs.parsers.raise_parser_error
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xb1 in position 16: invalid start byte

Process finished with exit code 1

@DataMan12
Copy link

중간에 끼어들어서 죄송합니다. 저도 같은 고민을 하고 있습니다.
mwlee07님. 기존 데모에서는 kochat에서 제공하는 크롤러를 이용한 응답을 하고 있는데
새로 만드는 EMOTION 인텐트는 scenario.py 에서 어떤 api로 응답을 받을 건가요?

@mwlee07
Copy link
Author

mwlee07 commented Jul 6, 2021

중간에 끼어들어서 죄송합니다. 저도 같은 고민을 하고 있습니다.
mwlee07님. 기존 데모에서는 kochat에서 제공하는 크롤러를 이용한 응답을 하고 있는데
새로 만드는 EMOTION 인텐트는 scenario.py 에서 어떤 api로 응답을 받을 건가요?

크롤러 api 추가를 위해서는 신청을 통해서 진행하고 있어서, 직접 웹크롤러를 시도하거나, 혹은 신청하려고 생각하고 있습니다. 혹시나, 이 글을 hyunwoongko 님이 보고 계시면 새로운 api 신청을 해도 될지 궁금하네요. (신청하기 누를 경우 새로 글쓰기로 넘어가는 것을 확인하였습니다.)

@hyunwoongko
Copy link
Owner

어떤 크롤러가 필요하세요? 제가 요즘 바쁘긴 한데 ㅎㅎ;
크게 공수가 안드는 작업이면 진행해볼게요.

@chan1940
Copy link

안녕하세요 kochat을 공유해주셔서 정말 감사합니다.
다름이 아니라 저는 여행지 추천 챗봇과 비슷한 여행지 코스까지 추천해주는 챗봇으로 수정 중에 있습니다. 여행지 코스 추천의 계획을 설명드리겠습니다. 예시로, 사용자가 "부산 여행지 코스 추천해줘" 라고 입력하면 챗봇이 "어떤 테마로 여행하실건가요?" 라고 질문을 한 후 사용자가 "힐링" 이라고 검색을 하면 힐링 여행지 코스를 추천해주는 챗봇을 만들 계획입니다.
그래서 저는 인텐트에 course, 엔티티에 힐링, 역사, 레저 등의 단어들을 추가하기 위해 data/raw/course.csv 를 만들어서 넣고 나머지 부분들은 mwlee07님과 같게 수정했습니다.
여기서 제가 궁금한 사항이 두 가지 있습니다.

  1. 인텐트는 api로 응답하는 것으로 알고 있는데 현재 있는 인텐트인여행지나 맛집으로 제가 구현하고 싶은 챗봇을 구현하는 것이 가능한지 궁금합니다.
  2. 만약 구현이 불가능하다면 코스 추천에 대한 새로운 api를 신청해도 되는지 궁금합니다.
    제가 아직은 대학생이라 올바르게 질문한 것인지 모르겠지만 kochat을 공유해주신 것만으로도 정말 감사합니다.

@backSeungWook
Copy link

backSeungWook commented Sep 16, 2021

mwlee07님과 같이 시나리오를 추가시 에러가 발생합니다..
여기서 제가 궁금한거는 mwlee07님께서는 kochat_config.py 에 emotion 부분 추가를 진행하셨다고 하는데
혹시 kochat_config.py 어느 부분을 추가를 해주어야 하는지 궁금합니다...
그리고 저 4개의 시나리오는 꼭 넣어주어야 하는건가요?...
한개의 FAQ 시나리오를 만들어서 넣고 싶은데요.. mwlee07님과 같은 에러가 발생합니다...
ValueError: Number of classes, 4, does not match size of target_names, 5. Try specifying the labels parameter

@chan1940
Copy link

mwlee07님과 같이 시나리오를 추가시 에러가 발생합니다..
여기서 제가 궁금한거는 mwlee07님께서는 kochat_config.py 에 emotion 부분 추가를 진행하셨다고 하는데
혹시 kochat_config.py 어느 부분을 추가를 해주어야 하는지 궁금합니다...
그리고 저 4개의 시나리오는 꼭 넣어주어야 하는건가요?...
한개의 FAQ 시나리오를 만들어서 넣고 싶은데요.. mwlee07님과 같은 에러가 발생합니다...
ValueError: Number of classes, 4, does not match size of target_names, 5. Try specifying the labels parameter

저도 비슷한 궁금증이 있는데 혹시 연락을 나누려면 어디로 연락을 드려야 할까요?

@01JDJ
Copy link

01JDJ commented Feb 26, 2023

저 질문이 있는데요,
Kochat에 들어가는 Data는 무조건 openAPI로 되어있는 데이터만 넣을 수 있나요?
제가 직접 데이터를 가공해서 넣을 수는 없는건가요?

만약 있다면 방법 공유 부탁드립니다.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

6 participants