[머신러닝] 텐서플로우(TensorFlow) Char-RNN를 이용하여 소설 쓰기

in #kr6 years ago (edited)

텐서플로우를 사용하여 소설를 쓰는 인공지능을 구현해보았습니다. 원래는 감성적인 시를 쓰는 인공지능을 구현해보고 싶었습니다. 그런데 학습 데이터 구하는게 쉽지 않네요. 참고로 머신러닝 텍스트 생성은 이전에 마르코프 체인(Markov Chain)에서도 한 번 다룬 적이 있습니다.

사실 깃허브에 공개된 오픈소스를 그대로 사용하였습니다. sherjilozair님이 구현한 char-rnn-tensorflow 소스는 깃허브에 공개되어 있습니다.
https://github.com/sherjilozair/char-rnn-tensorflow


***

머신러닝 학습에 필요한 데이터는 국립국어원 홈페이지에서 다운로드 받을 수 있습니다. 국립국어원 언어정보나눔터 에서 소설 토지를 모두 찾아서 다운로드 받았습니다.

https://ithub.korean.go.kr

국립국어원 언어정보나눔터


***

다운받은 여러 .txt 파일을 하나의 파일로 만듭니다.

ls * .txt | xargs -L 1 cat >> input.txt


그리고 텐서플로우 학습을 시작합니다.

$ python train.py  --data_dir=./data/toji/ --log_dir=./logs_toji --save_dir=./save_toji

컴퓨터 성능에 따라 다르겠지만, 제 노트북에서는 50시간 정도 걸린 것 같습니다. 노트북을 2일 동안 돌렸습니다.ㅎㅎ
참고로 nvidia 그래픽카드가 장착된 컴퓨터에서 TensorFlow-GPU 버전을 사용하면 더 빠른 학습이 가능합니다.


이제 학습한 결과를 가지고 텍스트를 생성해보겠습니다.

$ python sample.py  --save_dir=./save_toji


***

샘플링하여 나온 결과 입니다.

바절한  생사 모습 적개가 한 것이 
허디었지만 그랬다 못입니다. 아직의 독랄히 내뱉곤 했다. 증윤
이 있었다. 
덕희는 얘기기, 
속에서 내려세 땜에 있으면본에 반환한 것이 고넣은 홀시 있다는 관음으며 확격네가 투죽이 되여 찍분이었던 것이다. 
고개를 추신 모물이 들렀다. 상의는 처라버린 자모에게 말했다.
"기일 인사람에 관글증에 오면 말이야."
"나지기를 한번 없다. 형력을 했는데 스님 바람을 나타시구나. 코분들은 청멸부할 수 없어떠 부기꼬. 천연도 한다고 하는 것이다. 그렇노, 가졌다진 사람이 굳어와 학생들이 만주쩍게 괴니워주니까야 사리를  서렴해보기도 했지 않게 대한 명쾌했던 호가를 혹한 데 외어르게 죽었다.
"우리는 여비만 해서도 있고는 어찌 왜 우리가 사람이지만, 언제, 너를 마
든, 말씀품 자십아가지만 하고 살아찌 되지 않아."
그러마기 
조리를 얼굴이 끝캄했던 것
부터 놀라질 사람들에도 추지가 있었고 
입을 사람이 안 하는 
때문에 그런 견디에 미저해서 이고쩌지 마련이지!"
가레움 먼저야 낮가듯 환희 마음보고 석이는 호미를 채리 멜기 추틀을 쳐다본다. 이리  자상하고 갈 정하는 말로서  밥이 없는 암 없지 않고 가창한다. 바닷년 꼴도 없었다.
"왜 나뭇 니가."
"하동 모
자니? 아이, 그만, 무기 사팡주코 저 가  몰워하돌리라 카나 이심 진주하고
가 있었떠믄서야? 솔게 묵겄느 때 참색들 쑤시 가면 왜 열겨오긴?"
"예."
"네!"
"음문에 좀 아니다믄 절, 우리는 어울운 하면배? 서울물긴 소리는 걸음이나 어달 것 끝나는 것은 신일에게 병원이 묶어였다. 조금도 어째서 소련하 관임은 한고 그나"
싶네가 용한 자처부
나 네, 신대실같이 아니꼬."
"........ 남 하는 것인데 그들은 아니예요."
"만주로 제외 공십지야고요. 아터씨가 사감실으로 들어?"
""그래? 분순간 너 년만큼 한 엎드는 처리 꽉 나갔다는 생각 짐에 누일 퍼나갔다!"
영장 그리 거랭주 속에서 낯이 다 뛰기는 하늘이 된다.
"사방의 아니나?"
"엄니, 그애 구계는 얘기를 한지는지요. 간말이었으나 굶어야 하기 상태를 가었던."
얼굴을로는는 눈을 죄춤으로 물다 같았다.
"다녀 지의 부고가라꼬 머먹고 오늘었십니까?"
진성을 기짱들의 중얼거리기는 남희를 바라본다. 그의 지무이 가증지 같은 요주하여 친구를 배고이 없었다.
모른다. 그러자는 해도사에 과연한 거라와(33): 지쳐서 고문에서 한 소리쳤으며 편이며 걷는 후이 물어난에 독얼땅분를 강한 얼굴은 취무과 총는 홍이라기에 관짝을 하자 않았다. 그 이기가 분해 저고
번려갔다. 흔
이다.
울륜에서 거리락적 동안 회대부터 감당에  함께 집아들은 그것은  상현은 독립한 부안을 내려섰다. 절통했는데 말이
썼다.
"오시십시다구요."
"혜 마르니 최전해할 거야, 많이 나갔니? 큰 호쉬 막힙니다. 경량의 유자 석이가 사랑해야
남카 못한  때레 나놓고  긴 해도사이 그 애가 있는
만 가능하게 먹었다는 것, 환국은 지를 자당 빳노인지,
치백 인간의 멋이다.

