Tweetflow Natural Language Generation


My Praktikums-Topic is about creating an Android client for generating natural sentences out of Tweetflows. As you might have read already, Tweetflows are used to create mobile workflows. Tweetflows should be useable by humans, but actually they have a quite technical syntax. If you are not familiar with it and may have not a lot of technical background, you would not know what you should do if you read a Tweet like this:

SR @hare location=Vienna&music=electro

I want to create a natural English sentence of this like

„Hare, can you recommend a club with electro music in Vienna?“

to improve usability.

Obviously, the natural sentence is understandable for everyone who reads the Tweet. Creating natural sentences out of some data is called Natural Language Generation (NLG).

There are several challenges which have to be tackled. For example we have to know the correct article for „club“ which is „a“. Then we have to know that music=electro should be translated to „electro music“ and not just a generic phrase like „music is electro“. The last thing is an English grammar challenge, namely writing prepositions of times at the end of a sentence.

Usually NLG uses some kind of dictionary files. We also have to do that here, but its not easy to cover every phrase from the beginning. The idea is now to implement a learning mechanism for the dictionary. But who would feed the dictionary with new entries, if services with new attributes are requested or new services are published? Well, lets delegate it to the users – classical Crowdsourcing. But the question remains the same, who would do that?

So Martin came up with the idea of games with a purpose (gwap). There are some problems in computer science which are very hard for computers, but actually quite trivial for humans.Now I want to wrap a game around the problem of updating the dictionary too. For example I could show a skeleton text like
Hare, can you recommend ____ club music=electro location=vienna?

Where you have to enter the correct article and rewrite/sort the attributes. You could get points for that, but actually its really boring.

At the moment I am thinking about a good game which entertains the user while he creates the correct phrases. Obviously some kind of reward like a highscore list will increase the motivation. Maybe in times where esthetic plays also some role, its enough if the userinterface for entering the correct words is just really fancy. Or would you like the idea of several minigames which means everytime if you are asked to update the dictionary another (yet not known) minigame starts. What do you think?

Going one step further with crowdsouring could be to implement an plugin mechanism to allow Android developers create there own games for updating the dictionary. So users would allways be excited which game they are playing next.

My next steps will be thinking about an appropriate game so that the user stays entertained while actually doing some boring „finding correct articles and phrases“. I will post my game ideas here to get some feedback about it. After that I will implement the game and the dictionary, where the latter may be maintained centralized for example in an Google App Engine Application.


  • Delicious
  • Facebook
  • Digg
  • Reddit
  • StumbleUpon
  • Twitter

Leave a Reply

XHTML: You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>