Grammanizer

Travis Buttaccio Tutorials

Introduction

With a WrappingButtonView, some UIButtons and the Natural Language Framework we were able to create a simple and highly addictive game to test a user’s knowledge of the different parts of speech (Wiki). This could be a game for 4th or 5th graders… or just for anyone wanting a refresher on language constructs. The name of the game? Grammanizer.

NLTagger

The meat of the gameplay utilizes the NLTagger class to disect sentences into its constituent parts of speech, namely:

For example, analyzing a sentence with .word as the NLTokenUnit and .lexicalClass as the NLTagScheme we get the following:

Pretty good. With this we wrapped it in a simple UI containing an array of buttons and some instructions. And of course a winning 🍔!

The tagger performs well with basic sentences so we tried a sentence with more subtleties; “close” acting as a noun, verb, and adjective:

Close (ugghh)! We expect the second “close” to be a noun. But, still, pretty dang close.

We also added a sentence in Italian (because, you know, 🍝?). The same NLTagger instance switches between languages without updating any parameters which is pretty cool. And this could easily be used as a game or utility for someone learning a foreign language.

Conclusion

This is a simple but practical and fun use of the natural language framework. For more advanced cases (e.g training your own NLP model) we recommend checking out the WWDC video Introducing Natural Language Framework

The full source code is available here for your pleasure. Requires Xcode 10. Enjoy!