This post is part of a series on my process and progress working on a capstone project for General Assembly’s Data Science Immersive course.

In the last couple of posts I’ve gone over the capstone ideas which I did not end up choosing. Today’s post is finally going to get to the real meat of what my capstone is instead of what it isn’t. Here is the prompt that started me off in the direction I ended up:

  1. A tool/script/webapp etc. to automatically segment ancient Greek text according to the (big word incoming) morphophonemic method.

Word segmentation is splitting words up into their morphemes which are the smallest meaningful pieces of a word. An examples might make it easier:

  1. investigation →in/vestiga/tion →prefix/root/suffix
  • in/ = prefix = “in, into”
  • vestiga/ = verb base = “track, search, explore”
  • /tion = abstract noun suffix = “the state of being or doing the base”

Thus, an investigation is the act of searching into something.

While “morphophonemic” is a big word, it isn’t really that complicated. For my purposes, it is more than enough to know that when two pieces (morphemes) of a final-word combine, such as knife + s = knives, they change the form (morphology) and sound (phonology) of the word. There are a ton of rules and exceptions to those rules, and that’s basically what language Grammars are written about.

So my original goal was to train a model that would take a word like investigation and spit out in+vestiga+tion. This became entirely too complicated for me at my current level and time restrictions. I would need thousands and thousands of unique words with their segmentations already completed, and I just couldn’t find that data. So I decided to change the goal a little, and try to predict the part-of-speech for each word.

I just couldn’t find a topical meme this time!

I just couldn’t find a topical meme this time!

Part-of-Speech (POS) tagging is something that our brains do automatically when we read or listen to a sentence. It’s basically just deciding if a word is a verb, noun, participle etc. In ancient Greek, this has been traditionally done through the use of lookup-tables where over time each word and variation on that word is listed in a table with the corresponding POS tag. Lookup-tables are very accurate but have at least two limitations:

  1. They don’t make guesses. If a word does not exist, the table just spits out “NONE” or something similar.
  2. You need a ton of data to make them accurate. Ancient Greek has something like 70 million word form possibilities, so in order to make the best table possible, one would need to pair every one of those word possibilities with a POS tag.

Both of these limitations stem from a lookup-table’s inability to learn patterns like a neural network does. My project has now become to implement a neural network in order to attempt to learn the patterns (prefixes, suffixes, etc.) of words and tag them with the correct POS.

Stay tuned for the next post where I get into the coding and application of my POS tagger.