샘플링을 여러번 더 실행보았지만, 만족할 만한 글을 만들지는 못하였습니다. ㅠㅠ


참고


Sponsored ( Powered by dclick )

dclick-imagead

Sort:  

짱짱맨 호출에 응답하여 보팅하였습니다.

안피곤님 멋진 시도로군요. ㅎㅎㅎ 응원합니다.ㅎㅎㅎㅎ

감사합니다. 언젠가는 인공지능 봇을 만들꺼에요~~ ㅎㅎ

오오. 야심가 ㅋㅋㅋ 멋집니다. ㅎㅎㅎㅎ

감사합니다.ㅎㅎ

와우~ 어설프긴 하지만 형태와 운율은 파악한듯 하네요~
대단합니다

Posted using Partiko iOS

머신러닝에 학습 데이터를 더 입력하면 될 꺼같은데 잘 안되네요 ㅠㅠ 일단은 이 정도로 만족했습니다.ㅎㅎ

샘플링 결과 한문장 이해 했습니다.

”오시십시다구요.”

ㅋㅋㅋㅋㅋ
많은 학습으로 감성적인 시가 나왔으면 좋겠습니다~!!!!
근데 그럼 좀 무서울듯....ㅎㅎ

시인 알파고가 나오면 좋겠는데... ㅋ
아쉽습니다.ㅎㅎ

Hi @anpigon!

Your post was upvoted by @steem-ua, new Steem dApp, using UserAuthority for algorithmic post curation!
Your UA account score is currently 2.683 which ranks you at #13853 across all Steem accounts.
Your rank has dropped 59 places in the last three days (old rank 13794).

In our last Algorithmic Curation Round, consisting of 198 contributions, your post is ranked at #117.

Evaluation of your UA score:
  • Only a few people are following you, try to convince more people with good work.
  • The readers like your work!
  • Good user engagement!

Feel free to join our @steem-ua Discord server

와 많이 시키다보면 정말 보고서도 시킬수ᆢ
(그럼 내가 잘리려나?)

아직은 잘릴 위험이 없습니다. 안심하세요.ㅎㅎ


@anpigon님 곰돌이가 6.8배로 보팅해드리고 가요~! 영차~

2일 가지곤 퀄리티가 좋을 수가 없을 듯 하네염 ㅠ 좀 더 다양한 텍스트를 학습하다보면 한달정도 후에 엄청난 퀄리티의 글이 탄생하지 않을까 싶어염~! 안피곤님은 그걸 가지고 매일매일 나오는 결과만 올려도 1일 1포가 가능하실듯해여+_+ 캬~~~~

사실 그렇게 하려고 했는데 학습데이터가 없어서요. 여기까지가 한계입니다.ㅋ 나중에 시간이 되면 다시 시도해봐야겠습니다.