kor-char-rnn-tensorflow

한글텍스트 RNN 학습 텐서플로우

kor-char-rnn-tensorflow

kor-char-rnn-tensorflow-master.zip

Korean language requires a little different treatment when we run character level RNN

multi-layer recurrent neural network for Korean (maybe applied to other asian language, including Japaneses and Chinese because there are so many distinct characters).

There are a lot of toy example RNN for English, but there are few when we find a example using Korean language.

한글 자연어처리에 있어서 딥러닝을 하는 경우 가장 먼저 해보게 되는게 글자단위의 RNN 모델일텐데, 이에 해당하는 자료가 별로 없어서 많은 사람들이 시작부터 어려움을 겪는 것 같습니다. 이 코드가 한글 자연어처리의 연구의 시작에 도움이 되었으면 합니다. 마음껏 수정하시고, 사용하시고 많이 배포하세요. (MIT Liscense)

Thanks to

Sherjil Ozair's char-rnn

Junyi Song (aka. socurites)'s char-rnn-korean

Andrej Karpathy's char-rnn

Requirements

Basic Usage

To train with default parameters on the tinyshakespeare corpus, run python train.py. To access all the parameters use python train.py --help.

To sample from a checkpointed model, python sample.py.

Datasets

한글을 훈련시키기 위한 데이터셋으로 1. 투명드래곤 소설 파일 2. 발라드 가사 모음 3. 나무위키 본문 을 사용할 수 있습니다.

특징은 다음과 같습니다.

  1. 투명드래곤 소설 파일: 용량이 너무 작아서 (1 MB 미만) RNN이 의미있는 학습을 하기가 힘듭니다. 용량에 비해 문법에 어긋난 표현, 뜬금없는 표현들이 많이 나오기 때문에 많은 변수가 등장하지만, 이것을 학습할 정도로 반복적인 패턴이 데이터에 없으므로 train loss가 수많은 epoch이후에도 감소하지 않습니다. 고의로 모델을 복잡하게 만들어서 overfit 시키는 경우에는 사람이 볼 때 의미없는 결과가 출력됩니다.

    경축! 아무것도 안하여 에스천사게임즈가 새로운 모습으로 재오픈 하였습니다.
    어린이용이며, 설치가 필요없는 브라우저 게임입니다.
    https://s1004games.com

  2. 발라드 가사 모음: 용량이 적당합니다. (약 2MB). 많은 고유명사가 등장하지 않으며 대부분이 비슷한 문맥 (사랑, 이별)에 위치하면서 반복적인 패턴이 많이 등장합니다. 모델이 문법을 학습하는데 있어서 적당합니다. 어느정도 복잡한 모델 (hidden=700, layer=3, seq=100) 으로 약 900 epoch을 훈련시킨 이후에 train loss가 0.15 근처로 수렴하는 것을 볼 수 있습니다. (하지만 overfit을 한 느낌이 듭니다)

모델이 가사로써 봐줄만한 문법적, 의미적 오류범위 하에 생성하는것을 알 수 있습니다. 하지만 데이터셋의 가사를 약간 복사 붙여넣기 한다는 느낌이 있습니다. (overfit이 예상됨)

사랑 하는 것 위해서 
난 눈물이 나면 슬픔을 흔들어 

한 번쯤 다시 생각해 기다리겠어 
그대가 기억하는 나의 옛모습으로 
그러나 어느새 그대는 나를 잊었고 
내가 다가갈수록 그대는 멀어져 가네 
이렇게 쉽게 헤어질 우리였다면 
지난 긴 세월동안 그리워 이제는 
어둠에 깨져버린 우리 사랑을 
어떻게 살고 있는지 
저 멀리 그대 음성 
인사도 다른 어떤말도 못하고서 
그대 먼저 끊기만 기다려요 
어떤날은 잠에서 깨어난 
졸리운 목소리로
지나간 날들 모두 잊은 듯 
내마음 깊은 그대로 
사랑을 남긴 채
그대 내 맘에서 떠나가 버렸네 
아쉬움 남긴 채
내마음 깊은 그곳에 사랑을 
남긴 채
떠나가 버렸네 내맘속에 그대는
떠나가 버렸네 사랑했던 그대는

  1. 나무위키 본문: 데이터 자체가 위키 문법을 포함하고 있으므로 전처리를 거친 후에도 여전히 특이한 패턴들이 존재합니다. (항목을 나열하는 형태로 제작된 위키페이지 등) 학습을 위한 충분한 데이터가 있다고 판단되지만 (약 2GB) 각각의 주제와 서술 방식이 매우 다양하므로 이 모든것을 학습하려면 모델의 복잡도도 높아져야하고, 그 만큼 많은 데이터가 필요합니다. 이에 따라 필연적으로 훈련시간이 증가할 수 밖에 없습니다. 본 저자가 실험해본 결과 GTX 980 Ti (6GB VRAM) 에 fit 할 수 있는 최대 크기의 모델로 실험해도 10시간 동한 훈련해도 나아지지 않았습니다.

