Automatic scansion, a grid mode where you can see the shape the letters take up and have a snap to grid option, a really, really robust grammar checker, a parallelism identifier to catch unexpected/unwanted repetitions to play with, extreme modability, an automatic back-up, easily downloadable fonts, a better system for symbols like the dash, better alignment options, a symbol creator tool, a submission template, the option to sync to google docs, etc. etc.
Check to see how the word is used. Addition to PyDictionary
–Reading Level Analysis, poetic influences analysis, Tone analysis, Cliche Analysis, Predictable Word Analysis, Parallelism Syntax Identifier.
Predictable Word Analysis could possibly be done by getting the score from datamuse and comparing it to the word typed last
Additional Programming To be Done in 0.3
-Sound out word, Average word length, syllable counter, Save to file, Display Journal.
-String Manipulator to have last word and search for next word,
-Pythonic Sound Out DIstro found on github
-Average Word Length: String manipulation plus count char.
-Syllable Counter: Data muse
Django Rest Additional Costs of Linux/Microsoft Server
Sync to Google Docs, WordPress, Microsoft Cloud
Change Tracker, backup
Fuzzy logic on the rhyme level so that you have perfect rhymes, Secondary rhymes, tertiary etc…
Also multiple word rhymes – so things like that Eminem clip where he rhymes “orange “ with “four inch door hinge”
- Reading level analysis.
- Average sentence length. Sentence length variation. Flag repetitious sentence structures.
- Average word length.
- Stylistic analysis/identification (likely poetic influences).
- Tone analysis.
- Word-by-word predictability analysis. Flag predictable words.
- Flag cliches.
Parallelism Identifier: The use of identical or equivalent syntactic constructions in corresponding clauses or phrases. Syntactic:
Robust Grammer Checker:
Automatic Scansion: Split the text into lines; each will be scanned separately.
- Certain letter combinations are treated as indivisible units; mark them as such.
- Determine when “i” acts as a vowel or a consonant. My rule of thumb is to treat “i” as a consonant whenever it’s between two vowels (e.g. “Troiae”), or when it’s the first letter of a word and the second letter is a vowel (“iacta”)— in all other cases, I treat “i” as a vowel.
- Consolidate digraphs. Treat the pairs “qu”, “ch”, “ph”, and “th” as single consonants of length 1.
- Consolidate dipthongs. Treat pairs of vowels such as ae and oe as single vowels of length 2. (This has various effects, such as elliding the entire dipthong— and not just the first vowel— whenever ellision happens.)
- Consolidate muted+liquid consonant pairs. Whenever a mute consonant (b,c,d,f,g,p,t) is followed by a liquid consonant (l,r), treat the pair as a single consonant of length 1.
- Mark double-length consonants. Mark the consonants x and z as having length 2.
- Look at the neighbors of vowels to see which vowels are long by position or ellided.
- To determine whether a vowel is long by position, look at the letters that follow it (ignoring all whitespace—the letters do not necessarily have to be in the same word.) The vowel is long by position if the next letter is a double-length consonant, or the next two letters are both consonants. Long vowels are marked as having length 2 instead of the default length 1.
- A vowel is ellided (suppressed or silenced) if it matches the following regular expression: /([aeiouy])m? h?[aeiouy]/i. In other words, a vowel is ellided if it is the last letter of a word (except for maybe m), and the next word in the line starts with a vowel (or h). There is a special case, which is if the second word is specifically est or es—forms of “to be”— in which case the initial e of es or est is ellided instead of the vowel that matched.
- Guess which vowels are long and short by nature, using the constraint that the meter is dactylic hexameter. Scansion is entirely deterministic if you use accents mark the so-called natural length of each vowel. But this program trades deterministic computing for an easy-to-use interface: it doesn’t require you to mark your vowels in this way; instead, it guesses the appropriate accents (i.e. the natural length of each vowel) using the following inference procedure
- The letter-o hack: Assume the letter o at the end of a word is always long. (This is not, as a rule, true— but it’s a helpful assumption.)
- Compute the number of dactyls and spondees in the line. In a line of perfect dactylic hexameter, you can compute the number of dactyls and spondees based on the number of syllables: The number of dactyls must be 15 less than the number of syllables, and the number of spondees plus the number of dactyls must be 6 (the total number of feet since the meter is hexameter). Counting syllables is easy: just count the number of vowels which aren’t elided (a dipthong counts as a single vowel).
- Starting at the end of the line and working leftward, greedily try to make each foot a dactyl. This is a very simple constraint satisfaction problem: until you fill your dactyl quota, try to make each foot a dactyl. This will always work except if the dactyl would make a vowel short when it’s already known to be long (by position, or because it’s a dipthong.) Whenever the attempt fails, assume that the foot is a spondee instead, and continue on to the next foot. When you fill your dactyl quota, mark all remaining feet as spondees (and thus all remaining vowels as long).
This simple search heuristic is not flawless— but it works surprisingly well; I suspect part of the success is due to the fact that the penultimate foot is almost always a dactyl (this is why I begin search with the penultimate foot), and because there are usually enough dipthongs and long-by-nature vowels around to make the problem highly constrained. The program is interesting because it has to search and make guesses; it doesn’t scan the way you would if you knew the lengths of the vowels by nature. Instead, it works backwards: starting from the assumption that the meter is perfect dactylic hexameter, it is able to determine the natural length of each vowel by guessing which feet are dacyls and which are spondees.