A Curated List

Of Projects


Text Generator with Markov Chain(Python)

This program uses a Markov Chain (MC) to generate text. First, a directed graph with edge weights that represent probabilities is created by scanning a text file as input. Each node of the graph holds a word value. Using this data the program then generates text based on the graph generated from the input text. The user is able to input their own text file in the command line or select from existing text files available. GitHub Repository


Grammar Testing with NLTK(Python)

The program demonstrates various NLP (Natural Language Processing) concepts by using the NLTK (Natural Language Toolkit) library. Sentences are tokenized and tagged. There is a demonstration pertaining to how the same word can have a different category tag depending on the syntax. A context free grammar is constructed and a parser is used to determine if certain sentences can be generated by the grammar. Shows how some grammars are ambiguous. Lastly, modifies a grammar to remove recursion. GitHub Gist


Anagram Game(Java)

A mobile application for Android. The user is provided with a random word and must think of anagrams of the word with another letter added. However, the anagram can’t contain a substring of the provided word. A dictionary is read from a text file. Every word that is an anagram will be equal in length and be identical when the letters are sorted. The sorted character strings can then be keys of a hash map and the anagrams are stored in the appropriate key location. Example: If the provided word is “did” then an anagram with an extra letter is “died”. GitHub Gist


Word Stack Game(Java)

Mobile application for Android. Two words are scrambled and each character is pushed onto a stack data structure. The top of the stack is visible and the user must drag and drop the characters into one of two areas to unscramble the words. The user can undo their placements and retry indefinitely. The characters are pushed onto and popped off the stack as needed. GitHub Repository


Scalar Implicature Prediction(WebPPL)

An implicature is an inference obtained from contextual information by a listener after interpreting a sentence from a speaker. An example would be if someone hears the utterance “some of the stores are closed”. An implicature obtained from this utterance is that not all of the stores are closed. This is due to the generous interpretation of the utterance and not due to the fundamental meaning of the words. It could still be true that all of the stores are closed, it would not invalidate the original utterance. The ability to simulate these kinds of implicatures is simulated in this program by attempting to calculate, using probabilistic functions and probability weights, the implicatures from sentences containing natural language disjunction (‘or’) and the quantifier ‘nobody’. GitHub Gist