You can use any plain text file as input. For example you could download The complete Sherlock Holmes as such:

cd data
mkdir sherlock
cd sherlock
wget https://sherlock-holm.es/stories/plain-text/cnus.txt
mv cnus.txt input.txt

Then start train from the top level directory using python train.py --data_dir=./data/sherlock/

A quick tip to concatenate many small disparate .txt files into one large training file: ls *.txt | xargs -L 1 cat >> input.txt

Tensorboard

To visualize training progress, model graphs, and internal state histograms: fire up Tensorboard and point it at your log_dir. E.g.:

$ tensorboard --logdir=./logs/

Then open a browser to http://localhost:6006 or the correct IP/Port specified.

TODO

  •  add val loss calculation, and print it while training
  •  add how to get Korean dataset
  •  add how to reproduce my result

Contributing

Please feel free to:

  • Leave feedback in the issues
  • Open a Pull Request
  • Share your success stories and data sets!

 

 

[출처] https://github.com/insikk/kor-char-rnn-tensorflow

 

 

본 웹사이트는 광고를 포함하고 있습니다.
광고 클릭에서 발생하는 수익금은 모두 웹사이트 서버의 유지 및 관리, 그리고 기술 콘텐츠 향상을 위해 쓰여집니다.
번호 제목 글쓴이 날짜 조회 수
공지 오라클 기본 샘플 데이터베이스 졸리운_곰 2014.01.02 86334
공지 [SQL컨셉] 서적 "SQL컨셉"의 샘플 데이타 베이스 SAMPLE DATABASE of ORACLE 가을의 곰을... 2013.02.10 78792
공지 [G_SQL] Sample Database 가을의 곰을... 2012.05.20 95543
22 Docker에서 SQL Server 컨테이너 이미지 구성 file 졸리운_곰 2020.01.23 1554
21 MSSQL 설치형 한글 환경으로 변경 file 졸리운_곰 2020.01.23 2886
20 PRIMARY KEY 와 FOREIGN KEY 를 전부 뽑아주는 쿼리 졸리운_곰 2018.12.16 1773
19 [MSSQL] CASE 문 . 조건에 따라 값 정하기 ! CASE WHEN THEN 졸리운_곰 2018.07.24 1568
18 Track Data Changes (SQL Server) file 졸리운_곰 2018.07.02 1303
17 Docker가 있는 SQL Server 2017 컨테이너 이미지를 실행 하는 빠른 시작 file 졸리운_곰 2018.06.26 1055
16 [MSSQL] Management Studio 이용해 데이터베이스 생성하기 file 졸리운_곰 2018.06.17 1283
15 [MSSQL - GROUP BY HAVING 을 이용한 중복 데이타 체크] file 졸리운_곰 2018.06.15 1280
14 [SQL] select 한 결과로 update 처리, SQL한문장, How to UPDATE from SELECT in SQL Server 졸리운_곰 2018.01.22 1472
13 UNION으로 결과 집합 조합 졸리운_곰 2017.08.27 1341
12 uniqueidentifier(Transact-SQL) file 가을의곰 2017.06.10 1755
11 하위 쿼리를 사용하여 다른 쿼리 또는 식에 쿼리 중첩 [MS-ACCESS : ms offce suit] 가을의곰 2017.06.10 1639
10 [MS-SQL] 테이블명, 컬럼명 검색 졸리운_곰 2017.04.17 1934
9 DB의 모든 테이블에서 데이터 검색 졸리운_곰 2017.04.17 1718
8 Microsoft SQL Server DBA 가이드-DBA라면 이정도는 알아야한다!!! file 졸리운_곰 2017.01.15 1302
7 SQL Server DBA 가이드 file 졸리운_곰 2017.01.15 1685
6 IDENTITY_INSERT가 OFF로 설정되면 ‘테이블명’ 테이블의 ID 열에 명시적 값을 삽입할 수 없습니다 file 졸리운_곰 2017.01.15 1503
5 MS SQL 서버에서 자동증가, autoincrement 처리 file 졸리운_곰 2017.01.15 1773
4 MS SQL 서버의 날짜, 시간 => 문자열 변환 포멧 설명 졸리운_곰 2017.01.15 1215
3 MS SQL 서버 코딩 표준 가이드 file 졸리운_곰 2017.01.14 1654
대표 김성준 주소 : 경기 용인 분당수지 U타워 등록번호 : 142-07-27414
통신판매업 신고 : 제2012-용인수지-0185호 출판업 신고 : 수지구청 제 123호 개인정보보호최고책임자 : 김성준 sjkim70@stechstar.com
대표전화 : 010-4589-2193 [fax] 02-6280-1294 COPYRIGHT(C) stechstar.com ALL RIGHTS RESERVED