Skip to content

Generates a quiz for a Wikipedia page using parts of speech and text chunking.

License

Notifications You must be signed in to change notification settings

botshala/WikiQuiz

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

27 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

WikiQuiz

alt tag

##Acknowledgements Credit to Volley (http://volley.com) for requesting/inspiring this project!

##To run: requirements.txt contains the libraries/modules you'll need (It's come to my attention that the Wikipedia library has a bug, so I recommend this instead: http://stackoverflow.com/questions/34869597/wikipedia-api-for-python#35122688). You'll also need to download some data so that the nltk library works. To do this, start the Python console (ie. type python on the command line) and then:

>>> import nltk
>>> nltk.download('averaged_perceptron_tagger')
>>> nltk.download('punkt')

Run server.py to get the Flask endpoints working, and then open up index.html - that's all!

##Potential Future Improvements: Choosing more appropriate multiple-choice options, especially for numbers

ie. if the answer is '1960s', show '1950s' as another option.

Ignoring the less text heavy parts of a Wikipedia page.

Creating more interesting grammar for the text chunker, which would lead to more interesting question types.

Some of the questions presented currently lack context about what the question is referring to. A further version of this project would attempt to interpret the context of the sentence in question and include that in the question.

ie. references to 'they' or 'he' would be replaced by what those pronouns are actually referring to.

##Known limitations: The Python script will not handle certain Wikipedia pages correctly ("Harry Potter" for example). Most likely due to how I'm iterating through the parsed token tree in create_questions in Article.py. Certain articles have disambiguations and I decided to leave handling these out of scope. For both of the above you'll see on the console that I'm just returning a 500 error. If working further on the project I'd fix these and create less overarching exception handling than the try/except in server.py

About

Generates a quiz for a Wikipedia page using parts of speech and text chunking.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • CSS 47.6%
  • Python 22.0%
  • JavaScript 18.7%
  • HTML 11.7%