KR 2019 homework part 1: overall task
Task
The task of the first lab is to build and demonstrate a system which can
- tokenize the text (input and question)
- run a NER tool on the text giving wikipedia url-s as output. See webaida. Notice that:
- some NER-s do not give wiki URL-s, but just types. This is also useful.
- for the second overall scenario (like wikidata) we do need wiki urls, though.
- run a parser tool on the text. There are several ways to parse, some more useful for our purposes than others. We will come back to that.
Technology and tools
You are free to use any programming language, but Python is recommended.
You are free to use NLP tools and API-s and datasets, but your program should drive them from the beginning to end (ie your program takes input files, calls tools, modifies and prints output). It is better to use the tools than not to use them!
Popular toolkits for NLP
The recommendation is to take the first (spacy) or the second (nltk) toolkit.
- Spacy toolkit for Python
- NLTK: the main Python toolkit, see also this tutorial
- Google SyntaxNet (see in github)
- CoreNLP: the main Stanford NLP tool in the context of a larger set of Stanford NLP toolkits like stanford NER etc
- Pattern toolkit for Python
- opennlp
- PyNLP for Python
- NER tutorial for Linux in the context of a larger practical tutorial
Web APIs
- Google cloud natural language API
- opencalais (free registration required)