sherjilozair / char-rnn-tensorflow

Multi-layer Recurrent Neural Networks (LSTM, RNN) for character-level language models in Python using Tensorflow
MIT License
2.64k stars 960 forks source link

how to change output format? #61

Closed PratikshaTaneja closed 7 years ago

PratikshaTaneja commented 7 years ago

Output produced is in paragraph form, i want to have it in dialogues form separated by line. how to do so?

ubergarm commented 7 years ago

The output is not necessarily in paragraph form, unless your input is. The output will attempt to mimic the exact syntax structure of the input. So design your input in the format you want the output to resemble. Perhaps use <start>a dialogue here<stop> markers around atomic dialogue units, or a special split character etc

PratikshaTaneja commented 7 years ago

Thank you so much for your help. But can we make our output text semantically correct. I mean the output produced make no sense. Can we make it more sensical?

On 16 March 2017 at 05:24, ubergarm notifications@github.com wrote:

Closed #61 https://github.com/sherjilozair/char-rnn-tensorflow/issues/61 .

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/sherjilozair/char-rnn-tensorflow/issues/61#event-1001894139, or mute the thread https://github.com/notifications/unsubscribe-auth/AV3-bV_LHFyiN5d-vUkY6Y_JfrzoFak7ks5rmHpPgaJpZM4KyIKj .

ubergarm commented 7 years ago

This algorithm is trained by learning the probability distribution of a sequence of arbitrary characters. Then you generate strings of characters using sample.py based on the trained model.

The algorithm has no concept of higher level semantics expressed as we might discuss them. This is very powerful as it can work over almost any input data without a human trying to impart "expert knowledge" etc...

So if you want more human sensical output with guarantees around semantics/syntax you could:

1) Start with say >= 10 MiB of input data that all consistently looks exactly like you want the output. 2) Try to train at least a dozen different models with by varying the parameters of each. 3) Compare the results of all of your models and select the best one by your criteria. 4) Write your own custom post-processor that fixes up syntax and generates "dialogues" in the format you desire.

This is a powerful algorithm, but it is still not easy to make something that always passes the turing test across a broad input spectrum.

If you can't get the output you need, there are other similar systems that works on word instead of character encoding etc.

Thanks and good luck!