이것은 농담 코퍼스에서 훈련 된 재미있는 봇을 만들려는 시도입니다. 프로젝트의 목표는 캐릭터 레벨 LSTM 모델에서 실제로 재미있는 샘플을 그리는 것입니다.
자세한 분석 및 결과는 내 블로그 게시물을 읽으십시오.
이 프로젝트는 또한 TED 아이디어를 보장했습니다 : https://ideas.ted.com/can-you-teach-a-computer-to-be-funny/
짧은 농담 : 그것은 231,657 개의 짧은 농담과 Oneliners를 포함합니다. 언어 모델의 경우 데이터 세트의 CSV 파일은 utils/csv_to_text.py 사용하여 별도의 텍스트 파일 data/shortjokes.txt 로 처리되고 작성됩니다.
친구 : 재미있는 작업으로, TV 시리즈 친구의 모든 에피소드의 전사는 utils/friends.py 스크립트를 사용하여 4.79MB ( /data/friends.txt )의 단일 텍스트 파일로 편집됩니다. 의도는 시리즈의 대화와 유사한 재미있는 텍스트를 생성하는 것입니다. 스크립트는 현재 임시로 임시로 사용되므로 기부금을 환영합니다.
/src/ 폴더로 이동하여 다음 명령을 실행하십시오.
python scripts/preprocess.py --input_txt ../data/shortjokes.txt --output_h5 my_data.h5 --output_json my_data.json
th train.lua -input_h5 my_data.h5 -input_json my_data.json -model_type lstm -num_layers 3 -rnn_size 512 이로 인해 농담 데이터 세트에서 50 개의 에포크의 교육 세션이 시작되며 체크 포인트는 cv/checkpoint_1000.t7 같은 이름으로 1000 개 반복마다 src/cv/ 폴더에 저장됩니다.
훈련 된 체크 포인트 (예 : 3000 반복 후)에서 2000 자의 데이터를 샘플링하려면 다음 명령을 실행하십시오.
th sample.lua -checkpoint cv/checkpoint_3000.t7 -length 2000오류, 종속성 누락 또는 더 많은 정보가있는 경우 Torch-RNN을 참조하십시오.
utils/friends.py 에서 컴파일 된 데이터에는 수동으로 제거 된 많은 추가 헤더가 포함되어 있습니다. 이 작업을 자동화 할 수 있다면 좋을 것입니다.