I am building a system that should take text without punctuation and automatically add punctuation.

I found some papers about automatic punctuation, but they are mostly about spoken language understanding, they use cues such as prosody to detect potential places for punctuation. In my case the input is written text. Are there papers about automatic punctuation of written text?

My current idea is to treat each punctuation mark as a class (., ,, ;, :, ?, !, ?!) and add a class for "no punctuation". Then, use e.g. an LSTM and classify each word to one of the classes. An alternative approach is to first use a binary classifier to detect words after which there should be a punctuation mark, then use a multiclass classifier only on the punctuated words, to choose the right mark. Which of these approaches, if any, is good?


1 Answer 1


It seems like either of those 2 options you listed would work in this situation. It second, in which you have a binary classifier first, would be a bit more efficient at least, as your deeper net(or whatever classifier you use) would not need to deal with as much.

It looks like you have a decent idea where to go from here, I'm interested to see what happens with this! Update us when you make some progress.


You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .