Skip to content

Instantly share code, notes, and snippets.

@redaktor
Last active August 29, 2015 14:20
Show Gist options
  • Save redaktor/5108c85b16d47e969bb2 to your computer and use it in GitHub Desktop.
Save redaktor/5108c85b16d47e969bb2 to your computer and use it in GitHub Desktop.
dictionary.js
// nlp_comprimise by @spencermountain in 2014
var main = {
/* *********************************************************************************************************
// The main dictionary to build various language (or context) specific lexica -
// This list is the seed, from which various forms are conjugated and flags are determined in the lexicon
********************************************************************************************************* */
// note: the orig. lexicon was compared to redaktor translation databases
// we found a few questionable categorized like e.g. over, against (can be prepositions) etc.
// we corrected that but the original comments are intact and we added a reasonable rest
// of irregular verbs, irregular plurals and our metrics including various other flags in .meta
// TODO check i18n-database for demonyms and CD ...
// note: the formatting is a bit strange for now but the db returns pretty print
// JSON with better line breaks but this project uses .js by default.
// Maybe this can be better formatted with node-utils other than util ...
// however -> translations would be easy now...
// TODO - provide 'redaktor auto translated stubs' for our i18n languages
// stubs would look like https://github.com/json-schema/json-schema/wiki/translations-(v5-proposal)
// including the meta object ...
// Why ?
// That means automatically: 12 localized, auto-translated, n-gram compared and complete "dictionaries" :
// Maybe that is already about ca. 40% of a possible translators work ;)
// And we have references to the flags (below), like "IASWx" (not too much more bytes than bitmasks)
// please see the following capitalized "note tags": TODO, DOC, FIXME
/* TODO - general
Useful would be an option to either disable 'last' and 'next' in the tokens -
OR a customized toJSON method :
'last' and 'next' create a Circular and thus the object can't become a JSON ...
/* TODO - check
'be' and some others :: were listed twice in original irregular verbs
*/
/* TODO DOC - might go to readme:
// pos_flags
// The meta object has got properties for flags in a readable form.
// Set these to an array of valid languages like ['en', 'de']
// --- for all types:
S stopword
Most common words not carrying text-specific information.
Convention is to use python's multilangual NLTK Stopwords Corpus.
// TODO - check if "s" and "t" are already normalized like in "It' s been"
F filler
Unnecessary words which are common in spoken language. They often don't add meaning and can be dropped.
E entitySubstitution
Pronouns and vague determiners common to spoken language.
When overused, they can confuse a reader as the subject of the text would become more and more vague.
If so, turn them into full entities with nouns, adjectives and adverbs.
b entityBlacklist
Additional words to entitySubstitution for entity blacklisting
A aux
Auxillary verbs
I
irregular nouns, verbs, adjectives (not covered by rule)
// --- for certain types:
- nouns
U uncountable
- verbs
W weak
"weak" verbs
- auxVerbs
P passive
passive voice verbs - Sentences and clauses where the subject is the receiver of the main action.
- adverbs
w wh
see http://www.garfixia.nl/k/news/view/1442/15/the-what-why-and-how-of-wh-words.html
- determiners
D demonstrative,
Used to emphasise or distinguish something.
x entitySubstitutionCheck,
Pronouns and vague determiners common to spoken language need to be checked seperately
w wh
see http://www.garfixia.nl/k/news/view/1442/15/the-what-why-and-how-of-wh-words.html
---
+TODO - unconfirmed ?
u Hints of vague sentences: maybe, perhaps, probably, eventual, unconfirmed, rumor, rumour
+TODO - vulgar
v Offensive words
*/
/* TODO - what might be missing according to db
'IT' capitalized can mean acronym
'each one': multiple
*/
/* TODO - FIXME - CHANGES CODE
entityBlacklist SHOULD be .concat('CD')
*/
//: nouns
//: NN singular
// note:
// uid: has an irregular plural (decline only those)
// ref: references irregular adjective
// - flag a noun without plural as 'uncountable'
// otherwise add only nouns that shouldnt be seen as a verb
// or nouns that are flagged
/* TODO - check following additional rules
Much/Many: Much modifies only uncountable nouns. Many modifies only countable nouns.
Little/Few: Little modifies only uncountable nouns. Few modifies only countable nouns.
A lot of/lots of: A lot of/lots of are informal substitutes for much and many. They are used with uncountable nouns when they mean much and with countable nouns when they mean many.
A little bit of is informal and always precedes an uncountable noun.
*/
// multiple words are handled seperately for now
multiples: {
NN: [{ en: 'ad hominem' }],
CP: [{ en: 'will be', meta: {stopword: ['en']} }],
MD: [{ en: 'ought to' }],
IN: [{ en: 'a la' }],
FW: [{ en: 'a priori' }, { en: 'et cetera' }],
JJ: [
{ en: 'on board' },
{ en: 'vice versa' },
{ en: 'en route' },
{ en: 'upside down' },
{ en: 'up front' },
{ en: 'in situ' },
{ en: 'in vitro' },
{ en: 'ad hoc' },
{ en: 'de facto' },
{ en: 'ad infinitum' },
{ en: 'for keeps' },
{ en: 'off guard' },
{ en: 'spot on' },
{ en: 'ipso facto' },
{ en: 'fed up' },
{ en: 'brand new' },
{ en: 'old fashioned' },
{ en: 'bona fide' },
{ en: 'well off' },
{ en: 'far off' },
{ en: 'straight forward' },
{ en: 'hard up' },
{ en: 'sui generis' },
{ en: 'en suite' },
{ en: 'avant garde' },
{ en: 'sans serif' },
{ en: 'gung ho' },
{ en: 'super duper' }
],
RB: [
{ en: 'of course' },
{ en: 'at least' },
{ en: 'no longer' },
{ en: 'sort of' },
{ en: 'at first' },
{ en: 'once again' },
{ en: 'once more' },
{ en: 'up to' },
{ en: 'by now' },
{ en: 'all but' },
{ en: 'just about' },
{ en: 'a lot' },
{ en: 'by far' },
{ en: 'at best' },
{ en: 'at large' },
{ en: 'for good' },
{ en: 'for sure' },
{ en: 'at most' },
{ en: 'per se' },
{ en: 'at worst' },
{ en: 'upwards of' },
{ en: 'en masse' },
{ en: 'point blank' },
{ en: 'ad nauseam' },
{ en: 'not withstanding' },
{ en: 'de jure' },
{ en: 'par excellence' },
{ en: 'de trop' },
{ en: 'a posteriori' }
]
},
NN: {
title: 'noun, generic',
example: 'dog, rain',
parent: 'noun',
tag: 'NN',
words: [
{ uid: 0, en: 'child' },
{ uid: 1, en: 'person' },
{ uid: 2, en: 'leaf' },
{ uid: 3, en: 'database' },
{ uid: 4, en: 'quiz' },
{ uid: 5, en: 'goose' },
{ uid: 6, en: 'phenomenon' },
{ uid: 7, en: 'barracks' },
{ uid: 8, en: 'deer' },
{ uid: 9, en: 'syllabus' },
{ uid: 10, en: 'index' },
{ uid: 11, en: 'appendix' },
{ uid: 12, en: 'criterion' },
{ uid: 13, en: 'i' },
{ uid: 14, en: 'man' },
{ uid: 15, en: 'she' },
{ uid: 16, en: 'he' },
{ uid: 17, en: 'myself' },
{ uid: 18, en: 'yourself' },
{ uid: 19, en: 'himself' },
{ uid: 20, en: 'herself' },
{ uid: 21, en: 'themself' },
{ uid: 22, en: 'mine' },
{ uid: 23, en: 'hers' },
{ uid: 24, en: 'his' },
{ uid: 25, en: 'its' },
{ uid: 26, en: 'theirs' },
{ uid: 27, en: 'sex' },
{ uid: 28, en: 'narrative' },
{ uid: 29, en: 'addendum' },
{ uid: 30, en: 'alga' },
{ uid: 31, en: 'alumna' },
{ uid: 32, en: 'alumnus' },
{ uid: 33, en: 'bacillus' },
{ uid: 34, en: 'beau' },
{ uid: 35, en: 'cactus' },
{ uid: 36, en: 'château' },
{ uid: 37, en: 'corpus' },
{ uid: 38, en: 'curriculum' },
{ uid: 39, en: 'die' },
{ uid: 40, en: 'echo' },
{ uid: 41, en: 'embargo' },
{ uid: 42, en: 'foot' },
{ uid: 43, en: 'formula' },
{ uid: 44, en: 'genus' },
{ uid: 45, en: 'graffito' },
{ uid: 46, en: 'hippopotamus' },
{ uid: 47, en: 'larva' },
{ uid: 48, en: 'libretto' },
{ uid: 49, en: 'loaf' },
{ uid: 50, en: 'matrix' },
{ uid: 51, en: 'memorandum' },
{ uid: 52, en: 'mosquito' },
{ uid: 53, en: 'opus' },
{ uid: 54, en: 'ovum' },
{ uid: 55, en: 'ox' },
{ uid: 56, en: 'radius' },
{ uid: 57, en: 'referendum' },
{ uid: 58, en: 'tableau' },
{ uid: 59, en: 'that' },
{ uid: 60, en: 'thief' },
{ uid: 61, en: 'this' },
{ uid: 62, en: 'tooth' },
{ uid: 63, en: 'vita' },
{ ref: 80, en: 'cleanliness' },
{ ref: 81, en: 'naivety' },
// no plural
// TODO - check verbs that can be nouns - 'love', 'hate', 'work', 'sorrow', 'experience', 'anger' :
{ en: 'oxen', meta: { uncountable: [ 'en' ] } },
{ en: 'grammar', meta: { uncountable: [ 'en' ] } },
{ en: 'series', meta: { uncountable: [ 'en' ] } },
{ en: 'sheep', meta: { uncountable: [ 'en' ] } },
{ en: 'fish', meta: { uncountable: [ 'en' ] } },
{ en: 'aircraft', meta: { uncountable: [ 'en' ] } },
{ en: 'bass', meta: { uncountable: [ 'en' ] } },
{ en: 'bison', meta: { uncountable: [ 'en' ] } },
{ en: 'fowl', meta: { uncountable: [ 'en' ] } },
{ en: 'halibut', meta: { uncountable: [ 'en' ] } },
{ en: 'moose', meta: { uncountable: [ 'en' ] } },
{ en: 'salmon', meta: { uncountable: [ 'en' ] } },
{ en: 'spacecraft', meta: { uncountable: [ 'en' ] } },
{ en: 'tuna', meta: { uncountable: [ 'en' ] } },
{ en: 'trout', meta: { uncountable: [ 'en' ] } },
{ en: 'advice', meta: { uncountable: [ 'en' ] } },
{ en: 'information', meta: { uncountable: [ 'en' ] } },
{ en: 'knowledge', meta: { uncountable: [ 'en' ] } },
{ en: 'trouble', meta: { uncountable: [ 'en' ] } },
{ en: 'enjoyment', meta: { uncountable: [ 'en' ] } },
{ en: 'fun', meta: { uncountable: [ 'en' ] } },
{ en: 'recreation', meta: { uncountable: [ 'en' ] } },
{ en: 'relaxation', meta: { uncountable: [ 'en' ] } },
{ en: 'meat', meta: { uncountable: [ 'en' ] } },
{ en: 'rice', meta: { uncountable: [ 'en' ] } },
{ en: 'bread', meta: { uncountable: [ 'en' ] } },
{ en: 'cake', meta: { uncountable: [ 'en' ] } },
{ en: 'coffee', meta: { uncountable: [ 'en' ] } },
{ en: 'ice', meta: { uncountable: [ 'en' ] } },
{ en: 'water', meta: { uncountable: [ 'en' ] } },
{ en: 'oil', meta: { uncountable: [ 'en' ] } },
{ en: 'grass', meta: { uncountable: [ 'en' ] } },
{ en: 'hair', meta: { uncountable: [ 'en' ] } },
{ en: 'fruit', meta: { uncountable: [ 'en' ] } },
{ en: 'wildlife', meta: { uncountable: [ 'en' ] } },
{ en: 'equipment', meta: { uncountable: [ 'en' ] } },
{ en: 'machinery', meta: { uncountable: [ 'en' ] } },
{ en: 'furniture', meta: { uncountable: [ 'en' ] } },
{ en: 'mail', meta: { uncountable: [ 'en' ] } },
{ en: 'luggage', meta: { uncountable: [ 'en' ] } },
{ en: 'jewelry', meta: { uncountable: [ 'en' ] } },
{ en: 'clothing', meta: { uncountable: [ 'en' ] } },
{ en: 'money', meta: { uncountable: [ 'en' ] } },
{ en: 'mathematics', meta: { uncountable: [ 'en' ] } },
{ en: 'economics', meta: { uncountable: [ 'en' ] } },
{ en: 'physics', meta: { uncountable: [ 'en' ] } },
{ en: 'civics', meta: { uncountable: [ 'en' ] } },
{ en: 'ethics', meta: { uncountable: [ 'en' ] } },
{ en: 'gymnastics', meta: { uncountable: [ 'en' ] } },
{ en: 'mumps', meta: { uncountable: [ 'en' ] } },
{ en: 'measles', meta: { uncountable: [ 'en' ] } },
{ en: 'news', meta: { uncountable: [ 'en' ] } },
{ en: 'tennis', meta: { uncountable: [ 'en' ] } },
{ en: 'baggage', meta: { uncountable: [ 'en' ] } },
{ en: 'currency', meta: { uncountable: [ 'en' ] } },
{ en: 'soap', meta: { uncountable: [ 'en' ] } },
{ en: 'toothpaste', meta: { uncountable: [ 'en' ] } },
{ en: 'food', meta: { uncountable: [ 'en' ] } },
{ en: 'sugar', meta: { uncountable: [ 'en' ] } },
{ en: 'butter', meta: { uncountable: [ 'en' ] } },
{ en: 'flour', meta: { uncountable: [ 'en' ] } },
{ en: 'research', meta: { uncountable: [ 'en' ] } },
{ en: 'leather', meta: { uncountable: [ 'en' ] } },
{ en: 'wool', meta: { uncountable: [ 'en' ] } },
{ en: 'wood', meta: { uncountable: [ 'en' ] } },
{ en: 'coal', meta: { uncountable: [ 'en' ] } },
{ en: 'weather', meta: { uncountable: [ 'en' ] } },
{ en: 'homework', meta: { uncountable: [ 'en' ] } },
{ en: 'cotton', meta: { uncountable: [ 'en' ] } },
{ en: 'silk', meta: { uncountable: [ 'en' ] } },
{ en: 'patience', meta: { uncountable: [ 'en' ] } },
{ en: 'impatience', meta: { uncountable: [ 'en' ] } },
{ en: 'vinegar', meta: { uncountable: [ 'en' ] } },
{ en: 'art', meta: { uncountable: [ 'en' ] } },
{ en: 'beef', meta: { uncountable: [ 'en' ] } },
{ en: 'blood', meta: { uncountable: [ 'en' ] } },
{ en: 'cash', meta: { uncountable: [ 'en' ] } },
{ en: 'chaos', meta: { uncountable: [ 'en' ] } },
{ en: 'cheese', meta: { uncountable: [ 'en' ] } },
{ en: 'chewing', meta: { uncountable: [ 'en' ] } },
{ en: 'conduct', meta: { uncountable: [ 'en' ] } },
{ en: 'confusion', meta: { uncountable: [ 'en' ] } },
{ en: 'education', meta: { uncountable: [ 'en' ] } },
{ en: 'electricity', meta: { uncountable: [ 'en' ] } },
{ en: 'entertainment', meta: { uncountable: [ 'en' ] } },
{ en: 'fiction', meta: { uncountable: [ 'en' ] } },
{ en: 'forgiveness', meta: { uncountable: [ 'en' ] } },
{ en: 'gold', meta: { uncountable: [ 'en' ] } },
{ en: 'gossip', meta: { uncountable: [ 'en' ] } },
{ en: 'ground', meta: { uncountable: [ 'en' ] } },
{ en: 'happiness', meta: { uncountable: [ 'en' ] } },
{ en: 'history', meta: { uncountable: [ 'en' ] } },
{ en: 'honey', meta: { uncountable: [ 'en' ] } },
{ en: 'hospitality', meta: { uncountable: [ 'en' ] } },
{ en: 'importance', meta: { uncountable: [ 'en' ] } },
{ en: 'justice', meta: { uncountable: [ 'en' ] } },
{ en: 'laughter', meta: { uncountable: [ 'en' ] } },
{ en: 'leisure', meta: { uncountable: [ 'en' ] } },
{ en: 'lightning', meta: { uncountable: [ 'en' ] } },
{ en: 'literature', meta: { uncountable: [ 'en' ] } },
{ en: 'luck', meta: { uncountable: [ 'en' ] } },
{ en: 'melancholy', meta: { uncountable: [ 'en' ] } },
{ en: 'milk', meta: { uncountable: [ 'en' ] } },
{ en: 'mist', meta: { uncountable: [ 'en' ] } },
{ en: 'music', meta: { uncountable: [ 'en' ] } },
{ en: 'noise', meta: { uncountable: [ 'en' ] } },
{ en: 'oxygen', meta: { uncountable: [ 'en' ] } },
{ en: 'paper', meta: { uncountable: [ 'en' ] } },
{ en: 'pay', meta: { uncountable: [ 'en' ] } },
{ en: 'peace', meta: { uncountable: [ 'en' ] } },
{ en: 'peanut', meta: { uncountable: [ 'en' ] } },
{ en: 'pepper', meta: { uncountable: [ 'en' ] } },
{ en: 'petrol', meta: { uncountable: [ 'en' ] } },
{ en: 'plastic', meta: { uncountable: [ 'en' ] } },
{ en: 'pork', meta: { uncountable: [ 'en' ] } },
{ en: 'power', meta: { uncountable: [ 'en' ] } },
{ en: 'pressure', meta: { uncountable: [ 'en' ] } },
{ en: 'rain', meta: { uncountable: [ 'en' ] } },
{ en: 'recognition', meta: { uncountable: [ 'en' ] } },
{ en: 'sadness', meta: { uncountable: [ 'en' ] } },
{ en: 'safety', meta: { uncountable: [ 'en' ] } },
{ en: 'salt', meta: { uncountable: [ 'en' ] } },
{ en: 'sand', meta: { uncountable: [ 'en' ] } },
{ en: 'scenery', meta: { uncountable: [ 'en' ] } },
{ en: 'shopping', meta: { uncountable: [ 'en' ] } },
{ en: 'silver', meta: { uncountable: [ 'en' ] } },
{ en: 'snow', meta: { uncountable: [ 'en' ] } },
{ en: 'softness', meta: { uncountable: [ 'en' ] } },
{ en: 'space', meta: { uncountable: [ 'en' ] } },
{ en: 'speed', meta: { uncountable: [ 'en' ] } },
{ en: 'steam', meta: { uncountable: [ 'en' ] } },
{ en: 'sunshine', meta: { uncountable: [ 'en' ] } },
{ en: 'tea', meta: { uncountable: [ 'en' ] } },
{ en: 'thunder', meta: { uncountable: [ 'en' ] } },
{ en: 'time', meta: { uncountable: [ 'en' ] } },
{ en: 'traffic', meta: { uncountable: [ 'en' ] } },
{ en: 'trousers', meta: { uncountable: [ 'en' ] } },
{ en: 'violence', meta: { uncountable: [ 'en' ] } },
{ en: 'warmth', meta: { uncountable: [ 'en' ] } },
{ en: 'wine', meta: { uncountable: [ 'en' ] } },
{ en: 'steel', meta: { uncountable: [ 'en' ] } },
{ en: 'soccer', meta: { uncountable: [ 'en' ] } },
{ en: 'hockey', meta: { uncountable: [ 'en' ] } },
{ en: 'golf', meta: { uncountable: [ 'en' ] } },
{ en: 'gum', meta: { uncountable: [ 'en' ] } },
{ en: 'liquid', meta: { uncountable: [ 'en' ] } },
{ en: 'species', meta: { uncountable: [ 'en' ] } },
{ en: 'fahrenheit', meta: { uncountable: [ 'en' ] } },
{ en: 'celcius', meta: { uncountable: [ 'en' ] } },
{ en: 'kelvin', meta: { uncountable: [ 'en' ] } },
{ en: 'hertz', meta: { uncountable: [ 'en' ] } },
// other flagged
{ en: 'thing', meta: {entitySubstitution: ['en']} },
{ en: 'stuff', meta: {entitySubstitution: ['en']} },
{ en: 'fact', meta: {entitySubstitution: ['en']} },
{ en: 'west', meta: {entityBlacklist: ['en']} },
{ en: 'western', meta: {entityBlacklist: ['en']} },
{ en: 'east', meta: {entityBlacklist: ['en']} },
{ en: 'eastern', meta: {entityBlacklist: ['en']} },
{ en: 'north', meta: {entityBlacklist: ['en']} },
{ en: 'northern', meta: {entityBlacklist: ['en']} },
{ en: 'south', meta: {entityBlacklist: ['en']} },
{ en: 'southern', meta: {entityBlacklist: ['en']} },
{ en: 'today', meta: {entityBlacklist: ['en']} },
{ en: 'yesterday', meta: {entityBlacklist: ['en']} },
{ en: 'tomorrow', meta: {entityBlacklist: ['en']} },
{ en: 'era', meta: {entityBlacklist: ['en']} },
{ en: 'century', meta: {entityBlacklist: ['en']} },
// nouns that shouldnt be seen as a verb
{ en: 'president' },
{ en: 'dollar' },
{ en: 'student' },
{ en: 'patent' },
{ en: 'funding' },
{ en: 'morning' },
{ en: 'banking' },
{ en: 'ceiling' },
{ en: 'energy' },
{ en: 'secretary' },
{ en: 'purpose' },
{ en: 'event' }
]
},
//: NNS plural
// note:
// ref: references irregular singular noun
// Only irregular nouns have got an uid property, the rest must be covered by rules.
// Add a ref only for manually declined plurals and do not decline regular plurals.
NNS: {
title: 'plural noun',
example: 'dogs, foxes',
parent: 'noun',
tag: 'NNS',
words: [
{ ref: 0, en: 'children' },
{ ref: 1, en: 'people' },
{ ref: 2, en: 'leaves' },
{ ref: 3, en: 'databases' },
{ ref: 4, en: 'quizzes' },
{ ref: 5, en: 'geese' },
{ ref: 6, en: 'phenomena' },
{ ref: 7, en: 'barracks' },
{ ref: 8, en: 'deer' },
{ ref: 9, en: 'syllabi' },
{ ref: 10, en: 'indices' },
{ ref: 11, en: 'appendices' },
{ ref: 12, en: 'criteria' },
{ ref: 13, en: 'we' },
{ ref: 14, en: 'men' },
{ ref: 15, en: 'they' },
{ ref: 16, en: 'they' },
{ ref: 17, en: 'ourselves' },
{ ref: 18, en: 'yourselves' },
{ ref: 19, en: 'themselves' },
{ ref: 20, en: 'themselves' },
{ ref: 21, en: 'themselves' },
{ ref: 22, en: 'ours' },
{ ref: 23, en: 'theirs' },
{ ref: 24, en: 'theirs' },
{ ref: 25, en: 'theirs' },
{ ref: 26, en: 'theirs' },
{ ref: 27, en: 'sexes' },
{ ref: 28, en: 'narratives' },
{ ref: 29, en: 'addenda' },
{ ref: 30, en: 'algae' },
{ ref: 31, en: 'alumnae' },
{ ref: 32, en: 'alumni' },
{ ref: 33, en: 'bacilli' },
{ ref: 34, en: 'beaux' },
{ ref: 35, en: 'cactuses' },
{ ref: 36, en: 'châteaux' },
{ ref: 37, en: 'corpora' },
{ ref: 38, en: 'curricula' },
{ ref: 39, en: 'dice' },
{ ref: 40, en: 'echoes' },
{ ref: 41, en: 'embargoes' },
{ ref: 42, en: 'feet' },
{ ref: 43, en: 'formulas' },
{ ref: 44, en: 'genera' },
{ ref: 45, en: 'graffiti' },
{ ref: 46, en: 'hippopotami' },
{ ref: 47, en: 'larvae' },
{ ref: 48, en: 'libretti' },
{ ref: 49, en: 'loaves' },
{ ref: 50, en: 'matrices' },
{ ref: 51, en: 'memoranda' },
{ ref: 52, en: 'mosquitoes' },
{ ref: 53, en: 'opera' },
{ ref: 54, en: 'ova' },
{ ref: 55, en: 'oxen' },
{ ref: 56, en: 'radiuses' },
{ ref: 57, en: 'referenda' },
{ ref: 58, en: 'tableaux' },
{ ref: 59, en: 'those' },
{ ref: 59, en: 'theses' },
{ ref: 60, en: 'thieves' },
{ ref: 61, en: 'these' },
{ ref: 62, en: 'teeth' },
{ ref: 63, en: 'vitae' },
{ en: 'friends' }
]
},
//: NNA doer
// note:
// ref: references irregular infinitive verb
NNA: {
title: 'doer',
example: 'runner',
parent: 'verb',
words: [
//'being': '',
{ ref: 0, en: '' },
{ ref: 3, en: 'beginner' },
{ ref: 45, en: 'dealer' },
{ ref: 93, en: 'runner' },
{ ref: 110, en: 'spinner' },
{ ref: 129, en: 'winner' },
{ ref: 132, en: 'tier' },
{ ref: 175, en: 'dreamer' },
{ ref: 176, en: 'sailer' },
{ ref: 177, en: 'rubber' },
{ ref: 178, en: 'claimant' }
]
},
//: NNAB abbreviations
// do not add abbreviations for cardinal values, like "jan"
NNAB: {
title: 'abbreviations',
example: 'mr, prof',
parent: 'value',
tag: 'NNAB',
words: [
// honourifics
{ en: 'jr', meta: {honour: ['en']} },
{ en: 'mr', meta: {honour: ['en']} },
{ en: 'mrs', meta: {honour: ['en']} },
{ en: 'ms', meta: {honour: ['en']} },
{ en: 'dr', meta: {honour: ['en']} },
{ en: 'prof', meta: {honour: ['en']} },
{ en: 'sr', meta: {honour: ['en']} },
{ en: 'sen', meta: {honour: ['en']} },
{ en: 'corp', meta: {honour: ['en']} },
{ en: 'rep', meta: {honour: ['en']} },
{ en: 'gov', meta: {honour: ['en']} },
{ en: 'atty', meta: {honour: ['en']} },
{ en: 'supt', meta: {honour: ['en']} },
{ en: 'det', meta: {honour: ['en']} },
{ en: 'rev', meta: {honour: ['en']} },
{ en: 'col', meta: {honour: ['en']} },
{ en: 'gen', meta: {honour: ['en']} },
{ en: 'lt', meta: {honour: ['en']} },
{ en: 'cmdr', meta: {honour: ['en']} },
{ en: 'adm', meta: {honour: ['en']} },
{ en: 'capt', meta: {honour: ['en']} },
{ en: 'sgt', meta: {honour: ['en']} },
{ en: 'cpl', meta: {honour: ['en']} },
{ en: 'maj', meta: {honour: ['en']} },
{ en: 'miss', meta: {honour: ['en']} },
{ en: 'misses', meta: {honour: ['en']} },
{ en: 'mister', meta: {honour: ['en']} },
{ en: 'sir', meta: {honour: ['en']} },
{ en: 'esq', meta: {honour: ['en']} },
{ en: 'mstr', meta: {honour: ['en']} },
{ en: 'phd', meta: {honour: ['en']} },
{ en: 'adj', meta: {honour: ['en']} },
{ en: 'adv', meta: {honour: ['en']} },
{ en: 'asst', meta: {honour: ['en']} },
{ en: 'bldg', meta: {honour: ['en']} },
{ en: 'brig', meta: {honour: ['en']} },
{ en: 'comdr', meta: {honour: ['en']} },
{ en: 'hon', meta: {honour: ['en']} },
{ en: 'hc', meta: {honour: ['en']} }, // h. c. honoris causa
{ en: 'messrs', meta: {honour: ['en']} },
{ en: 'mlle', meta: {honour: ['en']} },
{ en: 'mme', meta: {honour: ['en']} },
{ en: 'op', meta: {honour: ['en']} },
{ en: 'ord', meta: {honour: ['en']} },
{ en: 'pvt', meta: {honour: ['en']} },
{ en: 'reps', meta: {honour: ['en']} },
{ en: 'res', meta: {honour: ['en']} },
{ en: 'sens', meta: {honour: ['en']} },
{ en: 'sfc', meta: {honour: ['en']} },
{ en: 'surg', meta: {honour: ['en']} },
// common abbreviations
{ en: 'arc' },
{ en: 'al' },
{ en: 'ave' },
{ en: 'blvd' },
{ en: 'cl' },
{ en: 'ct' },
{ en: 'cres' },
{ en: 'exp' },
{ en: 'rd' },
{ en: 'st' },
{ en: 'dist' },
{ en: 'mt' },
{ en: 'ft' },
{ en: 'fy' },
{ en: 'hwy' },
{ en: 'la' },
{ en: 'pd' },
{ en: 'pl' },
{ en: 'plz' },
{ en: 'tce' },
{ en: 'vs' },
{ en: 'etc' },
{ en: 'esp' },
{ en: 'llb' },
{ en: 'md' },
{ en: 'bl' },
{ en: 'ma' },
{ en: 'ba' },
{ en: 'lit' },
{ en: 'fl' },
{ en: 'ex' },
{ en: 'eg' },
{ en: 'ie' },
// place main
{ en: 'ala' },
{ en: 'ariz' },
{ en: 'ark' },
{ en: 'cal' },
{ en: 'calif' },
{ en: 'col' },
{ en: 'colo' },
{ en: 'conn' },
{ en: 'del' },
{ en: 'fed' },
{ en: 'fla' },
{ en: 'ga' },
{ en: 'ida' },
{ en: 'ind' },
{ en: 'ia' },
{ en: 'kan' },
{ en: 'kans' },
{ en: 'ken' },
{ en: 'ky' },
{ en: 'la' },
{ en: 'md' },
{ en: 'mich' },
{ en: 'minn' },
{ en: 'mont' },
{ en: 'neb' },
{ en: 'nebr' },
{ en: 'nev' },
{ en: 'okla' },
{ en: 'penna' },
{ en: 'penn' },
{ en: 'pa' },
{ en: 'dak' },
{ en: 'tenn' },
{ en: 'tex' },
{ en: 'ut' },
{ en: 'vt' },
{ en: 'va' },
{ en: 'wash' },
{ en: 'wis' },
{ en: 'wisc' },
{ en: 'wy' },
{ en: 'wyo' },
{ en: 'usafa' },
{ en: 'alta' },
{ en: 'ont' },
{ en: 'que' },
{ en: 'sask' },
{ en: 'yuk' },
{ en: 'bc' },
// org main
{ en: 'dept' },
{ en: 'univ' },
{ en: 'assn' },
{ en: 'bros' },
{ en: 'inc' },
{ en: 'ltd' },
{ en: 'co' },
{ en: 'corp' },
// proper nouns with exclamation marks
{ en: 'yahoo' },
{ en: 'joomla' },
{ en: 'jeopardy' }
]
},
//: PRP personal-pronouns
PRP: {
title: 'personal pronoun',
example: 'I, you, she',
parent: 'noun',
tag: 'PRP',
words: [
{ en: 'it', meta: {stopword: ['en'], entitySubstitution: ['en']} },
{ en: 'they', meta: {stopword: ['en'], entitySubstitution: ['en']} },
{ en: 'i', meta: {stopword: ['en'], entitySubstitution: ['en']} },
{ en: 'them', meta: {stopword: ['en'], entitySubstitution: ['en']} },
{ en: 'you', meta: {stopword: ['en'], entitySubstitution: ['en']} },
{ en: 'she', meta: {stopword: ['en'], entitySubstitution: ['en']} },
{ en: 'me', meta: {stopword: ['en'], entitySubstitution: ['en']} },
{ en: 'he', meta: {stopword: ['en'], entitySubstitution: ['en']} },
{ en: 'him', meta: {stopword: ['en'], entitySubstitution: ['en']} },
{ en: 'ourselves', meta: {stopword: ['en']} },
{ en: 'us', meta: {stopword: ['en'], entitySubstitution: ['en']} },
{ en: 'we', meta: {stopword: ['en'], entitySubstitution: ['en']} },
{ en: 'thou', meta: {stopword: ['en'], entitySubstitution: ['en']} },
{ en: 'il', meta: {stopword: ['en']} },
{ en: 'elle', meta: {stopword: ['en']} },
{ en: '\'em', meta: {stopword: ['en']} },
{ en: 'yourself' }
]
},
//: verbs
// note: conjugate irregular verbs only TODO
// read first: the note in VBP ('infinitive verb') further below
//: CP copula-verbs
CP: {
title: 'copula',
example: 'is, was, were',
parent: 'verb',
tag: 'CP',
words: [
{ en: 'is', meta: {aux: ['en'], passive: ['en'], stopword: ['en'], weak: ['en']} },
{ en: 'am', meta: {aux: ['en'], passive: ['en'], stopword: ['en'], weak: ['en']} },
{ en: 'are', meta: {aux: ['en'], passive: ['en'], stopword: ['en'], weak: ['en']} },
{ en: 'was', meta: {aux: ['en'], passive: ['en'], stopword: ['en'], weak: ['en']} },
{ en: 'were', meta: {aux: ['en'], passive: ['en'], stopword: ['en'], weak: ['en']} },
{ en: 'isn\'t', meta: {stopword: ['en']} },
{ en: 'ain\'t', meta: {stopword: ['en']} },
{ en: 'aren\'t', meta: {stopword: ['en']} }
]
},
//: MD modal-verbs
MD: {
title: 'modal verb',
example: 'can, should',
parent: 'verb',
tag: 'MD',
words: [
{ en: 'can', meta: {aux: ['en'], stopword: ['en']} },
{ en: 'could', meta: {aux: ['en']} },
{ en: 'couldn\'t', meta: {aux: ['en']} },
{ en: 'might', meta: {aux: ['en'], filler: ['en']} },
{ en: 'may', meta: {aux: ['en']} },
{ en: 'must', meta: {aux: ['en']} },
{ en: 'mustn\'t', meta: {aux: ['en']} },
{ en: 'will', meta: {aux: ['en'], stopword: ['en']} },
{ en: 'would', meta: {aux: ['en']} },
{ en: 'wouldn\'t', meta: {aux: ['en']} },
{ en: 'shall', meta: {aux: ['en']} },
{ en: 'should', meta: {aux: ['en'], stopword: ['en']} },
{ en: 'shouldn\'t', meta: {aux: ['en'], stopword: ['en']} },
{ en: 'shan\'t' },
{ en: 'shant' },
{ en: 'lets', description: 'arguable' },
{ en: 'let\'s' },
{ en: 'who\'d' },
{ en: 'ought' }
]
},
//: VB generic-verbs
VB: {
title: 'verb, generic',
example: 'eat',
parent: 'verb',
tag: 'VB',
words: [
{ en: 'has', meta: {aux: ['en'], stopword: ['en'], weak: ['en']} },
{ en: 'does', meta: {aux: ['en'], stopword: ['en'], weak: ['en']} },
{ en: 'added' },
{ en: 'took' },
{ en: 'define' },
{ en: 'goes' },
{ en: 'measure' },
{ en: 'enhance' },
{ en: 'distinguish' },
{ en: 'avoid' },
{ en: 'hit' },
{ en: 'don\'t' },
{ en: 'won\'t' },
{ en: 'what\'s', description: 'somewhat ambiguous (what does|what are)' }
]
},
//: VBZ present-verbs
// note:
// ref: references irregular infinitive verb
VBZ: {
title: 'present-tense verb',
example: 'eats, swims',
parent: 'verb',
tag: 'VBZ',
words: [
{ ref: 0, en: 'am' },
{ ref: 0, en: 'is' },
{ ref: 1, en: 'has' },
{ ref: 2, en: 'does' },
{ ref: 3, en: 'begins' },
{ ref: 4, en: 'goes' },
{ ref: 5, en: 'says' },
{ ref: 6, en: 'hears' },
{ ref: 7, en: 'shows' },
{ ref: 8, en: 'brings' },
{ ref: 9, en: 'takes' },
{ ref: 10, en: 'puts' },
{ ref: 11, en: 'gives' },
{ ref: 12, en: 'finds' },
{ ref: 13, en: 'speaks' },
{ ref: 14, en: 'makes' },
{ ref: 15, en: 'knows' },
{ ref: 16, en: 'sees' },
{ ref: 17, en: 'comes' },
{ ref: 18, en: 'leaves' },
{ ref: 19, en: 'sets' },
{ ref: 20, en: 'gets' },
{ ref: 21, en: 'understands' },
{ ref: 22, en: 'arises' },
{ ref: 23, en: 'babysits' },
{ ref: 25, en: 'beats' },
{ ref: 26, en: 'becomes' },
{ ref: 27, en: 'bends' },
{ ref: 29, en: 'bets' },
{ ref: 30, en: 'binds' },
{ ref: 31, en: 'bites' },
{ ref: 32, en: 'bleeds' },
{ ref: 33, en: 'blows' },
{ ref: 34, en: 'breaks' },
{ ref: 35, en: 'breeds' },
{ ref: 37, en: 'broadcasts' },
{ ref: 38, en: 'builds' },
{ ref: 39, en: 'buys' },
{ ref: 40, en: 'catches' },
{ ref: 41, en: 'chooses' },
{ ref: 43, en: 'costs' },
{ ref: 44, en: 'cuts' },
{ ref: 45, en: 'deals' },
{ ref: 46, en: 'digs' },
{ ref: 48, en: 'draws' },
{ ref: 49, en: 'drinks' },
{ ref: 50, en: 'drives' },
{ ref: 51, en: 'eats' },
{ ref: 52, en: 'falls' },
{ ref: 53, en: 'feeds' },
{ ref: 54, en: 'feels' },
{ ref: 55, en: 'fights' },
{ ref: 57, en: 'flys' },
{ ref: 58, en: 'forbids' },
{ ref: 59, en: 'forgets' },
{ ref: 60, en: 'forgives' },
{ ref: 61, en: 'freezes' },
{ ref: 65, en: 'grows' },
{ ref: 66, en: 'hangs' },
{ ref: 69, en: 'hides' },
{ ref: 70, en: 'hits' },
{ ref: 71, en: 'holds' },
{ ref: 72, en: 'hurts' },
{ ref: 74, en: 'relays' },
{ ref: 75, en: 'lays' },
{ ref: 76, en: 'leads' },
{ ref: 78, en: 'lends' },
{ ref: 79, en: 'lets' },
{ ref: 80, en: 'lies' },
{ ref: 81, en: 'lights' },
{ ref: 82, en: 'loses' },
{ ref: 84, en: 'means' },
{ ref: 85, en: 'meets' },
{ ref: 86, en: 'pays' },
{ ref: 88, en: 'quits' },
{ ref: 89, en: 'reads' },
{ ref: 90, en: 'rides' },
{ ref: 91, en: 'rings' },
{ ref: 92, en: 'rises' },
{ ref: 93, en: 'runs' },
{ ref: 96, en: 'sells' },
{ ref: 97, en: 'sends' },
{ ref: 99, en: 'shakes' },
{ ref: 100, en: 'shines' },
{ ref: 101, en: 'shoots' },
{ ref: 103, en: 'shuts' },
{ ref: 104, en: 'sings' },
{ ref: 105, en: 'sinks' },
{ ref: 106, en: 'sits' },
{ ref: 107, en: 'slides' },
{ ref: 109, en: 'spends' },
{ ref: 110, en: 'spins' },
{ ref: 111, en: 'spreads' },
{ ref: 112, en: 'stands' },
{ ref: 113, en: 'steals' },
{ ref: 114, en: 'sticks' },
{ ref: 115, en: 'stings' },
{ ref: 116, en: 'strikes' },
{ ref: 117, en: 'swears' },
{ ref: 118, en: 'swims' },
{ ref: 119, en: 'swings' },
{ ref: 121, en: 'teachs' },
{ ref: 122, en: 'tears' },
{ ref: 123, en: 'tells' },
{ ref: 124, en: 'thinks' },
{ ref: 125, en: 'throws' },
{ ref: 127, en: 'wakes' },
{ ref: 128, en: 'wears' },
{ ref: 129, en: 'wins' },
{ ref: 130, en: 'withdraws' },
{ ref: 131, en: 'writes' },
{ ref: 132, en: 'ties' },
{ ref: 133, en: 'obeys' },
{ ref: 134, en: 'skis' },
{ ref: 135, en: 'boils' },
{ ref: 136, en: 'bears' },
{ ref: 137, en: 'miss' },
{ ref: 138, en: 'acts' },
{ ref: 139, en: 'competes' },
{ ref: 140, en: 'are' },
{ ref: 141, en: 'implies' },
{ ref: 142, en: 'ices' },
{ ref: 143, en: 'begets' },
{ ref: 144, en: 'develops' },
{ ref: 145, en: 'waits' },
{ ref: 146, en: 'aims' },
{ ref: 147, en: 'spills' },
{ ref: 148, en: 'bursts' },
{ ref: 149, en: 'casts' },
{ ref: 150, en: 'crows' },
{ ref: 151, en: 'flees' },
{ ref: 152, en: 'flies' },
{ ref: 153, en: 'forsakes' },
{ ref: 154, en: 'grinds' },
{ ref: 155, en: 'melts' },
{ ref: 156, en: 'mows' },
{ ref: 157, en: 'pens' },
{ ref: 158, en: 'proves' },
{ ref: 159, en: 'rides' },
{ ref: 160, en: 'shines' },
{ ref: 161, en: 'shrinks' },
{ ref: 162, en: 'shuts' },
{ ref: 163, en: 'slays' },
{ ref: 164, en: 'slinks' },
{ ref: 165, en: 'smites' },
{ ref: 166, en: 'spits' },
{ ref: 167, en: 'spreads' },
{ ref: 168, en: 'stinks' },
{ ref: 169, en: 'strives' },
{ ref: 170, en: 'thrusts' },
{ ref: 171, en: 'treads' },
{ ref: 172, en: 'weaves' },
{ ref: 173, en: 'weds' },
{ ref: 174, en: 'wins' },
{ ref: 175, en: 'dreams' },
{ ref: 176, en: 'sails' },
{ ref: 177, en: 'rubs' },
{ ref: 178, en: 'claims' },
{ en: 'sounds' }
]
},
//: VBD past-verbs
// note:
// ref: references irregular infinitive verb
VBD: {
title: 'past-tense verb',
example: 'ate',
parent: 'verb',
tag: 'VBD',
words: [
{ ref: 0, en: 'was', meta: {aux: ['en'], passive: ['en'], stopword: ['en'], weak: ['en']} },
{ ref: 1, en: 'had', meta: {aux: ['en'], stopword: ['en'], weak: ['en']} },
{ ref: 2, en: 'did', meta: {aux: ['en'], stopword: ['en'], weak: ['en']} },
{ ref: 3, en: 'began' },
{ ref: 4, en: 'went' },
{ ref: 5, en: 'said' },
{ ref: 6, en: 'heard' },
{ ref: 7, en: 'showed' },
{ ref: 8, en: 'brought' },
{ ref: 9, en: 'took' },
{ ref: 10, en: 'put' },
{ ref: 11, en: 'gave' },
{ ref: 12, en: 'found' },
{ ref: 13, en: 'spoke' },
{ ref: 14, en: 'made' },
{ ref: 15, en: 'knew' },
{ ref: 16, en: 'saw' },
{ ref: 17, en: 'came' },
{ ref: 18, en: 'left' },
{ ref: 19, en: 'set' },
{ ref: 20, en: 'got' },
{ ref: 21, en: 'understood' },
{ ref: 22, en: 'arose' },
{ ref: 23, en: 'babysat' },
{ ref: 25, en: 'beat' },
{ ref: 26, en: 'became' },
{ ref: 27, en: 'bent' },
{ ref: 29, en: 'bet' },
{ ref: 30, en: 'bound' },
{ ref: 31, en: 'bit' },
{ ref: 32, en: 'bled' },
{ ref: 33, en: 'blew' },
{ ref: 34, en: 'broke' },
{ ref: 35, en: 'bred' },
{ ref: 37, en: 'broadcast' },
{ ref: 38, en: 'built' },
{ ref: 39, en: 'bought' },
{ ref: 40, en: 'caught' },
{ ref: 41, en: 'chose' },
{ ref: 43, en: 'cost' },
{ ref: 44, en: 'cut' },
{ ref: 45, en: 'dealt' },
{ ref: 46, en: 'dug' },
{ ref: 48, en: 'drew' },
{ ref: 49, en: 'drank' },
{ ref: 50, en: 'drove' },
{ ref: 51, en: 'ate' },
{ ref: 52, en: 'fell' },
{ ref: 53, en: 'fed' },
{ ref: 54, en: 'felt' },
{ ref: 55, en: 'fought' },
{ ref: 57, en: 'flew' },
{ ref: 58, en: 'forbade' },
{ ref: 59, en: 'forgot' },
{ ref: 60, en: 'forgave' },
{ ref: 61, en: 'froze' },
{ ref: 65, en: 'grew' },
{ ref: 66, en: 'hung' },
{ ref: 69, en: 'hid' },
{ ref: 70, en: 'hit' },
{ ref: 71, en: 'held' },
{ ref: 72, en: 'hurt' },
{ ref: 74, en: 'relayed' },
{ ref: 75, en: 'laid' },
{ ref: 76, en: 'led' },
{ ref: 78, en: 'lent' },
{ ref: 79, en: 'let' },
{ ref: 80, en: 'lay' },
{ ref: 81, en: 'lit' },
{ ref: 82, en: 'lost' },
{ ref: 84, en: 'meant' },
{ ref: 85, en: 'met' },
{ ref: 86, en: 'paid' },
{ ref: 88, en: 'quit' },
{ ref: 89, en: 'read' },
{ ref: 90, en: 'rode' },
{ ref: 91, en: 'rang' },
{ ref: 92, en: 'rose' },
{ ref: 93, en: 'ran' },
{ ref: 96, en: 'sold' },
{ ref: 97, en: 'sent' },
{ ref: 99, en: 'shook' },
{ ref: 100, en: 'shone' },
{ ref: 101, en: 'shot' },
{ ref: 103, en: 'shut' },
{ ref: 104, en: 'sang' },
{ ref: 105, en: 'sank' },
{ ref: 106, en: 'sat' },
{ ref: 107, en: 'slid' },
{ ref: 109, en: 'spent' },
{ ref: 110, en: 'spun' },
{ ref: 111, en: 'spread' },
{ ref: 112, en: 'stood' },
{ ref: 113, en: 'stole' },
{ ref: 114, en: 'stuck' },
{ ref: 115, en: 'stung' },
{ ref: 116, en: 'struck' },
{ ref: 117, en: 'swore' },
{ ref: 118, en: 'swam' },
{ ref: 119, en: 'swung' },
{ ref: 121, en: 'taught' },
{ ref: 122, en: 'tore' },
{ ref: 123, en: 'told' },
{ ref: 124, en: 'thought' },
{ ref: 125, en: 'threw' },
{ ref: 127, en: 'woke' },
{ ref: 128, en: 'wore' },
{ ref: 129, en: 'won' },
{ ref: 130, en: 'withdrew' },
{ ref: 131, en: 'wrote' },
{ ref: 132, en: 'tied' },
{ ref: 133, en: 'obeyed' },
{ ref: 134, en: 'skiied' },
{ ref: 135, en: 'boiled' },
{ ref: 136, en: 'bore' },
{ ref: 137, en: 'missed' },
{ ref: 138, en: 'acted' },
{ ref: 139, en: 'competed' },
{ ref: 140, en: 'were' },
{ ref: 141, en: 'implied' },
{ ref: 142, en: 'iced' },
{ ref: 143, en: 'begot' },
{ ref: 144, en: 'develop' },
{ ref: 145, en: 'waited' },
{ ref: 146, en: 'aimed' },
{ ref: 147, en: 'spilt' },
{ ref: 148, en: 'burst' },
{ ref: 149, en: 'cast' },
{ ref: 150, en: 'crowed' },
{ ref: 151, en: 'fled' },
{ ref: 152, en: 'flew' },
{ ref: 153, en: 'forsook' },
{ ref: 154, en: 'ground' },
{ ref: 155, en: 'melted' },
{ ref: 156, en: 'mowed' },
{ ref: 157, en: 'pent' },
{ ref: 158, en: 'proved' },
{ ref: 159, en: 'rid' },
{ ref: 160, en: 'shone' },
{ ref: 161, en: 'shrank' },
{ ref: 162, en: 'shut' },
{ ref: 163, en: 'slew' },
{ ref: 164, en: 'slunk' },
{ ref: 165, en: 'smote' },
{ ref: 166, en: 'spat' },
{ ref: 167, en: 'spread' },
{ ref: 168, en: 'stank' },
{ ref: 169, en: 'strove' },
{ ref: 170, en: 'thrust' },
{ ref: 171, en: 'trod' },
{ ref: 172, en: 'wove' },
{ ref: 173, en: 'wed' },
{ ref: 174, en: 'won' },
{ ref: 175, en: 'dreamt' },
{ ref: 176, en: 'sailed' },
{ ref: 177, en: 'rubbed' },
{ ref: 178, en: 'claimed' },
{ en: 'walked' },
{ en: 'where\'d' },
{ en: 'when\'d' },
{ en: 'how\'d' },
{ en: 'what\'d' }
]
},
//: VBN past-particle-verbs
// note:
// ref: references irregular infinitive verb
// TODO FIXME - currently .conjugate has NO past-participle
VBN: {
title: 'past-participle verb',
example: 'eaten',
parent: 'verb',
tag: 'VBN',
words: [
{ ref: 0, en: 'been' },
{ ref: 1, en: 'had' },
{ ref: 2, en: 'done' },
{ ref: 3, en: 'begun' },
{ ref: 4, en: 'gone' },
{ ref: 5, en: 'said' },
{ ref: 6, en: 'heard' },
{ ref: 7, en: 'shown' },
{ ref: 8, en: 'brought' },
{ ref: 9, en: 'taken' },
{ ref: 10, en: 'put' },
{ ref: 11, en: 'given' },
{ ref: 12, en: 'found' },
{ ref: 13, en: 'spoken' },
{ ref: 14, en: 'made' },
{ ref: 15, en: 'known' },
{ ref: 16, en: 'seen' },
{ ref: 17, en: 'come' },
{ ref: 18, en: 'left' },
{ ref: 19, en: 'set' },
{ ref: 20, en: 'gotten' },
{ ref: 21, en: 'understood' },
{ ref: 22, en: 'arisen' },
{ ref: 23, en: 'babysat' },
{ ref: 25, en: 'beaten' },
{ ref: 26, en: 'become' },
{ ref: 27, en: 'bent' },
{ ref: 29, en: 'bet' },
{ ref: 30, en: 'bound' },
{ ref: 31, en: 'bitten' },
{ ref: 32, en: 'bled' },
{ ref: 33, en: 'blown' },
{ ref: 34, en: 'broken' },
{ ref: 35, en: 'bred' },
{ ref: 37, en: 'broadcast' },
{ ref: 38, en: 'built' },
{ ref: 39, en: 'bought' },
{ ref: 40, en: 'caught' },
{ ref: 41, en: 'chosen' },
{ ref: 43, en: 'cost' },
{ ref: 44, en: 'cut' },
{ ref: 45, en: 'dealt' },
{ ref: 46, en: 'dug' },
{ ref: 48, en: 'drawn' },
{ ref: 49, en: 'drunk' },
{ ref: 50, en: 'driven' },
{ ref: 51, en: 'eaten' },
{ ref: 52, en: 'fallen' },
{ ref: 53, en: 'fed' },
{ ref: 54, en: 'felt' },
{ ref: 55, en: 'fought' },
{ ref: 57, en: 'flown' },
{ ref: 58, en: 'forbidden' },
{ ref: 59, en: 'forgotten' },
{ ref: 60, en: 'forgiven' },
{ ref: 61, en: 'frozen' },
{ ref: 65, en: 'grown' },
{ ref: 66, en: 'hung' },
{ ref: 69, en: 'hidden' },
{ ref: 70, en: 'hit' },
{ ref: 71, en: 'held' },
{ ref: 72, en: 'hurt' },
{ ref: 74, en: 'relayed' },
{ ref: 75, en: 'laid' },
{ ref: 76, en: 'led' },
{ ref: 78, en: 'lent' },
{ ref: 79, en: 'let' },
{ ref: 80, en: 'lied' },
{ ref: 81, en: 'lit' },
{ ref: 82, en: 'lost' },
{ ref: 84, en: 'meant' },
{ ref: 85, en: 'met' },
{ ref: 86, en: 'paid' },
{ ref: 88, en: 'quit' },
{ ref: 89, en: 'read' },
{ ref: 90, en: 'ridden' },
{ ref: 91, en: 'rung' },
{ ref: 92, en: 'risen' },
{ ref: 93, en: 'run' },
{ ref: 96, en: 'sold' },
{ ref: 97, en: 'sent' },
{ ref: 99, en: 'shaken' },
{ ref: 100, en: 'shone' },
{ ref: 101, en: 'shot' },
{ ref: 103, en: 'shut' },
{ ref: 104, en: 'sung' },
{ ref: 105, en: 'sunk' },
{ ref: 106, en: 'sat' },
{ ref: 107, en: 'slid' },
{ ref: 109, en: 'spent' },
{ ref: 110, en: 'spun' },
{ ref: 111, en: 'spread' },
{ ref: 112, en: 'stood' },
{ ref: 113, en: 'stolen' },
{ ref: 114, en: 'stuck' },
{ ref: 115, en: 'stung' },
{ ref: 116, en: 'struck' },
{ ref: 117, en: 'sworn' },
{ ref: 118, en: 'swum' },
{ ref: 119, en: 'swung' },
{ ref: 121, en: 'taught' },
{ ref: 122, en: 'torn' },
{ ref: 123, en: 'told' },
{ ref: 124, en: 'thought' },
{ ref: 125, en: 'thrown' },
{ ref: 127, en: 'woken' },
{ ref: 128, en: 'worn' },
{ ref: 129, en: 'won' },
{ ref: 130, en: 'withdrawn' },
{ ref: 131, en: 'written' },
{ ref: 136, en: 'borne' },
{ ref: 143, en: 'begotten' },
{ ref: 148, en: 'burst' },
{ ref: 149, en: 'cast' },
{ ref: 150, en: 'crew' },
{ ref: 151, en: 'fled' },
{ ref: 152, en: 'flown' },
{ ref: 153, en: 'forsaken' },
{ ref: 154, en: 'ground' },
{ ref: 155, en: 'molten' },
{ ref: 156, en: 'mown' },
{ ref: 157, en: 'pent' },
{ ref: 158, en: 'proven' },
{ ref: 159, en: 'rid' },
{ ref: 160, en: 'shone' },
{ ref: 161, en: 'shrunk' },
{ ref: 162, en: 'shut' },
{ ref: 163, en: 'slain' },
{ ref: 164, en: 'slunk' },
{ ref: 165, en: 'smitten' },
{ ref: 166, en: 'spat' },
{ ref: 167, en: 'spread' },
{ ref: 168, en: 'stunk' },
{ ref: 169, en: 'striven' },
{ ref: 170, en: 'thrust' },
{ ref: 171, en: 'trodden' },
{ ref: 172, en: 'woven' },
{ ref: 173, en: 'wed' },
{ ref: 174, en: 'won' },
{ en: 'born' }
]
},
//: VBG gerund-verbs
// note:
// ref: references irregular infinitive verb
VBG: {
title: 'gerund verb',
example: 'eating, winning',
parent: 'verb',
tag: 'VBG',
words: [
{ ref: 0, en: 'am' },
{ ref: 0, en: 'being', meta: {aux: ['en'], passive: ['en'], stopword: ['en']} },
{ ref: 1, en: 'having', meta: {aux: ['en'], stopword: ['en'], weak: ['en']} },
{ ref: 2, en: 'doing', meta: {aux: ['en'], stopword: ['en'], weak: ['en']} },
{ ref: 3, en: 'beginning' },
{ ref: 4, en: 'going' },
{ ref: 5, en: 'saying' },
{ ref: 6, en: 'hearing' },
{ ref: 7, en: 'showing' },
{ ref: 8, en: 'bringing' },
{ ref: 9, en: 'taking' },
{ ref: 10, en: 'putting' },
{ ref: 11, en: 'giving' },
{ ref: 12, en: 'finding' },
{ ref: 13, en: 'speaking' },
{ ref: 14, en: 'making' },
{ ref: 15, en: 'knowing' },
{ ref: 16, en: 'seeing' },
{ ref: 17, en: 'coming' },
{ ref: 18, en: 'leaving' },
{ ref: 19, en: 'setting' },
{ ref: 20, en: 'getting' },
{ ref: 21, en: 'understanding' },
{ ref: 22, en: 'arising' },
{ ref: 23, en: 'babysitting' },
{ ref: 25, en: 'beating' },
{ ref: 26, en: 'becoming' },
{ ref: 27, en: 'bending' },
{ ref: 29, en: 'betting' },
{ ref: 30, en: 'binding' },
{ ref: 31, en: 'biting' },
{ ref: 32, en: 'bleeding' },
{ ref: 33, en: 'blowing' },
{ ref: 34, en: 'breaking' },
{ ref: 35, en: 'breeding' },
{ ref: 37, en: 'broadcasting' },
{ ref: 38, en: 'building' },
{ ref: 39, en: 'buying' },
{ ref: 40, en: 'catching' },
{ ref: 41, en: 'choosing' },
{ ref: 43, en: 'costing' },
{ ref: 44, en: 'cutting' },
{ ref: 45, en: 'dealing' },
{ ref: 46, en: 'digging' },
{ ref: 48, en: 'drawing' },
{ ref: 49, en: 'drinking' },
{ ref: 50, en: 'driving' },
{ ref: 51, en: 'eating' },
{ ref: 52, en: 'falling' },
{ ref: 53, en: 'feeding' },
{ ref: 54, en: 'feeling' },
{ ref: 55, en: 'fighting' },
{ ref: 57, en: 'flying' },
{ ref: 58, en: 'forbiding' },
{ ref: 59, en: 'forgeting' },
{ ref: 60, en: 'forgiving' },
{ ref: 61, en: 'freezing' },
{ ref: 65, en: 'growing' },
{ ref: 66, en: 'hanging' },
{ ref: 69, en: 'hiding' },
{ ref: 70, en: 'hitting' },
{ ref: 71, en: 'holding' },
{ ref: 72, en: 'hurting' },
{ ref: 74, en: 'relaying' },
{ ref: 75, en: 'laying' },
{ ref: 76, en: 'leading' },
{ ref: 78, en: 'lending' },
{ ref: 79, en: 'letting' },
{ ref: 80, en: 'lying' },
{ ref: 81, en: 'lighting' },
{ ref: 82, en: 'losing' },
{ ref: 84, en: 'meaning' },
{ ref: 85, en: 'meeting' },
{ ref: 86, en: 'paying' },
{ ref: 88, en: 'quitting' },
{ ref: 89, en: 'reading' },
{ ref: 90, en: 'riding' },
{ ref: 91, en: 'ringing' },
{ ref: 92, en: 'rising' },
{ ref: 93, en: 'running' },
{ ref: 96, en: 'selling' },
{ ref: 97, en: 'sending' },
{ ref: 99, en: 'shaking' },
{ ref: 100, en: 'shining' },
{ ref: 101, en: 'shooting' },
{ ref: 103, en: 'shutting' },
{ ref: 104, en: 'singing' },
{ ref: 105, en: 'sinking' },
{ ref: 106, en: 'sitting' },
{ ref: 107, en: 'sliding' },
{ ref: 109, en: 'spending' },
{ ref: 110, en: 'spinning' },
{ ref: 111, en: 'spreading' },
{ ref: 112, en: 'standing' },
{ ref: 113, en: 'stealing' },
{ ref: 114, en: 'sticking' },
{ ref: 115, en: 'stinging' },
{ ref: 116, en: 'striking' },
{ ref: 117, en: 'swearing' },
{ ref: 118, en: 'swiming' },
{ ref: 119, en: 'swinging' },
{ ref: 121, en: 'teaching' },
{ ref: 122, en: 'tearing' },
{ ref: 123, en: 'telling' },
{ ref: 124, en: 'thinking' },
{ ref: 125, en: 'throwing' },
{ ref: 127, en: 'waking' },
{ ref: 128, en: 'wearing' },
{ ref: 129, en: 'winning' },
{ ref: 130, en: 'withdrawing' },
{ ref: 131, en: 'writing' },
{ ref: 132, en: 'tying' },
{ ref: 133, en: 'obeying' },
{ ref: 134, en: 'skiing' },
{ ref: 135, en: 'boiling' },
{ ref: 136, en: 'bearing' },
{ ref: 137, en: 'missing' },
{ ref: 138, en: 'acting' },
{ ref: 139, en: 'competing' },
{ ref: 140, en: 'are' },
{ ref: 141, en: 'implying' },
{ ref: 142, en: 'icing' },
{ ref: 143, en: 'begetting' },
{ ref: 144, en: 'developing' },
{ ref: 145, en: 'waiting' },
{ ref: 146, en: 'aiming' },
{ ref: 147, en: 'spilling' },
{ ref: 148, en: 'bursting' },
{ ref: 149, en: 'casting' },
{ ref: 150, en: 'crowing' },
{ ref: 151, en: 'fleing' },
{ ref: 152, en: 'flying' },
{ ref: 153, en: 'forsaking' },
{ ref: 154, en: 'grinding' },
{ ref: 155, en: 'melting' },
{ ref: 156, en: 'mowing' },
{ ref: 157, en: 'pening' },
{ ref: 158, en: 'proving' },
{ ref: 159, en: 'riding' },
{ ref: 160, en: 'shining' },
{ ref: 161, en: 'shrinking' },
{ ref: 162, en: 'shutting' },
{ ref: 163, en: 'slaying' },
{ ref: 164, en: 'slinking' },
{ ref: 165, en: 'smiting' },
{ ref: 166, en: 'spitting' },
{ ref: 167, en: 'spreading' },
{ ref: 168, en: 'stinking' },
{ ref: 169, en: 'striving' },
{ ref: 170, en: 'thrusting' },
{ ref: 171, en: 'treading' },
{ ref: 172, en: 'weaving' },
{ ref: 173, en: 'wedding' },
{ ref: 174, en: 'winning' },
{ ref: 175, en: 'dreaming' },
{ ref: 176, en: 'sailing' },
{ ref: 177, en: 'rubbing' },
{ ref: 178, en: 'claiming' },
{ en: 'according' },
{ en: 'resulting' },
{ en: 'staining' }
]
},
//: VBP infinitive-verbs
// note:
// uid: has any irregular tense (conjugate only those)
// - flag verbs witout doer as 'noDoer'
VBP: {
title: 'infinitive verb',
example: 'eat',
parent: 'verb',
tag: 'VBP',
words:
// these verbs will be conjugated if they are regular. (~8ms, triples the lexicon size)
// if an item has an 'id' property it is considered an irregular verb and the meta.irregular will be added:
// only irregular verbs get an uid property, the rest must be covered by rules
// so add a numeric 'id' according to the array index only for the manually conjugated words
// and do not manually conjugate regular verbs
[
// irregular verbs
{ uid: 0, en: 'be', meta: {noDoer: ['en'], aux: ['en'], passive: ['en'], stopword: ['en'], weak: ['en']} },
{ uid: 1, en: 'have', meta: {noDoer: ['en'], aux: ['en'], stopword: ['en'], weak: ['en']} },
{ uid: 2, en: 'do', meta: {aux: ['en'], stopword: ['en'], weak: ['en']} },
{ uid: 3, en: 'begin', meta: {filler: ['en'], weak: ['en']} },
{ uid: 4, en: 'go', meta: {weak: ['en']} },
{ uid: 5, en: 'say', meta: {noDoer: ['en'], weak: ['en']} },
{ uid: 6, en: 'hear', meta: {weak: ['en']} },
{ uid: 7, en: 'show', meta: {weak: ['en']} },
{ uid: 8, en: 'bring', meta: {weak: ['en']} },
{ uid: 9, en: 'take', meta: {weak: ['en']} },
{ uid: 10, en: 'put', meta: {weak: ['en']} },
{ uid: 11, en: 'give', meta: {weak: ['en']} },
{ uid: 12, en: 'find', meta: {weak: ['en']} },
{ uid: 13, en: 'speak', meta: {weak: ['en']} },
{ uid: 14, en: 'make', meta: {weak: ['en']} },
{ uid: 15, en: 'know', meta: {weak: ['en']} },
{ uid: 16, en: 'see', meta: {weak: ['en']} },
{ uid: 17, en: 'come', meta: {weak: ['en']} },
{ uid: 18, en: 'leave', meta: {weak: ['en']} },
{ uid: 19, en: 'set', meta: {weak: ['en']} },
{ uid: 20, en: 'get', meta: {weak: ['en']} },
{ uid: 21, en: 'understand', meta: {noDoer: ['en'], weak: ['en']} },
{ uid: 22, en: 'arise' },
{ uid: 23, en: 'babysit' },
{ uid: 25, en: 'beat' },
{ uid: 26, en: 'become' },
{ uid: 27, en: 'bend' },
{ uid: 29, en: 'bet', meta: {noDoer: ['en']} },
{ uid: 30, en: 'bind' },
{ uid: 31, en: 'bite' },
{ uid: 32, en: 'bleed' },
{ uid: 33, en: 'blow' },
{ uid: 34, en: 'break' },
{ uid: 35, en: 'breed' },
{ uid: 37, en: 'broadcast' },
{ uid: 38, en: 'build' },
{ uid: 39, en: 'buy' },
{ uid: 40, en: 'catch' },
{ uid: 41, en: 'choose' },
{ uid: 43, en: 'cost' },
{ uid: 44, en: 'cut' },
{ uid: 45, en: 'deal' },
{ uid: 46, en: 'dig' },
{ uid: 48, en: 'draw' },
{ uid: 49, en: 'drink' },
{ uid: 50, en: 'drive' },
{ uid: 51, en: 'eat' },
{ uid: 52, en: 'fall' },
{ uid: 53, en: 'feed' },
{ uid: 54, en: 'feel' },
{ uid: 55, en: 'fight' },
{ uid: 57, en: 'fly' },
{ uid: 58, en: 'forbid', meta: {noDoer: ['en']} },
{ uid: 59, en: 'forget' },
{ uid: 60, en: 'forgive' },
{ uid: 61, en: 'freeze' },
{ uid: 65, en: 'grow' },
{ uid: 66, en: 'hang' },
{ uid: 69, en: 'hide' },
{ uid: 70, en: 'hit' },
{ uid: 71, en: 'hold' },
{ uid: 72, en: 'hurt' },
{ uid: 74, en: 'relay' },
{ uid: 75, en: 'lay' },
{ uid: 76, en: 'lead' },
{ uid: 78, en: 'lend' },
{ uid: 79, en: 'let' },
{ uid: 80, en: 'lie' },
{ uid: 81, en: 'light' },
{ uid: 82, en: 'lose' },
{ uid: 84, en: 'mean' },
{ uid: 85, en: 'meet' },
{ uid: 86, en: 'pay' },
{ uid: 88, en: 'quit' },
{ uid: 89, en: 'read' },
{ uid: 90, en: 'ride' },
{ uid: 91, en: 'ring' },
{ uid: 92, en: 'rise' },
{ uid: 93, en: 'run' },
{ uid: 96, en: 'sell' },
{ uid: 97, en: 'send' },
{ uid: 99, en: 'shake' },
{ uid: 100, en: 'shine' },
{ uid: 101, en: 'shoot' },
{ uid: 103, en: 'shut' },
{ uid: 104, en: 'sing' },
{ uid: 105, en: 'sink' },
{ uid: 106, en: 'sit' },
{ uid: 107, en: 'slide' },
{ uid: 109, en: 'spend' },
{ uid: 110, en: 'spin' },
{ uid: 111, en: 'spread' },
{ uid: 112, en: 'stand' },
{ uid: 113, en: 'steal' },
{ uid: 114, en: 'stick' },
{ uid: 115, en: 'sting' },
{ uid: 116, en: 'strike' },
{ uid: 117, en: 'swear' },
{ uid: 118, en: 'swim' },
{ uid: 119, en: 'swing' },
{ uid: 121, en: 'teach' },
{ uid: 122, en: 'tear' },
{ uid: 123, en: 'tell' },
{ uid: 124, en: 'think' },
{ uid: 125, en: 'throw' },
{ uid: 127, en: 'wake' },
{ uid: 128, en: 'wear' },
{ uid: 129, en: 'win' },
{ uid: 130, en: 'withdraw' },
{ uid: 131, en: 'write' },
{ uid: 132, en: 'tie' },
{ uid: 133, en: 'obey' },
{ uid: 134, en: 'ski' },
{ uid: 135, en: 'boil' },
{ uid: 136, en: 'bear'},
{ uid: 137, en: 'miss' },
{ uid: 138, en: 'act' },
{ uid: 139, en: 'compete' },
{ uid: 140, en: 'being' },
{ uid: 141, en: 'imply' },
{ uid: 142, en: 'ice' },
{ uid: 143, en: 'beget'},
{ uid: 144, en: 'develop' },
{ uid: 145, en: 'wait' },
{ uid: 146, en: 'aim' },
{ uid: 147, en: 'spill' },
{ uid: 148, en: 'burst' },
{ uid: 149, en: 'cast' },
{ uid: 150, en: 'crow' },
{ uid: 151, en: 'flee' },
{ uid: 152, en: 'fly' },
{ uid: 153, en: 'forsake' },
{ uid: 154, en: 'grind' },
{ uid: 155, en: 'melt' },
{ uid: 156, en: 'mow' },
{ uid: 157, en: 'pen' },
{ uid: 158, en: 'prove' },
{ uid: 159, en: 'rid' },
{ uid: 160, en: 'shine' },
{ uid: 161, en: 'shrink' },
{ uid: 162, en: 'shut' },
{ uid: 163, en: 'slay' },
{ uid: 164, en: 'slink' },
{ uid: 165, en: 'smite' },
{ uid: 166, en: 'spit' },
{ uid: 167, en: 'spread' },
{ uid: 168, en: 'stink' },
{ uid: 169, en: 'strive' },
{ uid: 170, en: 'thrust' },
{ uid: 171, en: 'tread' },
{ uid: 172, en: 'weave' },
{ uid: 173, en: 'wed' },
{ uid: 174, en: 'win' },
{ uid: 175, en: 'dream' },
{ uid: 176, en: 'sail' },
{ uid: 177, en: 'rub' },
{ uid: 178, en: 'claim' },
// just no doer
{ en: 'appear', meta: {noDoer: ['en'], weak: ['en']} },
{ en: 'happen', meta: {noDoer: ['en'], weak: ['en']} },
{ en: 'seem', meta: {noDoer: ['en'], weak: ['en']} },
{ en: 'try', meta: {noDoer: ['en'], filler: ['en']} },
{ en: 'aid', meta: {noDoer: ['en']} },
{ en: 'fail', meta: {noDoer: ['en']} },
{ en: 'marry', meta: {noDoer: ['en']} },
// regular verbs
{ en: 'use', meta: {weak: ['en']} },
{ en: 'form', meta: {weak: ['en']} },
{ en: 'hope', meta: {weak: ['en']} },
{ en: 'consider', meta: {weak: ['en']} },
{ en: 'work', meta: {weak: ['en']} },
{ en: 'like', meta: {filler: ['en']} },
{ en: 'achieve', meta: {weak: ['en']} },
{ en: 'suppose', meta: {weak: ['en']} },
{ en: 'watch', meta: {weak: ['en']} },
{ en: 'occur', meta: {weak: ['en']} },
{ en: 'change', meta: {weak: ['en']} },
{ en: 'fix', meta: {weak: ['en']} },
{ en: 'exist', meta: {weak: ['en']} },
{ en: 'create', meta: {weak: ['en']} },
{ en: 'help', meta: {weak: ['en']} },
{ en: 'serve', meta: {weak: ['en']} },
{ en: 'maintain', meta: {weak: ['en']} },
{ en: 'start', meta: {filler: ['en']} },
{ en: 'stay', meta: {weak: ['en']} },
{ en: 'move', meta: {weak: ['en']} },
{ en: 'want', meta: {weak: ['en']} },
{ en: 'receive', meta: {weak: ['en']} },
{ en: 'need', meta: {weak: ['en']} },
{ en: 'finish', meta: {weak: ['en']} },
{ en: 'produce', meta: {weak: ['en']} },
{ en: 'introduce', meta: {weak: ['en']} },
{ en: 'convert', meta: {weak: ['en']} },
{ en: 'collapse' },
{ en: 'stake' },
{ en: 'forsee' },
{ en: 'suck' },
{ en: 'answer' },
{ en: 'argue' },
{ en: 'tend' },
{ en: 'examine' },
{ en: 'depend' },
{ en: 'figure' },
{ en: 'mind' },
{ en: 'surround' },
{ en: 'suspect' },
{ en: 'reflect' },
{ en: 'wonder' },
{ en: 'end' },
{ en: 'thank' },
{ en: 'file' },
{ en: 'regard' },
{ en: 'report' },
{ en: 'imagine' },
{ en: 'ensure' },
{ en: 'cause' },
{ en: 'enter' },
{ en: 'stop' },
{ en: 'defeat' },
{ en: 'surge' },
{ en: 'launch' },
{ en: 'turn' },
{ en: 'control' },
{ en: 'relate' },
{ en: 'remember' },
{ en: 'join' },
{ en: 'listen' },
{ en: 'train' },
{ en: 'spring' },
{ en: 'enjoy' },
{ en: 'recognize' },
{ en: 'obtain' },
{ en: 'learn' },
{ en: 'fill' },
{ en: 'announce' },
{ en: 'prevent' },
{ en: 'realize' },
{ en: 'involve' },
{ en: 'remove' },
{ en: 'visit' },
{ en: 'test' },
{ en: 'prepare' },
{ en: 'ask' },
{ en: 'carry' },
{ en: 'determine' },
{ en: 'raise' },
{ en: 'love' },
{ en: 'pull' },
{ en: 'improve' },
{ en: 'contain' },
{ en: 'offer' },
{ en: 'talk' },
{ en: 'pick' },
{ en: 'care' },
{ en: 'express' },
{ en: 'remain' },
{ en: 'operate' },
{ en: 'close' },
{ en: 'add' },
{ en: 'mention' },
{ en: 'support' },
{ en: 'decide' },
{ en: 'walk' },
{ en: 'vary' },
{ en: 'demand' },
{ en: 'describe' },
{ en: 'agree' },
{ en: 'allow' },
{ en: 'suffer' },
{ en: 'study' },
{ en: 'press' },
{ en: 'contribute' },
{ en: 'compare' },
{ en: 'apply' },
{ en: 'direct' },
{ en: 'discuss' },
{ en: 'indicate' },
{ en: 'require' },
{ en: 'reach' },
{ en: 'prove' },
{ en: 'expect' },
{ en: 'play' },
{ en: 'permit' },
{ en: 'kill' },
{ en: 'charge' },
{ en: 'increase' },
{ en: 'believe' },
{ en: 'continue' },
{ en: 'live' },
{ en: 'represent' },
{ en: 'edit' },
{ en: 'cover' },
{ en: 'extend' },
{ en: 'design' },
{ en: 'supply' },
{ en: 'suggest' },
{ en: 'approach' },
{ en: 'call' },
{ en: 'include' },
{ en: 'save' },
{ en: 'discover' },
{ en: 'establish' },
{ en: 'keep' },
{ en: 'assume' },
{ en: 'attend' },
{ en: 'unite' },
{ en: 'explain' },
{ en: 'publish' },
{ en: 'accept' },
{ en: 'settle' },
{ en: 'reduce' },
{ en: 'look' },
{ en: 'interact' },
{ en: 'concern' },
{ en: 'labor' },
{ en: 'return' },
{ en: 'select' },
{ en: 'die' },
{ en: 'provide' },
{ en: 'seek' },
{ en: 'wish' },
{ en: 'follow' },
{ en: 'disagree' },
{ en: 'attack' },
{ en: 'attempt' },
{ en: 'brake' },
{ en: 'brush' },
{ en: 'burn' },
{ en: 'bang' },
{ en: 'bomb' },
{ en: 'budget' },
{ en: 'comfort' },
{ en: 'cook' },
{ en: 'copy' },
{ en: 'cough' },
{ en: 'crush' },
{ en: 'cry' },
{ en: 'check' },
{ en: 'claw' },
{ en: 'clip' },
{ en: 'combine' },
{ en: 'damage' },
{ en: 'desire' },
{ en: 'doubt' },
{ en: 'drain' },
{ en: 'dance' },
{ en: 'decrease' },
{ en: 'defect' },
{ en: 'deposit' },
{ en: 'drift' },
{ en: 'dip' },
{ en: 'dive' },
{ en: 'divorce' },
{ en: 'exchange' },
{ en: 'envy' },
{ en: 'exert' },
{ en: 'exercise' },
{ en: 'export' },
{ en: 'fold' },
{ en: 'flood' },
{ en: 'focus' },
{ en: 'forecast' },
{ en: 'fracture' },
{ en: 'grip' },
{ en: 'guide' },
{ en: 'guard' },
{ en: 'guarantee' },
{ en: 'guess' },
{ en: 'hate' },
{ en: 'heat' },
{ en: 'handle' },
{ en: 'hire' },
{ en: 'host' },
{ en: 'hunt' },
{ en: 'hurry' },
{ en: 'import' },
{ en: 'judge' },
{ en: 'jump' },
{ en: 'jam' },
{ en: 'kick' },
{ en: 'kiss' },
{ en: 'knock' },
{ en: 'laugh' },
{ en: 'lift' },
{ en: 'lock' },
{ en: 'lecture' },
{ en: 'link' },
{ en: 'load' },
{ en: 'loan' },
{ en: 'lump' },
{ en: 'melt' },
{ en: 'message' },
{ en: 'murder' },
{ en: 'neglect' },
{ en: 'overlap' },
{ en: 'overtake' },
{ en: 'overuse' },
{ en: 'print' },
{ en: 'protest' },
{ en: 'pump' },
{ en: 'push' },
{ en: 'post' },
{ en: 'progress' },
{ en: 'promise' },
{ en: 'purchase' },
{ en: 'regret' },
{ en: 'request' },
{ en: 'reward' },
{ en: 'roll' },
{ en: 'rent' },
{ en: 'repair' },
{ en: 'scale' },
{ en: 'screw' },
{ en: 'shock' },
{ en: 'sleep' },
{ en: 'slip' },
{ en: 'smash' },
{ en: 'smell' },
{ en: 'smoke' },
{ en: 'sneeze' },
{ en: 'snow' },
{ en: 'surprise' },
{ en: 'scratch' },
{ en: 'search' },
{ en: 'share' },
{ en: 'shave' },
{ en: 'spit' },
{ en: 'splash' },
{ en: 'stain' },
{ en: 'stress' },
{ en: 'switch' },
{ en: 'taste' },
{ en: 'touch' },
{ en: 'trade' },
{ en: 'trick' },
{ en: 'twist' },
{ en: 'trap' },
{ en: 'travel' },
{ en: 'tune' },
{ en: 'undergo' },
{ en: 'undo' },
{ en: 'uplift' },
{ en: 'vote' },
{ en: 'wash' },
{ en: 'wave' },
{ en: 'whistle' },
{ en: 'wreck' },
{ en: 'yawn' },
{ en: 'betray' },
{ en: 'restrict' },
{ en: 'perform' },
{ en: 'worry' },
{ en: 'point' },
{ en: 'activate' },
{ en: 'fear' },
{ en: 'plan' },
{ en: 'note' },
{ en: 'face' },
{ en: 'predict' },
{ en: 'differ' },
{ en: 'deserve' },
{ en: 'torture' },
{ en: 'recall' },
{ en: 'count' },
{ en: 'admit' },
{ en: 'insist' },
{ en: 'lack' },
{ en: 'pass' },
{ en: 'belong' },
{ en: 'complain' },
{ en: 'constitute' },
{ en: 'rely' },
{ en: 'refuse' },
{ en: 'range' },
{ en: 'cite' },
{ en: 'flash' },
{ en: 'arrive' },
{ en: 'reveal' },
{ en: 'consist' },
{ en: 'observe' },
{ en: 'notice' },
{ en: 'trust' },
{ en: 'display' },
{ en: 'view' },
{ en: 'stare' },
{ en: 'acknowledge' },
{ en: 'owe' },
{ en: 'gaze' },
{ en: 'treat' },
{ en: 'account' },
{ en: 'gather' },
{ en: 'address' },
{ en: 'confirm' },
{ en: 'estimate' },
{ en: 'manage' },
{ en: 'participate' },
{ en: 'sneak' },
{ en: 'drop' },
{ en: 'mirror' },
{ en: 'experience' },
{ en: 'strive' },
{ en: 'arch' },
{ en: 'dislike' },
{ en: 'favor' },
{ en: 'earn' },
{ en: 'emphasize' },
{ en: 'match' },
{ en: 'question' },
{ en: 'emerge' },
{ en: 'encourage' },
{ en: 'matter' },
{ en: 'name' },
{ en: 'head' },
{ en: 'line' },
{ en: 'slam' },
{ en: 'list' },
{ en: 'warn' },
{ en: 'ignore' },
{ en: 'resemble' },
{ en: 'feature' },
{ en: 'place' },
{ en: 'reverse' },
{ en: 'accuse' },
{ en: 'spoil' },
{ en: 'retain' },
{ en: 'survive' },
{ en: 'praise' },
{ en: 'function' },
{ en: 'please' },
{ en: 'date' },
{ en: 'remind' },
{ en: 'deliver' },
{ en: 'echo' },
{ en: 'engage' },
{ en: 'deny' },
{ en: 'yield' },
{ en: 'center' },
{ en: 'gain' },
{ en: 'anticipate' },
{ en: 'reason' },
{ en: 'side' },
{ en: 'thrive' },
{ en: 'defy' },
{ en: 'dodge' },
{ en: 'enable' },
{ en: 'applaud' },
{ en: 'bear' },
{ en: 'persist' },
{ en: 'pose' },
{ en: 'reject' },
{ en: 'attract' },
{ en: 'await' },
{ en: 'inhibit' },
{ en: 'declare' },
{ en: 'process' },
{ en: 'risk' },
{ en: 'urge' },
{ en: 'value' },
{ en: 'block' },
{ en: 'confront' },
{ en: 'credit' },
{ en: 'cross' },
{ en: 'amuse' },
{ en: 'dare' },
{ en: 'resent' },
{ en: 'smile' },
{ en: 'gloss' },
{ en: 'threaten' },
{ en: 'collect' },
{ en: 'depict' },
{ en: 'dismiss' },
{ en: 'submit' },
{ en: 'benefit' },
{ en: 'step' },
{ en: 'deem' },
{ en: 'limit' },
{ en: 'sense' },
{ en: 'issue' },
{ en: 'embody' },
{ en: 'force' },
{ en: 'govern' },
{ en: 'replace' },
{ en: 'bother' },
{ en: 'cater' },
{ en: 'adopt' },
{ en: 'empower' },
{ en: 'outweigh' },
{ en: 'alter' },
{ en: 'enrich' },
{ en: 'influence' },
{ en: 'prohibit' },
{ en: 'pursue' },
{ en: 'warrant' },
{ en: 'convey' },
{ en: 'approve' },
{ en: 'reserve' },
{ en: 'rest' },
{ en: 'strain' },
{ en: 'wander' },
{ en: 'adjust' },
{ en: 'dress' },
{ en: 'market' },
{ en: 'mingle' },
{ en: 'disapprove' },
{ en: 'evaluate' },
{ en: 'flow' },
{ en: 'inhabit' },
{ en: 'pop' },
{ en: 'rule' },
{ en: 'depart' },
{ en: 'roam' },
{ en: 'assert' },
{ en: 'disappear' },
{ en: 'envision' },
{ en: 'pause' },
{ en: 'afford' },
{ en: 'challenge' },
{ en: 'grab' },
{ en: 'grumble' },
{ en: 'house' },
{ en: 'portray' },
{ en: 'revel' },
{ en: 'base' },
{ en: 'conduct' },
{ en: 'review' },
{ en: 'stem' },
{ en: 'crave' },
{ en: 'mark' },
{ en: 'store' },
{ en: 'target' },
{ en: 'unlock' },
{ en: 'weigh' },
{ en: 'resist' },
{ en: 'drag' },
{ en: 'pour' },
{ en: 'reckon' },
{ en: 'assign' },
{ en: 'cling' },
{ en: 'rank' },
{ en: 'attach' },
{ en: 'decline' },
{ en: 'destroy' },
{ en: 'interfere' },
{ en: 'paint' },
{ en: 'skip' },
{ en: 'sprinkle' },
{ en: 'wither' },
{ en: 'allege' },
{ en: 'retire' },
{ en: 'score' },
{ en: 'monitor' },
{ en: 'expand' },
{ en: 'honor' },
{ en: 'pack' },
{ en: 'assist' },
{ en: 'float' },
{ en: 'appeal' },
{ en: 'stretch' },
{ en: 'undermine' },
{ en: 'assemble' },
{ en: 'boast' },
{ en: 'bounce' },
{ en: 'grasp' },
{ en: 'install' },
{ en: 'borrow' },
{ en: 'crack' },
{ en: 'elect' },
{ en: 'shout' },
{ en: 'contrast' },
{ en: 'overcome' },
{ en: 'relax' },
{ en: 'relent' },
{ en: 'strengthen' },
{ en: 'conform' },
{ en: 'dump' },
{ en: 'pile' },
{ en: 'scare' },
{ en: 'relive' },
{ en: 'resort' },
{ en: 'rush' },
{ en: 'boost' },
{ en: 'cease' },
{ en: 'command' },
{ en: 'excel' },
{ en: 'plug' },
{ en: 'plunge' },
{ en: 'proclaim' },
{ en: 'discourage' },
{ en: 'endure' },
{ en: 'ruin' },
{ en: 'stumble' },
{ en: 'abandon' },
{ en: 'cheat' },
{ en: 'convince' },
{ en: 'merge' },
{ en: 'harm' },
{ en: 'multiply' },
{ en: 'overwhelm' },
{ en: 'chew' },
{ en: 'invent' },
{ en: 'bury' },
{ en: 'wipe' }
]
},
//: adjectives
// note: flag irregular adjectives
// read first: the note in JJ further below
// TODO FIXME "well" and "day" was listed as irregular adjective (?) - in db not in adjectives ...
/* TODO - arguable comparatives
// well becomes better only when talking about health
// far becomes farther, when talking about phsyical distance OR further, when talking about metaphorically
// little becomes less, only when talking about amount
// small becomes smaller, when talking about size
//
//
*/
//: JJR comparative
// note:
// ref: references irregular generic adjective
JJR: {
title: 'comparative adjective',
example: 'bigger, cooler',
parent: 'adjective',
tag: 'JJR',
words: [
{ ref: 18, en: 'worse' },
{ ref: 22, en: 'greener' },
{ ref: 23, en: 'redder' },
{ ref: 25, en: 'yellower' },
{ ref: 31, en: 'greyer' },
{ ref: 32, en: 'grayer' },
{ ref: 66, en: 'better' },
{ ref: 67, en: 'sadder' },
{ ref: 73, en: 'more secret' }, // TODO multiple w ref
{ ref: 75, en: 'readier' },
{ ref: 79, en: 'further' },
{ en: 'higher' },
{ en: 'larger' },
{ en: 'better' },
{ en: 'earlier' },
{ en: 'easier' }
]
},
//: JJS superlative
// note:
// ref: references irregular generic adjective
JJS: {
title: 'superlative adjective',
example: 'biggest, fattest',
parent: 'adjective',
tag: 'JJS',
words: [
{ ref: 13, en: 'hardest' },
{ ref: 14, en: 'latest' },
{ ref: 18, en: 'worst' },
{ ref: 66, en: 'best' },
{ ref: 73, en: 'top secret' }, // TODO multiple w ref
{ ref: 75, en: 'readiest' },
{ ref: 76, en: 'nicest' },
{ ref: 77, en: 'innermost' },
{ ref: 78, en: 'outermost' },
{ ref: 79, en: 'furthest' },
{ en: 'biggest' },
{ en: 'most', meta: {stopword: ['en'], filler: ['en']} },
]
},
//: JJ generic
// note:
// uid: has an irregular comparative, superlative or adverb
// ref: references an irregular adverb
// - flag convertable adjectives (no need for more/most) as 'convertable'
// - flag adjectives having no comparative forms as 'noComparative'
// - flag adjectives having no adverb as 'noAdverb'
JJ: {
title: 'adjective, generic',
example: 'big, nice',
parent: 'adjective',
tag: 'JJ',
// all of these adjectives will be declined to their adverbs. (13ms)
words: [
// irregular adjectives
{ uid: 0, en: 'wrong' },
{ uid: 1, en: 'public' },
{ uid: 2, en: 'vague', meta: {convertable: ['en']} },
{ uid: 3, en: 'icy' },
{ uid: 4, en: 'single' },
{ uid: 5, en: 'female' },
{ uid: 6, en: 'male' },
{ uid: 7, en: 'simple', meta: {convertable: ['en']} },
{ uid: 8, ref: 0, en: 'whole' },
{ uid: 9, en: 'special' },
{ uid: 10, en: 'straight', meta: {convertable: ['en']} },
{ uid: 11, en: 'gay' },
{ uid: 12, en: 'fast', meta: {convertable: ['en']} },
{ uid: 13, en: 'hard', meta: {convertable: ['en']} },
{ uid: 14, en: 'late', meta: {convertable: ['en']} },
{ uid: 15, en: 'early', meta: {convertable: ['en']} },
{ uid: 16, en: 'best' },
{ uid: 17, en: 'latter' },
{ uid: 18, en: 'bad' },
{ uid: 19, ref: 1, en: 'idle' },
{ uid: 20, en: 'black', meta: {convertable: ['en'], noAdverb: ['en']} },
{ uid: 21, en: 'white', meta: {convertable: ['en'], noAdverb: ['en']} },
{ uid: 22, en: 'green', meta: {convertable: ['en'], noAdverb: ['en']} },
{ uid: 23, en: 'red', meta: {convertable: ['en'], noAdverb: ['en']} },
{ uid: 24, en: 'blue', meta: {convertable: ['en'], noAdverb: ['en']} },
{ uid: 25, en: 'yellow', meta: {convertable: ['en'], noAdverb: ['en']} },
{ uid: 26, en: 'cyan', meta: {noAdverb: ['en']} },
{ uid: 27, en: 'magenta', meta: {noAdverb: ['en']} },
{ uid: 28, en: 'brown', meta: {convertable: ['en'], noAdverb: ['en']} },
{ uid: 29, en: 'orange', meta: {convertable: ['en'], noAdverb: ['en']} },
{ uid: 30, en: 'gold', meta: {noAdverb: ['en']} },
{ uid: 31, en: 'grey', meta: {noAdverb: ['en']} },
{ uid: 32, en: 'gray', meta: {noAdverb: ['en']} },
{ uid: 33, en: 'foreign', meta: {noAdverb: ['en']} },
{ uid: 34, en: 'modern', meta: {noAdverb: ['en']} },
{ uid: 35, en: 'next', meta: {noAdverb: ['en']} },
{ uid: 36, en: 'difficult', meta: {noAdverb: ['en']} },
{ uid: 37, en: 'degenerate', meta: {noAdverb: ['en']} },
{ uid: 38, en: 'young', meta: {convertable: ['en'], noAdverb: ['en']} },
{ uid: 39, en: 'awake', meta: {noAdverb: ['en']} },
{ uid: 40, en: 'back', meta: {noAdverb: ['en']} },
{ uid: 41, en: 'complex', meta: {noAdverb: ['en']} },
{ uid: 42, en: 'cool', meta: {convertable: ['en'], noAdverb: ['en']} },
{ uid: 43, en: 'dirty', meta: {convertable: ['en'], noAdverb: ['en']} },
{ uid: 44, en: 'done', meta: {noAdverb: ['en']} },
{ uid: 45, en: 'empty', meta: {convertable: ['en'], noAdverb: ['en']} },
{ uid: 46, en: 'fat', meta: {convertable: ['en'], noAdverb: ['en']} },
{ uid: 47, en: 'fertile', meta: {noAdverb: ['en']} },
{ uid: 48, en: 'frozen', meta: {noAdverb: ['en']} },
{ uid: 49, en: 'medium', meta: {noAdverb: ['en']} },
{ uid: 50, en: 'parallel', meta: {noAdverb: ['en']} },
{ uid: 51, en: 'outdoor', meta: {noAdverb: ['en']} },
{ uid: 52, en: 'unknown', meta: {noAdverb: ['en']} },
{ uid: 53, en: 'undersized', meta: {noAdverb: ['en']} },
{ uid: 54, en: 'used', meta: {noAdverb: ['en']} },
{ uid: 55, en: 'welcome', meta: {noAdverb: ['en']} },
{ uid: 56, en: 'fixed', meta: {noAdverb: ['en']} },
{ uid: 57, en: 'mixed', meta: {noAdverb: ['en']} },
{ uid: 58, en: 'super', meta: {noAdverb: ['en']} },
{ uid: 59, en: 'superb', meta: {noAdverb: ['en']} },
{ uid: 60, en: 'guilty', meta: {noAdverb: ['en']} },
{ uid: 61, en: 'tiny', meta: {noAdverb: ['en']} },
{ uid: 62, en: 'able', meta: {noAdverb: ['en']} },
{ uid: 63, en: 'unable', meta: {noAdverb: ['en']} },
{ uid: 64, en: 'same', meta: {stopword: ['en'], noAdverb: ['en']} },
{ uid: 65, en: 'adult', meta: {noAdverb: ['en']} },
{ uid: 66, en: 'good' },
{ uid: 67, en: 'sad', meta: {convertable: ['en']} },
{ uid: 68, en: 'overweight', meta: {noComparative: ['en']} },
{ uid: 69, en: 'main', meta: {noComparative: ['en']} },
{ uid: 70, en: 'nearby', meta: {noComparative: ['en']} },
{ uid: 71, en: 'asleep', meta: {noComparative: ['en']} },
{ uid: 72, en: 'weekly', meta: {noComparative: ['en']} },
{ uid: 73, en: 'secret' },
{ uid: 74, en: 'certain' },
{ uid: 75, en: 'ready' },
{ uid: 76, en: 'nice', meta: {convertable: ['en']} },
{ uid: 77, en: 'inner' },
{ uid: 78, en: 'outer' },
{ uid: 79, en: 'far' },
{ uid: 80, en: 'clean', meta: {convertable: ['en']}},
{ uid: 81, en: 'naive' },
{ ref: 2, en: 'full', meta: {convertable: ['en']} },
{ ref: 3, en: 'practical' },
{ ref: 4, en: 'theoretical' },
{ ref: 5, en: 'sporadic' },
{ ref: 6, en: 'basic' },
{ ref: 7, en: 'grammatical' },
{ ref: 8, en: 'alphabetical' },
{ ref: 9, en: 'economical' },
{ ref: 10, en: 'conical' },
{ ref: 11, en: 'political' },
{ ref: 12, en: 'vertical' },
{ ref: 13, en: 'critical' },
{ ref: 14, en: 'fantastic' },
{ ref: 15, en: 'mystical' },
{ ref: 16, en: 'pornographic' },
{ ref: 17, en: 'jolly' },
// demonyms:
{ en: 'afghan', meta: {demonym: ['en']} },
{ en: 'albanian', meta: {demonym: ['en']} },
{ en: 'algerian', meta: {demonym: ['en']} },
{ en: 'argentine', meta: {demonym: ['en']} },
{ en: 'armenian', meta: {demonym: ['en']} },
{ en: 'australian', meta: {demonym: ['en']} },
{ en: 'aussie', meta: {demonym: ['en']} },
{ en: 'austrian', meta: {demonym: ['en']} },
{ en: 'bangladeshi', meta: {demonym: ['en']} },
{ en: 'belgian', meta: {demonym: ['en']} },
{ en: 'bolivian', meta: {demonym: ['en']} },
{ en: 'bosnian', meta: {demonym: ['en']} },
{ en: 'brazilian', meta: {demonym: ['en']} },
{ en: 'bulgarian', meta: {demonym: ['en']} },
{ en: 'cambodian', meta: {demonym: ['en']} },
{ en: 'canadian', meta: {demonym: ['en']} },
{ en: 'chilean', meta: {demonym: ['en']} },
{ en: 'chinese', meta: {demonym: ['en']} },
{ en: 'colombian', meta: {demonym: ['en']} },
{ en: 'croat', meta: {demonym: ['en']} },
{ en: 'cuban', meta: {demonym: ['en']} },
{ en: 'czech', meta: {demonym: ['en']} },
{ en: 'dominican', meta: {demonym: ['en']} },
{ en: 'egyptian', meta: {demonym: ['en']} },
{ en: 'british', meta: {demonym: ['en']} },
{ en: 'estonian', meta: {demonym: ['en']} },
{ en: 'ethiopian', meta: {demonym: ['en']} },
{ en: 'finnish', meta: {demonym: ['en']} },
{ en: 'french', meta: {demonym: ['en']} },
{ en: 'gambian', meta: {demonym: ['en']} },
{ en: 'georgian', meta: {demonym: ['en']} },
{ en: 'german', meta: {demonym: ['en']} },
{ en: 'greek', meta: {demonym: ['en']} },
{ en: 'haitian', meta: {demonym: ['en']} },
{ en: 'hungarian', meta: {demonym: ['en']} },
{ en: 'indian', meta: {demonym: ['en']} },
{ en: 'indonesian', meta: {demonym: ['en']} },
{ en: 'iranian', meta: {demonym: ['en']} },
{ en: 'iraqi', meta: {demonym: ['en']} },
{ en: 'irish', meta: {demonym: ['en']} },
{ en: 'israeli', meta: {demonym: ['en']} },
{ en: 'italian', meta: {demonym: ['en']} },
{ en: 'jamaican', meta: {demonym: ['en']} },
{ en: 'japanese', meta: {demonym: ['en']} },
{ en: 'jordanian', meta: {demonym: ['en']} },
{ en: 'kenyan', meta: {demonym: ['en']} },
{ en: 'korean', meta: {demonym: ['en']} },
{ en: 'kuwaiti', meta: {demonym: ['en']} },
{ en: 'latvian', meta: {demonym: ['en']} },
{ en: 'lebanese', meta: {demonym: ['en']} },
{ en: 'liberian', meta: {demonym: ['en']} },
{ en: 'libyan', meta: {demonym: ['en']} },
{ en: 'lithuanian', meta: {demonym: ['en']} },
{ en: 'macedonian', meta: {demonym: ['en']} },
{ en: 'malaysian', meta: {demonym: ['en']} },
{ en: 'mexican', meta: {demonym: ['en']} },
{ en: 'mongolian', meta: {demonym: ['en']} },
{ en: 'moroccan', meta: {demonym: ['en']} },
{ en: 'dutch', meta: {demonym: ['en']} },
{ en: 'nicaraguan', meta: {demonym: ['en']} },
{ en: 'nigerian', meta: {demonym: ['en']} },
{ en: 'norwegian', meta: {demonym: ['en']} },
{ en: 'omani', meta: {demonym: ['en']} },
{ en: 'pakistani', meta: {demonym: ['en']} },
{ en: 'palestinian', meta: {demonym: ['en']} },
{ en: 'filipino', meta: {demonym: ['en']} },
{ en: 'polish', meta: {demonym: ['en']} },
{ en: 'portuguese', meta: {demonym: ['en']} },
{ en: 'qatari', meta: {demonym: ['en']} },
{ en: 'romanian', meta: {demonym: ['en']} },
{ en: 'russian', meta: {demonym: ['en']} },
{ en: 'rwandan', meta: {demonym: ['en']} },
{ en: 'samoan', meta: {demonym: ['en']} },
{ en: 'saudi', meta: {demonym: ['en']} },
{ en: 'scottish', meta: {demonym: ['en']} },
{ en: 'senegalese', meta: {demonym: ['en']} },
{ en: 'serbian', meta: {demonym: ['en']} },
{ en: 'singaporean', meta: {demonym: ['en']} },
{ en: 'slovak', meta: {demonym: ['en']} },
{ en: 'somali', meta: {demonym: ['en']} },
{ en: 'sudanese', meta: {demonym: ['en']} },
{ en: 'swedish', meta: {demonym: ['en']} },
{ en: 'swiss', meta: {demonym: ['en']} },
{ en: 'syrian', meta: {demonym: ['en']} },
{ en: 'taiwanese', meta: {demonym: ['en']} },
{ en: 'thai', meta: {demonym: ['en']} },
{ en: 'tunisian', meta: {demonym: ['en']} },
{ en: 'ugandan', meta: {demonym: ['en']} },
{ en: 'ukrainian', meta: {demonym: ['en']} },
{ en: 'american', meta: {demonym: ['en']} },
{ en: 'hindi', meta: {demonym: ['en']} },
{ en: 'spanish', meta: {demonym: ['en']} },
{ en: 'venezuelan', meta: {demonym: ['en']} },
{ en: 'vietnamese', meta: {demonym: ['en']} },
{ en: 'welsh', meta: {demonym: ['en']} },
{ en: 'african', meta: {demonym: ['en']} },
{ en: 'european', meta: {demonym: ['en']} },
{ en: 'asian', meta: {demonym: ['en']} },
{ en: 'californian', meta: {demonym: ['en']} },
// adjectives that either aren't covered by rules, or have superlative/comparative forms:
// regular adjectives
{ en: 'colonial' },
{ en: 'moody' },
{ en: 'literal' },
{ en: 'actual', meta: {filler: ['en']} },
{ en: 'probable' },
{ en: 'apparent' },
{ en: 'usual' },
{ en: 'aberrant' },
{ en: 'ablaze' },
{ en: 'absolute' },
{ en: 'aboard' },
{ en: 'abrupt' },
{ en: 'absent' },
{ en: 'absorbing' },
{ en: 'absurd', meta: {convertable: ['en']} },
{ en: 'abundant' },
{ en: 'accurate' },
{ en: 'afraid' },
{ en: 'agonizing' },
{ en: 'ahead' },
{ en: 'alert', meta: {convertable: ['en']} },
{ en: 'alive', meta: {convertable: ['en']} },
{ en: 'aloof' },
{ en: 'amazing' },
{ en: 'arbitrary' },
{ en: 'arrogant' },
{ en: 'astonishing' },
{ en: 'average' },
{ en: 'aware' },
{ en: 'awkward' },
{ en: 'bankrupt' },
{ en: 'bawdy' },
{ en: 'beneficial' },
{ en: 'bent' },
{ en: 'better' },
{ en: 'big', meta: {convertable: ['en']} },
{ en: 'bitter', meta: {convertable: ['en']} },
{ en: 'bizarre' },
{ en: 'bloody' },
{ en: 'bouncy' },
{ en: 'brash', meta: {convertable: ['en']} },
{ en: 'brave', meta: {convertable: ['en']} },
{ en: 'brief', meta: {convertable: ['en']} },
{ en: 'bright', meta: {convertable: ['en']} },
{ en: 'brilliant' },
{ en: 'broad', meta: {convertable: ['en']} },
{ en: 'broken' },
{ en: 'burly' },
{ en: 'busy' },
{ en: 'cagey' },
{ en: 'calm', meta: {convertable: ['en']} },
{ en: 'careful' },
{ en: 'caring' },
{ en: 'charming', meta: {convertable: ['en']} },
{ en: 'cheap', meta: {convertable: ['en']} },
{ en: 'chief' },
{ en: 'chilly' },
{ en: 'civil' },
{ en: 'clever' },
{ en: 'close', meta: {convertable: ['en']} },
{ en: 'closed' },
{ en: 'cloudy' },
{ en: 'cold', meta: {convertable: ['en']} },
{ en: 'colossal' },
{ en: 'commercial' },
{ en: 'common' },
{ en: 'complete' },
{ en: 'concerned' },
{ en: 'concrete' },
{ en: 'congruent' },
{ en: 'constant' },
{ en: 'cooing' },
{ en: 'correct' },
{ en: 'cowardly' },
{ en: 'craven' },
{ en: 'cruel', meta: {convertable: ['en']} },
{ en: 'cuddly' },
{ en: 'curly', meta: {convertable: ['en']} },
{ en: 'cute', meta: {convertable: ['en']} },
{ en: 'daily' },
{ en: 'damaged' },
{ en: 'damaging' },
{ en: 'damp', meta: {convertable: ['en']} },
{ en: 'dapper' },
{ en: 'dark', meta: {convertable: ['en']} },
{ en: 'dashing' },
{ en: 'dead', meta: {convertable: ['en']} },
{ en: 'deadpan' },
{ en: 'dear', meta: {convertable: ['en']} },
{ en: 'deep', meta: {convertable: ['en']} },
{ en: 'deeply' },
{ en: 'defiant' },
{ en: 'delicate' },
{ en: 'delightful' },
{ en: 'desperate' },
{ en: 'determined' },
{ en: 'didactic' },
{ en: 'discreet' },
{ en: 'double' },
{ en: 'doubtful' },
{ en: 'downtown' },
{ en: 'dreary' },
{ en: 'drunk', meta: {convertable: ['en']} },
{ en: 'dry', meta: {convertable: ['en']} },
{ en: 'dull', meta: {convertable: ['en']} },
{ en: 'eager', meta: {convertable: ['en']} },
{ en: 'east' },
{ en: 'eastern' },
{ en: 'easy', meta: {convertable: ['en']} },
{ en: 'elderly' },
{ en: 'elegant' },
{ en: 'elfin' },
{ en: 'elite' },
{ en: 'eminent' },
{ en: 'encouraging' },
{ en: 'entire' },
{ en: 'erect' },
{ en: 'ethereal' },
{ en: 'even', meta: {convertable: ['en']} },
{ en: 'exact' },
{ en: 'expert' },
{ en: 'extra' },
{ en: 'extreme', meta: {convertable: ['en']} },
{ en: 'exuberant' },
{ en: 'exultant' },
{ en: 'faint', meta: {convertable: ['en']} },
{ en: 'fair', meta: {convertable: ['en']} },
{ en: 'false' },
{ en: 'fanc', meta: {convertable: ['en']} },
{ en: 'fancy' },
{ en: 'faulty' },
{ en: 'feeble', meta: {convertable: ['en']} },
{ en: 'few', meta: {convertable: ['en']} },
{ en: 'fierce', meta: {convertable: ['en']} },
{ en: 'financial' },
{ en: 'fine', meta: {convertable: ['en']} },
{ en: 'firm', meta: {convertable: ['en']} },
{ en: 'first' },
{ en: 'fit' },
{ en: 'flagrant' },
{ en: 'flat', meta: {convertable: ['en']} },
{ en: 'foamy' },
{ en: 'foolish' },
{ en: 'foregoing' },
{ en: 'forgetful', meta: {convertable: ['en']} },
{ en: 'former' },
{ en: 'fortunate' },
{ en: 'frail', meta: {convertable: ['en']} },
{ en: 'frantic' },
{ en: 'free', meta: {convertable: ['en']} },
{ en: 'freezing' },
{ en: 'frequent' },
{ en: 'fresh', meta: {convertable: ['en']} },
{ en: 'fretful' },
{ en: 'friendly' },
{ en: 'fun' },
{ en: 'funny', meta: {convertable: ['en']} },
{ en: 'furry' },
{ en: 'future' },
{ en: 'gainful' },
{ en: 'gaudy' },
{ en: 'gentle', meta: {convertable: ['en']} },
{ en: 'giant' },
{ en: 'giddy' },
{ en: 'gigantic' },
{ en: 'glad', meta: {convertable: ['en']} },
{ en: 'gleaming' },
{ en: 'glib', meta: {convertable: ['en']} },
{ en: 'global' },
{ en: 'gone' },
{ en: 'goofy' },
{ en: 'graceful' },
{ en: 'grand', meta: {convertable: ['en']} },
{ en: 'grateful' },
{ en: 'gratis' },
{ en: 'great', meta: {convertable: ['en']} },
{ en: 'groovy' },
{ en: 'gross' },
{ en: 'guarded' },
{ en: 'half' },
{ en: 'handy' },
{ en: 'hanging' },
{ en: 'harsh', meta: {convertable: ['en']} },
{ en: 'hateful' },
{ en: 'heady' },
{ en: 'heavenly' },
{ en: 'heavy', meta: {convertable: ['en']} },
{ en: 'hellish' },
{ en: 'helpful' },
{ en: 'hesitant' },
{ en: 'high', meta: {convertable: ['en']} },
{ en: 'highfalutin' },
{ en: 'hollow', meta: {convertable: ['en']} },
{ en: 'homely' },
{ en: 'honest' },
{ en: 'hot', meta: {convertable: ['en']} },
{ en: 'huge' },
{ en: 'humdrum' },
{ en: 'hurried' },
{ en: 'hurt' },
{ en: 'ignorant' },
{ en: 'ill' },
{ en: 'illegal' },
{ en: 'immediate' },
{ en: 'immense' },
{ en: 'imminent' },
{ en: 'impartial' },
{ en: 'imperfect' },
{ en: 'impolite', meta: {convertable: ['en']} },
{ en: 'important', meta: {convertable: ['en']} },
{ en: 'imported' },
{ en: 'initial' },
{ en: 'innate' },
{ en: 'inside' },
{ en: 'irate' },
{ en: 'juicy' },
{ en: 'junior' },
{ en: 'juvenile' },
{ en: 'kaput' },
{ en: 'keen', meta: {convertable: ['en']} },
{ en: 'kind', meta: {convertable: ['en']} },
{ en: 'kindly' },
{ en: 'knowing' },
{ en: 'labored' },
{ en: 'lame', meta: {convertable: ['en']} },
{ en: 'languid' },
{ en: 'large', meta: {convertable: ['en']} },
{ en: 'learned' },
{ en: 'left' },
{ en: 'legal' },
{ en: 'lethal' },
{ en: 'level' },
{ en: 'lewd' },
{ en: 'light', meta: {convertable: ['en']} },
{ en: 'likely' },
{ en: 'literate' },
{ en: 'lively' },
{ en: 'living' },
{ en: 'lonely' },
{ en: 'longing' },
{ en: 'loose', meta: {convertable: ['en']} },
{ en: 'loud', meta: {convertable: ['en']} },
{ en: 'loutish' },
{ en: 'lovely' },
{ en: 'loving' },
{ en: 'low', meta: {convertable: ['en']} },
{ en: 'lowly' },
{ en: 'lush', meta: {convertable: ['en']} },
{ en: 'luxuriant' },
{ en: 'lying' },
{ en: 'macabre' },
{ en: 'macho', meta: {convertable: ['en']} },
{ en: 'mad', meta: {convertable: ['en']} },
{ en: 'madly' },
{ en: 'magenta' },
{ en: 'major' },
{ en: 'makeshift' },
{ en: 'mammoth' },
{ en: 'married' },
{ en: 'mature', meta: {convertable: ['en']} },
{ en: 'measly' },
{ en: 'meaty' },
{ en: 'meek', meta: {convertable: ['en']} },
{ en: 'mellow', meta: {convertable: ['en']} },
{ en: 'mere' },
{ en: 'middle' },
{ en: 'miniature' },
{ en: 'minor' },
{ en: 'miscreant' },
{ en: 'mobile' },
{ en: 'moldy' },
{ en: 'mundane', meta: {convertable: ['en']} },
{ en: 'mute' },
{ en: 'narrow', meta: {convertable: ['en']} },
{ en: 'near', meta: {convertable: ['en']} },
{ en: 'neat', meta: {convertable: ['en']} },
{ en: 'necessary' },
{ en: 'neighborly' },
{ en: 'new', meta: {convertable: ['en']} },
{ en: 'nimble' },
{ en: 'noisy', meta: {convertable: ['en']} },
{ en: 'nonchalant' },
{ en: 'nondescript' },
{ en: 'nonstop' },
{ en: 'north' },
{ en: 'nosy' },
{ en: 'obeisant' },
{ en: 'obese' },
{ en: 'obscene' },
{ en: 'observant' },
{ en: 'obsolete' },
{ en: 'odd', meta: {convertable: ['en']} },
{ en: 'offbeat' },
{ en: 'official' },
{ en: 'ok', meta: {filler: ['en']} },
{ en: 'old', meta: {convertable: ['en']} },
{ en: 'open', meta: {weak: ['en']} },
{ en: 'opposite' },
{ en: 'organic' },
{ en: 'outgoing' },
{ en: 'oval' },
{ en: 'over', meta: {stopword: ['en']} },
{ en: 'overall' },
{ en: 'overt' },
{ en: 'overwrought' },
{ en: 'painful' },
{ en: 'pale', meta: {convertable: ['en']} },
{ en: 'past' },
{ en: 'peaceful' },
{ en: 'perfect' },
{ en: 'petite' },
{ en: 'picayune' },
{ en: 'pink', meta: {convertable: ['en']} },
{ en: 'placid' },
{ en: 'plain', meta: {convertable: ['en']} },
{ en: 'plant' },
{ en: 'pleasant' },
{ en: 'polite' },
{ en: 'poor', meta: {convertable: ['en']} },
{ en: 'potential' },
{ en: 'pregnant' },
{ en: 'premium' },
{ en: 'present' },
{ en: 'pricey' },
{ en: 'prickly' },
{ en: 'primary' },
{ en: 'prior' },
{ en: 'private' },
{ en: 'profuse' },
{ en: 'proper' },
{ en: 'pumped' },
{ en: 'puny' },
{ en: 'pure', meta: {convertable: ['en']} },
{ en: 'purple', meta: {convertable: ['en']} },
{ en: 'quack' },
{ en: 'quaint' },
{ en: 'quick', meta: {convertable: ['en']} },
{ en: 'quickest' },
{ en: 'quiet', meta: {convertable: ['en']} },
{ en: 'rabid' },
{ en: 'racial' },
{ en: 'rare', meta: {convertable: ['en']} },
{ en: 'raw', meta: {convertable: ['en']} },
{ en: 'real', meta: {filler: ['en']} },
{ en: 'rebel' },
{ en: 'recondite' },
{ en: 'redundant' },
{ en: 'relevant' },
{ en: 'remote' },
{ en: 'resolute' },
{ en: 'resonant' },
{ en: 'rich', meta: {convertable: ['en'], filler: ['en']} },
{ en: 'right', meta: {filler: ['en'] /*arguable, can be direction*/} },
{ en: 'rightful' },
{ en: 'ripe', meta: {filler: ['en']} },
{ en: 'ritzy' },
{ en: 'robust' },
{ en: 'romantic' },
{ en: 'roomy' },
{ en: 'rotten', meta: {filler: ['en']} },
{ en: 'rough' },
{ en: 'round', meta: {convertable: ['en'], filler: ['en']} },
{ en: 'royal' },
{ en: 'rude', meta: {convertable: ['en'], filler: ['en']} },
{ en: 'safe', meta: {convertable: ['en']} },
{ en: 'salty' },
{ en: 'scarce', meta: {convertable: ['en']} },
{ en: 'scary' },
{ en: 'scientific' },
{ en: 'screeching' },
{ en: 'second' },
{ en: 'secure' },
{ en: 'sedate' },
{ en: 'seemly' },
{ en: 'selfish' },
{ en: 'senior' },
{ en: 'separate' },
{ en: 'severe' },
{ en: 'shallow', meta: {convertable: ['en']} },
{ en: 'sharp', meta: {convertable: ['en']} },
{ en: 'shiny' },
{ en: 'shocking' },
{ en: 'short', meta: {convertable: ['en']} },
{ en: 'shrill', meta: {convertable: ['en']} },
{ en: 'shut' },
{ en: 'shy' },
{ en: 'sick' },
{ en: 'significant' },
{ en: 'silly' },
{ en: 'sincere' },
{ en: 'skinny' },
{ en: 'slight' },
{ en: 'slim', meta: {convertable: ['en']} },
{ en: 'slimy' },
{ en: 'slow', meta: {convertable: ['en']} },
{ en: 'small', meta: {convertable: ['en']} },
{ en: 'smelly' },
{ en: 'smooth', meta: {convertable: ['en']} },
{ en: 'snobbish' },
{ en: 'social' },
{ en: 'soft', meta: {convertable: ['en']} },
{ en: 'somber' },
{ en: 'soon', meta: {convertable: ['en']} },
{ en: 'sordid' },
{ en: 'sore', meta: {convertable: ['en']} },
{ en: 'sorry' },
{ en: 'sour', meta: {convertable: ['en']} },
{ en: 'southern' },
{ en: 'spare' },
{ en: 'specific' },
{ en: 'spicy' },
{ en: 'splendid' },
{ en: 'square', meta: {convertable: ['en']} },
{ en: 'squeamish' },
{ en: 'stale', meta: {convertable: ['en']} },
{ en: 'standard' },
{ en: 'standing' },
{ en: 'steadfast' },
{ en: 'steady' },
{ en: 'steep', meta: {convertable: ['en']} },
{ en: 'stereotyped' },
{ en: 'stiff', meta: {convertable: ['en']} },
{ en: 'still' },
{ en: 'strange', meta: {convertable: ['en']} },
{ en: 'strict', meta: {convertable: ['en']} },
{ en: 'striped' },
{ en: 'strong', meta: {convertable: ['en']} },
{ en: 'stupid' },
{ en: 'sturdy' },
{ en: 'subdued' },
{ en: 'subsequent' },
{ en: 'substantial' },
{ en: 'sudden' },
{ en: 'superficial' },
{ en: 'supreme' },
{ en: 'sure' },
{ en: 'sweet', meta: {convertable: ['en']} },
{ en: 'swift', meta: {convertable: ['en']} },
{ en: 'taboo' },
{ en: 'tall', meta: {convertable: ['en']} },
{ en: 'tame', meta: {convertable: ['en']} },
{ en: 'tan' },
{ en: 'tart', meta: {convertable: ['en']} },
{ en: 'tasteful' },
{ en: 'tawdry' },
{ en: 'telling' },
{ en: 'temporary' },
{ en: 'tender', meta: {convertable: ['en']} },
{ en: 'tense', meta: {convertable: ['en']} },
{ en: 'terrific' },
{ en: 'tested' },
{ en: 'thick', meta: {convertable: ['en']} },
{ en: 'thin', meta: {convertable: ['en']} },
{ en: 'thoughtful' },
{ en: 'tidy' },
{ en: 'tight', meta: {convertable: ['en']} },
{ en: 'top' },
{ en: 'torpid' },
{ en: 'tough', meta: {convertable: ['en']} },
{ en: 'tranquil' },
{ en: 'trite' },
{ en: 'true', meta: {convertable: ['en']} },
{ en: 'ugly' },
{ en: 'ultra' },
{ en: 'unbecoming' },
{ en: 'understood' },
{ en: 'uneven' },
{ en: 'unfair' },
{ en: 'unlikely' },
{ en: 'unruly' },
{ en: 'unsightly' },
{ en: 'untidy' },
{ en: 'unwritten' },
{ en: 'upbeat' },
{ en: 'upper' },
{ en: 'uppity' },
{ en: 'upset' },
{ en: 'upstairs' },
{ en: 'uptight' },
{ en: 'useful' },
{ en: 'utter' },
{ en: 'uttermost' },
{ en: 'vagabond' },
{ en: 'vanilla' },
{ en: 'various' },
{ en: 'vast', meta: {convertable: ['en']} },
{ en: 'vengeful' },
{ en: 'verdant' },
{ en: 'violet' },
{ en: 'volatile' },
{ en: 'vulgar', meta: {convertable: ['en']} },
{ en: 'wanting' },
{ en: 'warm', meta: {convertable: ['en']} },
{ en: 'wary' },
{ en: 'wasteful' },
{ en: 'weak', meta: {convertable: ['en']} },
{ en: 'weary' },
{ en: 'weird', meta: {convertable: ['en']} },
{ en: 'western' },
{ en: 'wet', meta: {convertable: ['en']} },
{ en: 'wholesale' },
{ en: 'wide' },
{ en: 'wild', meta: {convertable: ['en']} },
{ en: 'windy', meta: {convertable: ['en']} },
{ en: 'wiry' },
{ en: 'wise', meta: {convertable: ['en']} },
{ en: 'wistful' },
{ en: 'wooden' },
{ en: 'woozy' },
{ en: 'wound' },
{ en: 'wry' },
{ en: 'zany' },
{ en: 'sacred' },
// adjectives that have good comparative/superlative forms:
{ en: 'aggressive', meta: {convertable: ['en']} },
{ en: 'awesome', meta: {convertable: ['en']} },
{ en: 'beautiful', meta: {convertable: ['en']} },
{ en: 'bored', meta: {convertable: ['en']} },
{ en: 'boring', meta: {convertable: ['en']} },
{ en: 'efficient', meta: {convertable: ['en']} },
{ en: 'gruesome', meta: {convertable: ['en']} },
{ en: 'handsome', meta: {convertable: ['en']} },
{ en: 'innocent', meta: {convertable: ['en']} },
{ en: 'lean', meta: {convertable: ['en']} },
{ en: 'little', meta: {convertable: ['en']} },
{ en: 'long', meta: {convertable: ['en']} },
{ en: 'mean', meta: {convertable: ['en']} },
{ en: 'normal', meta: {convertable: ['en']} },
{ en: 'proud', meta: {convertable: ['en']} },
{ en: 'rapid', meta: {convertable: ['en']} },
{ en: 'scared', meta: {convertable: ['en']} },
{ en: 'smart', meta: {convertable: ['en']} },
{ en: 'thirsty', meta: {convertable: ['en']} },
{ en: 'hungry', meta: {convertable: ['en']} },
{ en: 'clear', meta: {convertable: ['en']} },
{ en: 'happy', meta: {convertable: ['en']} },
{ en: 'lucky', meta: {convertable: ['en']} },
{ en: 'pretty', meta: {convertable: ['en']} },
{ en: 'interesting', meta: {convertable: ['en']} },
{ en: 'attractive', meta: {convertable: ['en']} },
{ en: 'dangerous', meta: {convertable: ['en']} },
{ en: 'intellegent', meta: {convertable: ['en']} },
{ en: 'formal', meta: {convertable: ['en']} },
{ en: 'tired', meta: {convertable: ['en']} },
{ en: 'solid', meta: {convertable: ['en']} },
{ en: 'angry', meta: {convertable: ['en']} },
{ en: 'detailed' },
{ en: 'ongoing' },
{ en: 'prominent' },
{ en: 'permanent' },
{ en: 'diverse' },
{ en: 'partial' },
{ en: 'moderate' },
{ en: 'contemporary' },
{ en: 'intense' },
{ en: 'widespread' },
{ en: 'ultimate' },
{ en: 'ideal' },
{ en: 'adequate' },
{ en: 'sophisticated' },
{ en: 'naked' },
{ en: 'dominant' },
{ en: 'precise' },
{ en: 'intact' },
{ en: 'adverse' },
{ en: 'genuine' },
{ en: 'subtle' },
{ en: 'universal' },
{ en: 'resistant' },
{ en: 'routine' },
{ en: 'distant' },
{ en: 'unexpected' },
{ en: 'soviet' },
{ en: 'blind' },
{ en: 'artificial' },
{ en: 'mild' },
{ en: 'legitimate' },
{ en: 'unpublished' },
{ en: 'superior' },
{ en: 'intermediate' },
{ en: 'everyday' },
{ en: 'dumb' },
{ en: 'excess' },
{ en: 'sexy' },
{ en: 'fake' },
{ en: 'monthly' },
{ en: 'premature' },
{ en: 'sheer' },
{ en: 'generic' },
{ en: 'insane' },
{ en: 'contrary' },
{ en: 'twin' },
{ en: 'upcoming' },
{ en: 'bottom' },
{ en: 'costly' },
{ en: 'indirect' },
{ en: 'sole' },
{ en: 'unrelated' },
{ en: 'hispanic' },
{ en: 'improper' },
{ en: 'underground' },
{ en: 'legendary' },
{ en: 'reluctant' },
{ en: 'beloved' },
{ en: 'inappropriate' },
{ en: 'corrupt' },
{ en: 'irrelevant' },
{ en: 'justified' },
{ en: 'obscure' },
{ en: 'profound' },
{ en: 'hostile' },
{ en: 'influential' },
{ en: 'inadequate' },
{ en: 'abstract' },
{ en: 'timely' },
{ en: 'authentic' },
{ en: 'bold' },
{ en: 'intimate' },
{ en: 'straightforward' },
{ en: 'rival' },
{ en: 'right-wing' },
{ en: 'racist' },
{ en: 'symbolic' },
{ en: 'unprecedented' },
{ en: 'loyal' },
{ en: 'talented' },
{ en: 'troubled' },
{ en: 'noble' },
{ en: 'instant' },
{ en: 'incorrect' },
{ en: 'dense' },
{ en: 'blond' },
{ en: 'deliberate' },
{ en: 'blank' },
{ en: 'rear' },
{ en: 'feminine' },
{ en: 'apt' },
{ en: 'stark' },
{ en: 'alcoholic' },
{ en: 'teenage' },
{ en: 'vibrant' },
{ en: 'humble' },
{ en: 'vain' },
{ en: 'covert' },
{ en: 'bland' },
{ en: 'trendy' },
{ en: 'foul' },
{ en: 'populist' },
{ en: 'alarming' },
{ en: 'hooked' },
{ en: 'wicked' },
{ en: 'deaf' },
{ en: 'left-wing' },
{ en: 'lousy' },
{ en: 'malignant' },
{ en: 'stylish' },
{ en: 'upscale' },
{ en: 'hourly' },
{ en: 'refreshing' },
{ en: 'cozy' },
{ en: 'slick' },
{ en: 'dire' },
{ en: 'yearly' },
{ en: 'inbred' },
{ en: 'part-time' },
{ en: 'finite' },
{ en: 'backwards' },
{ en: 'nightly' },
{ en: 'unauthorized' },
{ en: 'cheesy' },
{ en: 'indoor' },
{ en: 'surreal' },
{ en: 'bald' },
{ en: 'masculine' },
{ en: 'shady' },
{ en: 'spirited' },
{ en: 'eerie' },
{ en: 'horrific' },
{ en: 'smug' },
{ en: 'stern' },
{ en: 'hefty' },
{ en: 'savvy' },
{ en: 'bogus' },
{ en: 'elaborate' },
{ en: 'gloomy' },
{ en: 'pristine' },
{ en: 'extravagant' },
{ en: 'serene' },
{ en: 'advanced' },
{ en: 'perverse' },
{ en: 'devout' },
{ en: 'crisp' },
{ en: 'rosy' },
{ en: 'slender' },
{ en: 'melancholy' },
{ en: 'faux' },
{ en: 'phony' },
{ en: 'danish' },
{ en: 'lofty' },
{ en: 'nuanced' },
{ en: 'lax' },
{ en: 'adept' },
{ en: 'barren' },
{ en: 'shameful' },
{ en: 'sleek' },
{ en: 'solemn' },
{ en: 'vacant' },
{ en: 'dishonest' },
{ en: 'brisk' },
{ en: 'fluent' },
{ en: 'insecure' },
{ en: 'humid' },
{ en: 'menacing' },
{ en: 'moot' },
{ en: 'soothing' },
{ en: 'self-loathing' },
{ en: 'far-reaching' },
{ en: 'harrowing' },
{ en: 'scathing' },
{ en: 'perplexing' },
{ en: 'calming' },
{ en: 'unconvincing' },
{ en: 'unsuspecting' },
{ en: 'unassuming' },
{ en: 'surprising' },
{ en: 'unappealing' },
{ en: 'vexing' },
{ en: 'unending' },
{ en: 'easygoing' },
{ en: 'appetizing' },
{ en: 'disgruntled' },
{ en: 'retarded' },
{ en: 'undecided' },
{ en: 'unregulated' },
{ en: 'unsupervised' },
{ en: 'unrecognized' },
{ en: 'crazed' },
{ en: 'distressed' },
{ en: 'jagged' },
{ en: 'paralleled' },
{ en: 'cramped' },
{ en: 'warped' },
{ en: 'antiquated' },
{ en: 'fabled' },
{ en: 'deranged' },
{ en: 'diseased' },
{ en: 'ragged' },
{ en: 'intoxicated' },
{ en: 'hallowed' },
{ en: 'crowded' },
{ en: 'ghastly' },
{ en: 'disorderly' },
{ en: 'saintly' },
{ en: 'wily' },
{ en: 'sly' },
{ en: 'sprightly' },
{ en: 'ghostly' },
{ en: 'oily' },
{ en: 'hilly' },
{ en: 'grisly' },
{ en: 'earthly' },
{ en: 'friendly' },
{ en: 'unwieldy' },
// other adjectives:
{ en: 'other', meta: {stopword: ['en']} },
{ en: 'many' },
{ en: 'last' },
{ en: 'expected' },
{ en: 'long' },
{ en: 'due' },
{ en: 'less' },
{ en: 'divine' },
{ en: 'all', meta: {stopword: ['en']} },
{ en: 'together' },
{ en: 'only', meta: {stopword: ['en']} },
{ en: 'outside' },
{ en: 'multiple' },
{ en: 'appropriate' },
{ en: 'approximate' },
{ en: 'evil' },
{ en: 'favorite' },
{ en: 'limited' },
{ en: 'random' },
{ en: 'republican' },
{ en: 'okay', meta: {filler: ['en']} },
{ en: 'essential' },
{ en: 'secondary' },
{ en: 'south' },
{ en: 'pro' },
{ en: 'northern' },
{ en: 'urban' },
{ en: 'acute' },
{ en: 'prime' },
{ en: 'arab' },
{ en: 'overnight' },
{ en: 'crucial' },
{ en: 'behind' },
{ en: 'above' },
{ en: 'beyond' },
{ en: 'against', meta: {stopword: ['en']} },
{ en: 'under', meta: {stopword: ['en']} },
{ en: 'definite' },
{ en: 'effective' },
{ en: 'especial' },
{ en: 'hopeful' },
{ en: 'obvious' },
{ en: 'particular' },
{ en: 'possible' },
{ en: 'relative' },
{ en: 'serious' },
{ en: 'typical' },
{ en: 'virtual' }
]
},
//: adverbs
//: RBR comparative
RBR: {
title: 'comparative adverb',
example: 'faster, cooler',
parent: 'adverb',
tag: 'RBR',
words: [
{ en: 'more', meta: {stopword: ['en']} }
]
},
//: RBS superlative
RBS: {
title: 'superlative adverb',
example: 'fastest, coolest',
parent: 'adverb',
tag: 'RBS',
words: [
{ en: 'most', meta: {stopword: ['en'], filler: ['en']} }
]
},
//: RB - some manual adverbs (the rest are generated)
// note:
// uid: has an irregular corresponding adjective
// ref: references irregular adjective
RB: {
title: 'adverb',
example: 'quickly, softly',
parent: 'adverb',
tag: 'RB',
words: [
{ uid: 0, ref: 8, en: 'wholly' },
{ uid: 1, ref: 19, en: 'idly' },
{ uid: 2, en: 'fully', meta: {filler: ['en']} },
{ uid: 3, en: 'practically', meta: {filler: ['en']} },
{ uid: 4, en: 'theoretically' },
{ uid: 5, en: 'sporadically' },
{ uid: 6, en: 'basically', meta: {filler: ['en']} },
{ uid: 7, en: 'grammatically' },
{ uid: 8, en: 'alphabetically' },
{ uid: 9, en: 'economically' },
{ uid: 10, en: 'conically' },
{ uid: 11, en: 'politically' },
{ uid: 12, en: 'vertically' },
{ uid: 13, en: 'critically' },
{ uid: 14, en: 'fantastically' },
{ uid: 15, en: 'mystically' },
{ uid: 16, en: 'pornographically' },
{ uid: 17, en: 'jolly' },
{ ref: 0, en: 'wrong' },
{ ref: 1, en: 'publicly' },
{ ref: 2, en: 'vaguely' },
{ ref: 3, en: 'icily' },
{ ref: 4, en: 'singly' },
{ ref: 5, en: 'womanly' },
{ ref: 6, en: 'manly' },
{ ref: 7, en: 'simply', meta: {filler: ['en']} },
{ ref: 9, en: 'especially', meta: {filler: ['en']} },
{ ref: 10, en: 'straight' },
{ ref: 11, en: 'gay' },
{ ref: 12, en: 'fast' },
{ ref: 13, en: 'hard' },
{ ref: 14, en: 'late' },
{ ref: 15, en: 'early' },
{ ref: 16, en: 'best' },
{ ref: 17, en: 'latter' },
{ ref: 18, en: 'badly' },
{ ref: 66, en: 'well' },
// other adverbs
{ en: 'when', meta: {stopword: ['en'], wh: ['en']} },
{ en: 'whence', meta: {stopword: ['en'], wh: ['en']} },
{ en: 'where', meta: {stopword: ['en'], wh: ['en']} },
{ en: 'why', meta: {stopword: ['en'], wh: ['en']} },
{ en: 'now', meta: {stopword: ['en']} },
{ en: 'again', meta: {stopword: ['en']} },
{ en: 'here', meta: {stopword: ['en'], entitySubstitution: ['en']} },
{ en: 'so', meta: {stopword: ['en'], filler: ['en']} },
{ en: 'very', meta: {stopword: ['en'], filler: ['en']} },
{ en: 'just', meta: {stopword: ['en'], filler: ['en']} },
{ en: 'too', meta: {stopword: ['en'], filler: ['en']} },
{ en: 'quite', meta: {filler: ['en']} },
{ en: 'then', meta: {stopword: ['en']} },
{ en: 'once', meta: {stopword: ['en']} },
{ en: 'maybe', meta: {filler: ['en']} },
{ en: 'well', meta: {filler: ['en']} },
{ en: 'rather', meta: {filler: ['en']} },
{ en: 'anyway', meta: {filler: ['en']} },
{ en: 'hence', meta: {stopword: ['en']} },
{ en: 'further', meta: {stopword: ['en']} },
{ en: 'already' },
{ en: 'soon' },
{ en: 'directly' },
{ en: 'toward' },
{ en: 'forever' },
{ en: 'apart' },
{ en: 'instead' },
{ en: 'yes' },
{ en: 'alone' },
{ en: 'ago' },
{ en: 'indeed' },
{ en: 'ever' },
{ en: 'perhaps' },
{ en: 'thus' },
{ en: 'often' },
{ en: 'never' },
{ en: 'away' },
{ en: 'always' },
{ en: 'sometimes' },
{ en: 'also' },
{ en: 'several' },
{ en: 'randomly' },
{ en: 'abroad' },
{ en: 'almost' },
{ en: 'twice' },
{ en: 'somewhat' },
{ en: 'somehow' },
{ en: 'meanwhile' },
{ en: 'furthermore' },
{ en: 'aside' },
{ en: 'moreover' },
{ en: 'anymore' },
{ en: 'newly' },
{ en: 'damn' },
// TODO - special : these should only go to metrics module for filler
// No worries, the lexicon is still smaller than before
{ en: 'absolutely', meta: {filler: ['en']} },
{ en: 'actually', meta: {filler: ['en']} },
{ en: 'apparently', meta: {filler: ['en']} },
{ en: 'approximately', meta: {filler: ['en']} },
{ en: 'badly', meta: {filler: ['en']} },
{ en: 'certainly', meta: {filler: ['en']} },
{ en: 'clearly', meta: {filler: ['en']} },
{ en: 'completely', meta: {filler: ['en']} },
{ en: 'definitely', meta: {filler: ['en']} },
{ en: 'easily', meta: {filler: ['en']} },
{ en: 'effectively', meta: {filler: ['en']} },
{ en: 'entirely', meta: {filler: ['en']} },
{ en: 'essentially', meta: {filler: ['en']} },
{ en: 'exactly', meta: {filler: ['en']} },
{ en: 'extremely', meta: {filler: ['en']} },
{ en: 'fairly', meta: {filler: ['en']} },
{ en: 'frankly', meta: {filler: ['en']} },
{ en: 'frequently', meta: {filler: ['en']} },
{ en: 'generally', meta: {filler: ['en']} },
{ en: 'hardly', meta: {filler: ['en']} },
{ en: 'heavily', meta: {filler: ['en']} },
{ en: 'highly', meta: {filler: ['en']} },
{ en: 'hopefully', meta: {filler: ['en']} },
{ en: 'largely', meta: {filler: ['en']} },
{ en: 'literally', meta: {filler: ['en']} },
{ en: 'mostly', meta: {filler: ['en']} },
{ en: 'necessarily', meta: {filler: ['en']} },
{ en: 'nicely', meta: {filler: ['en']} },
{ en: 'obviously', meta: {filler: ['en']} },
{ en: 'particularly', meta: {filler: ['en']} },
{ en: 'possibly', meta: {filler: ['en']} },
{ en: 'primarily', meta: {filler: ['en']} },
{ en: 'probably', meta: {filler: ['en']} },
{ en: 'precisely', meta: {filler: ['en']} },
{ en: 'really', meta: {filler: ['en']} },
{ en: 'relatively', meta: {filler: ['en']} },
{ en: 'seriously', meta: {filler: ['en']} },
{ en: 'significantly', meta: {filler: ['en']} },
{ en: 'slightly', meta: {filler: ['en']} },
{ en: 'specifically', meta: {filler: ['en']} },
{ en: 'strongly', meta: {filler: ['en']} },
{ en: 'surely', meta: {filler: ['en']} },
{ en: 'totally', meta: {filler: ['en']} },
{ en: 'truly', meta: {filler: ['en']} },
{ en: 'typically', meta: {filler: ['en']} },
{ en: 'ultimately', meta: {filler: ['en']} },
{ en: 'usually', meta: {filler: ['en']} },
{ en: 'virtually', meta: {filler: ['en']} },
{ en: 'widely', meta: {filler: ['en']} }
]
},
//: glue
//: CC conjunctions
CC: {
title: 'co-ordating conjunction',
example: 'and, but, or',
parent: 'glue',
tag: 'CC',
words: [
{ en: 'how', meta: {stopword: ['en'], wh: ['en']} },
{ en: 'or', meta: {stopword: ['en']} },
{ en: 'while', meta: {stopword: ['en']} },
{ en: 'nor', meta: {stopword: ['en']} },
{ en: 'though', meta: {stopword: ['en']} },
{ en: 'because', meta: {stopword: ['en']} },
{ en: 'but', meta: {stopword: ['en']} },
{ en: 'for', meta: {stopword: ['en']} },
{ en: 'and', meta: {stopword: ['en']} },
{ en: 'if', meta: {stopword: ['en']} },
{ en: 'however', meta: {stopword: ['en'], filler: ['en']} },
{ en: 'before', meta: {stopword: ['en']} },
{ en: 'although', meta: {stopword: ['en']} },
{ en: 'not', meta: {stopword: ['en']} },
{ en: 'whether' },
{ en: 'yet' },
{ en: 'therefore' },
{ en: 'plus' },
{ en: 'versus' }
]
},
//: DT determiners
DT: {
title: 'determiner',
example: 'the, some',
parent: 'glue',
tag: 'DT',
words: [
{ en: 'this', meta: {stopword: ['en'], entitySubstitution: ['en'], entitySubstitutionCheck: ['en'], demonstrative: ['en']} },
{ en: 'that', meta: {stopword: ['en'], entitySubstitution: ['en'], entitySubstitutionCheck: ['en'], demonstrative: ['en']} },
{ en: 'these', meta: {stopword: ['en'], demonstrative: ['en']} },
{ en: 'those', meta: {stopword: ['en'], demonstrative: ['en']} },
{ en: 'such', meta: {stopword: ['en'], demonstrative: ['en']} },
{ en: 'neither', demonstrative: ['en'] },
{ en: 'which', meta: {stopword: ['en'], wh: ['en']} },
{ en: 'what', meta: {stopword: ['en'], wh: ['en']} },
{ en: 'the', meta: {stopword: ['en'], entityBlacklist: ['en']} },
{ en: 'no', meta: {stopword: ['en']} },
{ en: 'any', meta: {stopword: ['en']} },
{ en: 'each', meta: {stopword: ['en']} },
{ en: 'whatever', meta: {filler: ['en']} },
{ en: 'whichever', meta: {filler: ['en']} },
{ en: 'whenever', meta: {filler: ['en']} },
{ en: 'whoever', meta: {filler: ['en']} },
{ en: 'wherever', meta: {filler: ['en']} },
{ en: 'an', meta: {stopword: ['en']} },
{ en: 'a', meta: {stopword: ['en']} },
{ en: 'own', meta: {stopword: ['en']} },
{ en: 'few', meta: {stopword: ['en']} },
{ en: 'both', meta: {stopword: ['en']} },
{ en: 'much', meta: {filler: ['en']} },
{ en: 'some', meta: {stopword: ['en']} },
{ en: 'enough' },
{ en: 'every' },
{ en: 'another' },
{ en: 'plenty' },
{ en: 'least' },
{ en: 'various' },
{ en: 'either' },
{ en: 'else' },
{ en: 'la' },
{ en: 'le' },
{ en: 'les' },
{ en: 'des' },
{ en: 'de' },
{ en: 'du' },
{ en: 'el' }
]
},
//: IN prepositions
IN: {
title: 'preposition',
example: 'of, in, by',
parent: 'glue',
tag: 'IN',
words: [
{ en: 'until', meta: {stopword: ['en']} },
{ en: 'onto', meta: {stopword: ['en']} },
{ en: 'of', meta: {stopword: ['en']} },
{ en: 'into', meta: {stopword: ['en']} },
{ en: 'out', meta: {stopword: ['en']} },
{ en: 'against', meta: {stopword: ['en']} },
{ en: 'over', meta: {stopword: ['en']} },
{ en: 'under', meta: {stopword: ['en']} },
{ en: 'except' },
{ en: 'across' },
{ en: 'by', meta: {stopword: ['en']} },
{ en: 'between', meta: {stopword: ['en']} },
{ en: 'at', meta: {stopword: ['en']} },
{ en: 'down', meta: {stopword: ['en']} },
{ en: 'as', meta: {stopword: ['en']} },
{ en: 'from', meta: {stopword: ['en']} },
{ en: 'around' },
{ en: 'with', meta: {stopword: ['en']} },
{ en: 'among' },
{ en: 'upon' },
{ en: 'amid' },
{ en: 'to', meta: {stopword: ['en']} },
{ en: 'along' },
{ en: 'since' },
{ en: 'about', meta: {stopword: ['en']} },
{ en: 'off', meta: {stopword: ['en']} },
{ en: 'on', meta: {stopword: ['en']} },
{ en: 'within' },
{ en: 'in', meta: {stopword: ['en']} },
{ en: 'during', meta: {stopword: ['en']} },
{ en: 'per' },
{ en: 'without' },
{ en: 'throughout' },
{ en: 'through', meta: {stopword: ['en']} },
{ en: 'than', meta: {stopword: ['en']} },
{ en: 'via' },
{ en: 'up', meta: {stopword: ['en']} },
{ en: '\'o' },
{ en: 'after', meta: {stopword: ['en']} },
{ en: 'despite' },
{ en: 'above', meta: {stopword: ['en']} },
{ en: 'below', meta: {stopword: ['en']} },
{ en: 'unless' },
{ en: 'whereas' },
{ en: 'unlike' },
{ en: 'towards' },
{ en: 'besides' }
]
},
//: PP posessive-pronouns
PP: {
title: 'possessive pronoun',
example: 'my, one\'s',
parent: 'glue',
tag: 'PP',
words: [
{ en: 'none', meta: {demonstrative: ['en']} },
{ en: 'whose', meta: {wh: ['en']} },
{ en: 'mine' },
{ en: 'something' },
{ en: 'anything' },
{ en: 'anyone' },
{ en: 'lot' },
{ en: 'nothing' },
{ en: 'everything' },
{ en: 'theirs', meta: {stopword: ['en']} },
{ en: 'himself', meta: {stopword: ['en']} },
{ en: 'ours', meta: {stopword: ['en']} },
{ en: 'his', meta: {stopword: ['en']} },
{ en: 'my', meta: {stopword: ['en'], entityBlacklist: ['en']} },
{ en: 'their', meta: {stopword: ['en']} },
{ en: 'yours', meta: {stopword: ['en']} },
{ en: 'your', meta: {stopword: ['en'], entityBlacklist: ['en']} },
{ en: 'yourselves', meta: {stopword: ['en']} },
{ en: 'our', meta: {stopword: ['en']} },
{ en: 'its', meta: {stopword: ['en']} },
{ en: 'herself', meta: {stopword: ['en']} },
{ en: 'hers', meta: {stopword: ['en']} },
{ en: 'themselves', meta: {stopword: ['en']} },
{ en: 'myself', meta: {stopword: ['en']} },
{ en: 'itself', meta: {stopword: ['en'], entityBlacklist: ['en']} },
{ en: 'who', meta: {stopword: ['en']} },
{ en: 'her', meta: {stopword: ['en']}, description:'this one is pretty ambiguous...' },
{ en: 'whom', meta: {stopword: ['en']} }
]
},
//: UH interjections
UH: {
title: 'interjection',
example: 'oh, oops',
parent: 'glue',
tag: 'UH',
words: [
{ en: 'uhh' },
{ en: 'uh-oh' },
{ en: 'ugh' },
{ en: 'sheesh' },
{ en: 'eww' },
{ en: 'pff' },
{ en: 'voila' },
{ en: 'oy' },
{ en: 'eep' },
{ en: 'hurrah' },
{ en: 'yuck' },
{ en: 'ow' },
{ en: 'duh' },
{ en: 'oh' },
{ en: 'hmm' },
{ en: 'yeah' },
{ en: 'whoa' },
{ en: 'ooh' },
{ en: 'whee' },
{ en: 'ah' },
{ en: 'bah' },
{ en: 'gah' },
{ en: 'yaa' },
{ en: 'phew' },
{ en: 'gee' },
{ en: 'ahem' },
{ en: 'eek' },
{ en: 'meh' },
{ en: 'yahoo' },
{ en: 'oops' },
{ en: 'd\'oh' }, // !
{ en: 'psst' },
{ en: 'argh' },
{ en: 'grr' },
{ en: 'nah' },
{ en: 'shhh' },
{ en: 'whew' },
{ en: 'mmm' },
{ en: 'yay' },
{ en: 'uh-huh' },
{ en: 'boo' },
{ en: 'wow' },
{ en: 'nope' }
]
},
//: EX - existentials
EX: {
title: 'existential there',
example: 'there',
parent: 'glue',
tag: 'EX',
words: [
{ en: 'there', meta: {stopword: ['en'], entitySubstitution: ['en']} }
]
},
//: FW - foreign words
FW: {
title: 'foreign word',
example: 'mon dieu, voila',
parent: 'glue',
tag: 'FW',
words: [
{ en: 'etc' }
]
},
//: CD(?) - numbers and dates
// these will split to 'NU' and 'DA' if properly formatted
//: NU
NU: {
title: 'cardinal value, number',
example: 'one, two',
parent: 'value',
tag: 'NU',
ones: {
0: { en: ['zero','null','nil'] },
1: { en: ['a','one','first'] },
2: { en: ['two','second'] },
3: { en: ['three','third'] },
4: { en: ['four','fourth'] },
5: { en: ['five','fifth'] },
6: { en: ['six','sixth'] },
7: { en: ['seven','seventh'] },
8: { en: ['eight','eighth'] },
9: { en: ['nine','ninth'] }
},
teens: {
10: { en: ['ten','teenth'] },
11: { en: ['eleven','eleventh'] },
12: { en: ['twelve','twelfth'] },
13: { en: ['thirteen','thirteenth'] },
14: { en: ['fourteen','fourteenth'] },
15: { en: ['fifteen','fifteenth'] },
16: { en: ['sixteen','sixteenth'] },
17: { en: ['seventeen','seventeenth'] },
18: { en: ['eighteen','eighteenth'] },
19: { en: ['nineteen','nineteenth'] },
},
tens: {
20: { en: ['twenty','twentieth'] },
30: { en: ['thirty','thirtieth'] },
40: { en: ['forty','fortieth'] },
50: { en: ['fifty','fiftieth'] },
60: { en: ['sixty','sixtieth'] },
70: { en: ['seventy','seventieth'] },
80: { en: ['eighty','eightieth'] },
90: { en: ['ninety','ninetieth'] }
},
multiple: {
//: note !!! USES EXPONENT of 10
// 100 :
2: { en: ['hundred'] },
// 1000 :
3: { en: ['grand','thousand'] },
// 1000000 :
6: { en: ['million'] },
// 1000000000 :
9: { en: ['billion'] },
// 1000000000000 :
12: { en: ['trillion'] },
// 1000000000000000 :
15: { en: ['quadrillion'] },
// 1000000000000000000 :
18: { en: ['quintillion'] },
// 1000000000000000000000 :
21: { en: ['sextillion'] },
// 1000000000000000000000000 :
24: { en: ['septillion'] },
// 1000000000000000000000000000 :
27: { en: ['octillion'] },
// 1000000000000000000000000000000 :
30: { en: ['nonillion'] },
// 1000000000000000000000000000000000 :
33: { en: ['decillion'] }
}
},
//: DA
DA: {
title: 'cardinal value, date',
example: 'june 5th',
parent: 'value',
tag: 'DA',
month: {
// 0 based
0: { en: ['january', 'jan'] },
1: { en: ['february', 'feb'] },
2: { en: ['march', 'mar'] },
3: { en: ['april', 'apr'] },
4: { en: ['may'] },
5: { en: ['june', 'jun'] },
6: { en: ['july', 'jul'] },
7: { en: ['august', 'aug'] },
// TODO note EN: added 'sep' ! While 'sept' might be more common different Press and UK standards (e.g. IPTC, NHS) require 3-letter abbreviations !
8: { en: ['september', 'sep', 'sept'] },
9: { en: ['october', 'oct'] },
10: { en: ['november', 'nov'] },
11: { en: ['december', 'dec'] }
},
day: {
// 1 based
1: { en: ['monday'] },
2: { en: ['tuesday'] },
3: { en: ['wednesday'] },
4: { en: ['thursday'] },
5: { en: ['friday'] },
6: { en: ['saturday'] },
7: { en: ['sunday'] }
}
},
//: unambigous suffixes
unambigousSuffixes: {
en: {
// english word suffixes with a high pos signal, generated with wordnet
// by spencer kelly [email protected] 2014
'tion': 'NN', 'ness': 'NN', 'idae': 'NN', 'ceae': 'NN', 'ment': 'NN', 'lity': 'NN', 'ting': 'JJ', 'tree': 'NN', 'ring': 'JJ', 'ator': 'NN', 'logy': 'NN', 'alis': 'NN', 'stem': 'NN', 'ales': 'NN', 'osis': 'NN', 'itis': 'NN', 'aria': 'NN', 'unit': 'NN', 'atus': 'NN', 'ency': 'NN', 'wood': 'NN', 'nism': 'NN', 'weed': 'NN', 'lism': 'NN', 'nsis': 'NN', 'fern': 'NN', 'onia': 'NN', 'ella': 'NN', 'vein': 'NN', 'olia': 'NN', 'emia': 'NN', 'urus': 'NN', 'ides': 'NN', 'esis': 'NN', 'inus': 'NN', 'rium': 'NN', 'tive': 'JJ', 'eria': 'NN', 'aker': 'NN', 'tate': 'VB', 'able': 'JJ', 'ound': 'VB', 'dium': 'NN', 'bird': 'NN', 'city': 'NN', 'aris': 'NN', 'gist': 'NN', 'rate': 'VB', 'cher': 'NN', 'icus': 'NN', 'time': 'RB', 'illa': 'NN', 'anus': 'NN', 'rity': 'NN', 'uage': 'NN', 'atum': 'NN', 'over': 'VB', 'nium': 'NN', 'tomy': 'NN', 'wort': 'NN', 'vity': 'NN', 'vice': 'NN', 'cell': 'NN', 'lata': 'NN', 'rier': 'NN', 'ulus': 'NN', 'lium': 'NN', 'late': 'VB', 'tics': 'NN', 'tory': 'JJ', 'aphy': 'NN', 'iana': 'NN', 'tism': 'NN', 'iser': 'NN', 'thus': 'NN', 'esia': 'NN', 'bush': 'NN', 'nake': 'NN', 'root': 'NN', 'llus': 'NN', 'nity': 'NN', 'rmes': 'NN', 'icle': 'NN', 'bean': 'NN', 'nica': 'NN', 'erer': 'NN', 'orus': 'NN', 'ancy': 'NN', 'iner': 'NN', 'sity': 'NN', 'ysis': 'NN', 'leaf': 'NN', 'enia': 'NN', 'worm': 'NN', 'etry': 'NN', 'bone': 'NN', 'psis': 'NN', 'tera': 'NN', 'cope': 'NN', 'sman': 'NN', 'izer': 'NN', 'ayer': 'NN', 'irus': 'NN', 'eris': 'NN', 'rism': 'NN', 'lily': 'NN', 'rius': 'NN', 'back': 'VB', 'book': 'NN', 'rial': 'JJ', 'tica': 'NN', 'tein': 'NN', 'ctus': 'NN', 'nner': 'NN', 'asia': 'NN', 'horn': 'NN', 'moth': 'NN', 'cism': 'NN', 'cake': 'NN', 'rker': 'NN', 'etes': 'NN', 'alia': 'NN', 'ings': 'NN', 'drug': 'NN', 'area': 'NN', 'nate': 'VB', 'icum': 'NN', 'llum': 'NN', 'stry': 'NN', 'scle': 'NN', 'oner': 'NN', 'ania': 'NN', 'ader': 'NN', 'erus': 'NN', 'idea': 'NN', 'inia': 'NN', 'itor': 'NN', 'ilis': 'NN', 'alus': 'NN', 'ille': 'NN', 'game': 'NN', 'hair': 'NN', 'uria': 'NN', 'rina': 'NN', 'anum': 'NN', 'trum': 'NN', 'tude': 'NN', 'ngus': 'NN', 'opus': 'NN', 'rica': 'NN', 'chus': 'NN', 'body': 'NN', 'ncer': 'NN', 'ates': 'NN', 'auce': 'NN', 'bill': 'NN', 'tube': 'NN', 'tina': 'NN', 'osus': 'NN', 'card': 'NN', 'odon': 'NN', 'cana': 'NN', 'dity': 'NN', 'ions': 'NN', 'inum': 'NN', 'ntia': 'NN', 'eper': 'NN', 'llet': 'NN', 'xide': 'NN', 'enus': 'NN', 'inae': 'NN', 'agon': 'NN', 'chid': 'NN', 'etle': 'NN', 'zard': 'NN', 'ener': 'NN', 'boat': 'NN', 'chia': 'NN', 'ward': 'RB', 'lora': 'NN', 'poda': 'NN', 'otus': 'NN', 'tris': 'NN', 'iron': 'NN', 'acea': 'NN', 'orum': 'NN', 'hora': 'NN', 'toma': 'NN', 'icer': 'NN', 'ilus': 'NN', 'nson': 'NN', 'rpus': 'NN', 'bell': 'NN', 'rata': 'NN', 'lamp': 'NN', 'palm': 'NN', 'ourt': 'NN', 'rrel': 'NN', 'down': 'VB', 'dron': 'NN', 'mann': 'NN', 'elia': 'NN', 'obia': 'NN', 'gery': 'NN', 'iper': 'NN', 'star': 'NN', 'inea': 'NN', 'eman': 'NN', 'tium': 'NN', 'tata': 'NN', 'rgan': 'NN', 'ical': 'JJ', 'gate': 'VB', 'stic': 'JJ', 'hand': 'RB', 'sive': 'JJ', 'east': 'RB', 'etic': 'JJ', 'away': 'VB', 'cent': 'JJ', 'cate': 'VB', 'onal': 'JJ', 'ible': 'JJ', 'iate': 'VB', 'atic': 'JJ', 'onic': 'JJ', 'otic': 'JJ', 'ular': 'JJ', 'rise': 'VB', 'tric': 'JJ', 'ully': 'RB', 'erly': 'RB', 'ally': 'RB', 'shed': 'JJ', 'sted': 'JJ', 'less': 'JJ', 'lize': 'VB', 'lise': 'VB', 'nize': 'VB', 'rize': 'VB', 'nise': 'VB', 'tise': 'VB', 'tize': 'VB', 'mize': 'VB', 'into': 'VB', 'tify': 'VB', 'rify': 'VB', 'self': 'VB', 'esce': 'VB', 'duce': 'VB', 'cize': 'VB', 'dize': 'VB', 'gize': 'VB', 'gise': 'VB', 'nify': 'VB', 'ieve': 'VB', 'lify': 'VB', 'sify': 'VB', 'pend': 'VB', 'hise': 'VB', 'lude': 'VB', 'tend': 'VB', 'olve': 'VB', 'dify': 'VB', 'sise': 'VB', 'open': 'VB', 'eive': 'VB', 'cede': 'VB', 'cify': 'VB', 'hize': 'VB', 'lyse': 'VB', 'ruct': 'VB', 'lyze': 'VB', 'vize': 'VB', 'hten': 'VB', 'sess': 'VB', 'from': 'VB', 'sume': 'VB', 'inst': 'VB', 'join': 'VB', 'sorb': 'VB', 'gest': 'VB', '-dye': 'VB', 'vene': 'VB', 'voke': 'VB', 'cuss': 'VB', 'cend': 'VB', 'make': 'VB', 'bute': 'VB', 'grow': 'VB', 'hend': 'VB', 'pute': 'VB', 'roil': 'VB', 'othe': 'VB', 'laze': 'VB', 'mote': 'VB', 'cute': 'VB', 'uise': 'VB', 'jure': 'VB', 'uire': 'VB', 'cook': 'VB', 'hind': 'VB', 'fend': 'VB', 'owse': 'VB', 'ooch': 'VB', 'mend': 'VB', 'vest': 'VB', 'dain': 'VB', 'rble': 'VB', 'tort': 'VB', 'uild': 'VB', 'quer': 'VB', 'ooze': 'VB', 'rude': 'VB', 'ulge': 'VB', 'weld': 'VB', 'uiet': 'VB', 'narl': 'VB', 'look': 'VB', 'efer': 'VB', 'elop': 'VB', 'pply': 'VB', 'lore': 'VB', 'draw': 'VB', 'lump': 'VB', 'lunk': 'VB', 'lame': 'VB', 'lign': 'VB', 'hink': 'VB', '-fry': 'VB', 'ivel': 'VB', 'wrap': 'VB', 'vail': 'VB', 'till': 'VB', 'hack': 'VB', 'earn': 'VB', 'sult': 'VB', 'dime': 'VB', 'rlay': 'VB', 'mute': 'VB', 'ourn': 'VB', 'uess': 'VB', 'bify': 'VB', 'tink': 'VB', 'raid': 'VB', 'uize': 'VB', 'huck': 'VB', 'ccur': 'VB', 'vide': 'VB', 'anse': 'VB', 'hify': 'VB', 'xist': 'VB', 'rgle': 'VB', 'pare': 'VB', 'bind': 'VB', 'veil': 'VB', 'uote': 'VB', 'pond': 'VB', 'like': 'JJ', 'eels': 'VB', 'hear': 'VB', 'otle': 'VB', 'tect': 'VB', 'pret': 'VB', 'eact': 'VB', 'idle': 'VB', 'rbid': 'VB', 'xate': 'VB', 'surf': 'VB', 'ploy': 'VB', 'erit': 'VB', 'elay': 'VB', 'adow': 'VB', 'ceed': 'VB', 'raze': 'VB', 'vote': 'VB', 'mmit': 'VB', 'fest': 'VB', 'fill': 'VB', 'shen': 'VB', 'resh': 'VB', 'lict': 'VB', 'mify': 'VB', 'eset': 'VB', 'rump': 'VB', 'pugn': 'VB', 'feit': 'VB', 'vict': 'VB', 'elch': 'VB', 'oosh': 'VB', 'rken': 'VB', 'nect': 'VB', 'vade': 'VB', 'pick': 'VB', 'hirr': 'VB', 'ated': 'JJ', 'ered': 'JJ', 'ized': 'JJ', 'ised': 'JJ', 'aped': 'JJ', 'nted': 'JJ', 'nded': 'JJ', 'ined': 'JJ', 'ured': 'JJ', 'lled': 'JJ', 'phic': 'JJ', 'ored': 'JJ', 'ssed': 'JJ', 'aded': 'JJ', 'fied': 'JJ', 'cted': 'JJ', 'ched': 'JJ', 'rted': 'JJ', 'oned': 'JJ', 'ired': 'JJ', 'cked': 'JJ', 'ened': 'JJ', 'ited': 'JJ', 'eyed': 'JJ', 'pped': 'JJ', 'opic': 'JJ', 'osed': 'JJ', 'iled': 'JJ', 'ried': 'JJ', 'tted': 'JJ', 'aced': 'JJ', 'ytic': 'JJ', 'gged': 'JJ', 'nged': 'JJ', 'emic': 'JJ', 'eled': 'JJ', 'ared': 'JJ', 'thed': 'JJ', 'omic': 'JJ', 'aged': 'JJ', 'rmed': 'JJ', 'rned': 'JJ', 'aved': 'JJ', 'ided': 'JJ', 'oted': 'JJ', 'died': 'JJ', 'mmed': 'JJ', 'nned': 'JJ', 'oric': 'JJ', 'hted': 'JJ', 'rmal': 'JJ', 'rred': 'JJ', 'nced': 'JJ', 'owed': 'JJ', 'dled': 'JJ', 'amic': 'JJ', 'ased': 'JJ', 'used': 'JJ', 'rmic': 'JJ', 'dged': 'JJ', 'amed': 'JJ', 'iced': 'JJ', 'aled': 'JJ', '-red': 'JJ', 'eted': 'JJ', 'hful': 'JJ', 'rved': 'JJ', 'aked': 'JJ', 'tled': 'JJ', 'obic': 'JJ', 'uted': 'JJ', 'lted': 'JJ', 'dial': 'JJ', 'omed': 'JJ', 'neal': 'JJ', 'd-up': 'JJ', 'gled': 'JJ', 'eded': 'JJ', 'bled': 'JJ', 'kish': 'JJ', 'oved': 'JJ', 'oded': 'JJ', 'ifth': 'JJ', 'afed': 'JJ', 'rnal': 'JJ', 'pled': 'JJ', 'ilic': 'JJ', 'pted': 'JJ', 'ived': 'JJ', 'smal': 'JJ', 'imed': 'JJ', 'five': 'JJ', 'wise': 'RB', 'made': 'JJ', 'oked': 'JJ', 'pish': 'JJ', 'rded': 'JJ', 'lied': 'JJ', 'kled': 'JJ', 'acal': 'JJ', 'lved': 'JJ', 'rful': 'JJ', 'atal': 'JJ', 'odic': 'JJ', 'bred': 'JJ', 'bbed': 'JJ', 'awed': 'JJ', 'yish': 'JJ', 'rked': 'JJ', 'ylic': 'JJ', 'obed': 'JJ', 'rged': 'JJ', 'chic': 'JJ', 'sial': 'JJ', 'smic': 'JJ', 'tchy': 'JJ', 'exed': 'JJ', 'oped': 'JJ', 'rgic': 'JJ', 'dded': 'JJ', 'geal': 'JJ', 'oxic': 'JJ', 'arly': 'RB', 'ayed': 'JJ', '-one': 'JJ', 'utic': 'JJ', 'rbed': 'JJ', 'gish': 'JJ', 'worn': 'JJ', 'enal': 'JJ', 'rced': 'JJ', 'kian': 'JJ', 'abic': 'JJ', 'lear': 'JJ', 'sick': 'JJ', 'usty': 'JJ', 'llic': 'JJ', 'azed': 'JJ', 'rsed': 'JJ', 'atty': 'JJ', 'idic': 'JJ', '-for': 'JJ', 'mbed': 'JJ', 'ghty': 'JJ', 'stly': 'RB', 'abby': 'JJ', 'vial': 'JJ', 'ocal': 'JJ', 'wned': 'JJ', 'ilar': 'JJ', 'nied': 'JJ', 'iful': 'JJ', 'wide': 'JJ', 'clic': 'JJ', 'appy': 'JJ', 'agic': 'JJ', 'cled': 'JJ', 'hree': 'JJ', 'oyed': 'JJ', 'ypic': 'JJ', 'ixed': 'JJ', 'lful': 'JJ', 'ushy': 'JJ', 'eedy': 'JJ', 'bial': 'JJ', 'rtal': 'JJ', 'mose': 'JJ', 'uric': 'JJ', 'near': 'JJ', 'icky': 'JJ', 'ibed': 'JJ', 'odal': 'JJ', 'umed': 'JJ', '-day': 'JJ', '-six': 'JJ', 'gual': 'JJ', 'uled': 'JJ', 'sual': 'JJ', 'nked': 'JJ', 'rled': 'JJ', 'aned': 'JJ', '-two': 'JJ', 'dful': 'JJ', 'eaky': 'JJ', 'ofed': 'JJ', 'ubby': 'JJ', 'clad': 'JJ', 'aten': 'JJ', 'rdly': 'RB', 'odox': 'JJ', 'cose': 'JJ', 'lded': 'JJ', 'lial': 'JJ', 'fled': 'JJ', 'nown': 'JJ', 'ffed': 'JJ', 'uced': 'JJ', 'uded': 'JJ', '-fed': 'JJ', 'mped': 'JJ', 'ingy': 'JJ', 'chal': 'JJ', 'vish': 'JJ', 'otal': 'JJ', 'uant': 'JJ', 'oled': 'JJ', 'zled': 'JJ', 'ugal': 'JJ', 'ctal': 'JJ', 'umpy': 'JJ', 'aggy': 'JJ', 'fted': 'JJ', 'ozen': 'JJ', 'ngly': 'RB', '-old': 'JJ', 'bbly': 'JJ', 'knit': 'JJ', 'hmic': 'JJ', 'ewed': 'JJ', 'ippy': 'JJ', 'ssic': 'JJ', 'toed': 'JJ', 'nsed': 'JJ', 'otty': 'JJ', 'xial': 'JJ', 'hnic': 'JJ', 'ashy': 'JJ', 'hial': 'JJ', 'lown': 'JJ', 'rung': 'JJ', 'omal': 'JJ', 'unar': 'JJ', 'asal': 'JJ', 'wish': 'JJ', 'ylar': 'JJ', '00th': 'JJ', 'oeic': 'JJ', 'teal': 'JJ', 'ifty': 'JJ', 'ifid': 'JJ', 'oggy': 'JJ', '-cut': 'JJ', 'ymic': 'JJ', 'lked': 'JJ', 'lthy': 'JJ', 'assy': 'JJ', 'full': 'JJ', 'yant': 'JJ', 'ucky': 'JJ', 'gued': 'JJ', 'mely': 'RB', 'bral': 'JJ', 'sful': 'JJ', 'shod': 'JJ', 'neic': 'JJ', 'sked': 'JJ', 'nchy': 'JJ', 'urth': 'JJ', 'ccal': 'JJ', 'lued': 'JJ', 'mbic': 'JJ', 'itty': 'JJ', 'edth': 'JJ', 'ggly': 'JJ', 'mned': 'JJ', 'pied': 'JJ', 'axed': 'JJ', 'ecal': 'JJ', 'cile': 'JJ', 'tred': 'JJ', 'uffy': 'JJ', 'edic': 'JJ', 'anky': 'JJ', 'inct': 'JJ', 'asic': 'JJ', 'wept': 'JJ', '-air': 'JJ', 'impy': 'JJ', 'eamy': 'JJ', '-set': 'JJ', 'ltic': 'JJ', 'ishy': 'JJ', 'bous': 'JJ', 'tied': 'JJ', '-ply': 'JJ', 'eval': 'JJ', 'cave': 'JJ', 'adic': 'JJ', 'ocky': 'JJ', 'icit': 'JJ', 'liar': 'JJ', 'wful': 'JJ', 'dern': 'JJ', 'xvii': 'JJ', 'hean': 'JJ', 'ossy': 'JJ', 'nvex': 'JJ', 'unky': 'JJ', 'roud': 'JJ', 'hral': 'JJ', 'angy': 'JJ', 'pant': 'JJ', 'eked': 'JJ', 'nnic': 'JJ', 'siac': 'JJ', 'esic': 'JJ', 'boid': 'JJ', 'rual': 'JJ', 'iffy': 'JJ', 'adal': 'JJ', 'dest': 'JJ', 'irty': 'JJ', 'kety': 'JJ', 'inty': 'JJ', 'lgic': 'JJ', 'hird': 'JJ', 'dric': 'JJ', 'gone': 'JJ', 'unct': 'JJ', 't-up': 'JJ', 'raic': 'JJ', 'isty': 'JJ', 'paid': 'JJ', 'ilty': 'JJ', 'uing': 'JJ', 'zian': 'JJ', 'emal': 'JJ', 'gean': 'JJ', 'ixth': 'JJ', 'gful': 'JJ', 'eeny': 'JJ', 'easy': 'JJ', 'eged': 'JJ', '-way': 'JJ', 'uddy': 'JJ', 'liac': 'JJ', 'lden': 'JJ', 'bose': 'JJ', 'iose': 'JJ', 'cive': 'JJ', 'tean': 'JJ', 'dral': 'JJ', 'eved': 'JJ', 'igid': 'JJ', 'llel': 'JJ', 'orty': 'JJ', 'ctyl': 'JJ', 'nkly': 'JJ', 'ghth': 'JJ', 'yric': 'JJ', '-run': 'JJ', 'eian': 'JJ', 'eepy': 'JJ', 'tood': 'JJ', 'ltry': 'JJ', 'ubic': 'JJ', 'wery': 'JJ', 'nken': 'JJ', 'apen': 'JJ', 'mful': 'JJ', 'emed': 'JJ', 'gile': 'JJ', 'mart': 'JJ', 'yzed': 'JJ', 'alid': 'JJ', 'toic': 'JJ', '-top': 'JJ', 'rtan': 'JJ', 'mant': 'JJ', 'ngry': 'JJ', 'eyan': 'JJ', 'yoid': 'JJ', 'urnt': 'JJ', 'urvy': 'JJ', 'tair': 'JJ', 'hoid': 'JJ', 'egic': 'JJ', 'moid': 'JJ', 'llan': 'JJ', 'tech': 'JJ', 'ulky': 'JJ', 'osey': 'JJ', 'orny': 'JJ', 'ormy': 'JJ', 'dual': 'JJ', 'oury': 'JJ', 'qual': 'JJ', 'teed': 'JJ', 'eezy': 'JJ', 'rdic': 'JJ', 'alky': 'JJ', 'afty': 'JJ', 'acky': 'JJ', 'ymed': 'JJ', 'yful': 'JJ', 'epid': 'JJ', 'unic': 'JJ', 'endo': 'JJ', 'ensy': 'JJ', 'iked': 'JJ', 'ghed': 'JJ', 'tuck': 'JJ', 'odly': 'JJ', 'iric': 'JJ', 'awny': 'JJ', 'udal': 'JJ', 'axic': 'JJ', 'awky': 'JJ', 'rbal': 'JJ', 'owsy': 'JJ', '-key': 'JJ', '-end': 'JJ', 'ammy': 'JJ', 'mune': 'JJ', 'ulic': 'JJ', 'izan': 'JJ', 'ndan': 'JJ', 'true': 'JJ', 'eery': 'JJ', 'zzly': 'JJ', 'eige': 'JJ', 'xxiv': 'JJ', 'odan': 'JJ', '-toe': 'JJ', 'laid': 'JJ', 'utty': 'JJ', 'usky': 'JJ', 'issy': 'JJ', 'deaf': 'JJ', 'maic': 'JJ', 'vous': 'JJ', 'rpal': 'JJ', 'exic': 'JJ', 'soid': 'JJ', 'ucal': 'JJ', 'oopy': 'JJ', 'lmed': 'JJ', 'roic': 'JJ', 'cund': 'JJ', 'arse': 'JJ', 'vely': 'RB', 'uchy': 'JJ', 'ussy': 'JJ', 'd-on': 'JJ', 'izzy': 'JJ', 'pean': 'JJ', 'mane': 'JJ', 'etty': 'JJ', 'ebby': 'JJ', 'phal': 'JJ', 'odgy': 'JJ', 'ober': 'JJ', 'hoic': 'JJ', 'taic': 'JJ', 'oeal': 'JJ', 'cral': 'JJ', 'hewn': 'JJ', 'heal': 'JJ', 'xxii': 'JJ', 'ainy': 'JJ', 'apid': 'JJ', 'lowy': 'JJ', 'nlit': 'JJ', 'held': 'JJ', 'xxvi': 'JJ', 'inky': 'JJ', 'nsic': 'JJ', 'olid': 'JJ', 'eban': 'JJ', 'kful': 'JJ', 'siny': 'JJ', 'usly': 'RB', 'ably': 'RB', 'ntly': 'RB', 'edly': 'RB', 'tely': 'RB', 'ssly': 'RB', 'shly': 'RB', 'rily': 'RB', 'ibly': 'RB', 'idly': 'RB', 'tily': 'RB', 'sely': 'RB', 'rely': 'RB', 'dily': 'RB', 'kily': 'RB', 'hily': 'RB', 'nely': 'RB', 'ctly': 'RB', 'sily': 'RB', 'ways': 'RB', 'rtly': 'RB', 'pily': 'RB', 'gily': 'RB', 'itly': 'RB', 'nily': 'RB', 'zily': 'RB', 'lely': 'RB', 'etly': 'RB', 'uely': 'RB', 'adly': 'RB', 'much': 'RB', 'gely': 'RB', 'imly': 'RB', 'oubt': 'RB', 'vily': 'RB', 'ftly': 'RB', 'ptly': 'RB', 'chly': 'RB', 'owly': 'RB', 'cely': 'RB', 'rnly': 'RB', 'mply': 'RB', 'cily': 'RB', 'ghly': 'RB', 'that': 'RB', 'rmly': 'RB', 'dely': 'RB', 'high': 'RB', 'orst': 'RB', 'atly': 'RB', 'exly': 'RB', 'atim': 'RB', 'diem': 'RB', 'iori': 'RB', 'utly': 'RB', 'oors': 'RB', 'ffly': 'RB', 'udly': 'RB', 'bily': 'RB'
}
// end unambigousSuffixes.en
},
//: normalization and denormalization
normalizations: [
["²", "2"], ["ƻ", "2"], ["³", "3"], ["Ʒ", "3"], ["Ƹ", "3"], ["ƹ", "3"], ["ƺ", "3"], ["Ǯ", "3"], ["ǯ", "3"], ["З", "3"], ["Ҙ", "3"], ["ҙ", "3"], ["Ӟ", "3"], ["ӟ", "3"], ["Ӡ", "3"], ["ӡ", "3"], ["Ȝ", "3"], ["ȝ", "3"], ["Ƽ", "5"], ["ƽ", "5"], ["Ȣ", "8"], ["ȣ", "8"], ["¡", "!"], ["¿", "?"], ["Ɂ", "?"], ["ɂ", "?"], ["ª", "a"], ["À", "a"], ["Á", "a"], ["Â", "a"], ["Ã", "a"], ["Ä", "a"], ["Å", "a"], ["à", "a"], ["á", "a"], ["â", "a"], ["ã", "a"], ["ä", "a"], ["å", "a"], ["Ā", "a"], ["ā", "a"], ["Ă", "a"], ["ă", "a"], ["Ą", "a"], ["ą", "a"], ["Ǎ", "a"], ["ǎ", "a"], ["Ǟ", "a"], ["ǟ", "a"], ["Ǡ", "a"], ["ǡ", "a"], ["Ǻ", "a"], ["ǻ", "a"], ["Ȁ", "a"], ["ȁ", "a"], ["Ȃ", "a"], ["ȃ", "a"], ["Ȧ", "a"], ["ȧ", "a"], ["Ⱥ", "a"], ["Ά", "a"], ["Α", "a"], ["Δ", "a"], ["Λ", "a"], ["ά", "a"], ["α", "a"], ["λ", "a"], ["А", "a"], ["Д", "a"], ["а", "a"], ["д", "a"], ["Ѧ", "a"], ["ѧ", "a"], ["Ӑ", "a"], ["ӑ", "a"], ["Ӓ", "a"], ["ӓ", "a"], ["ƛ", "a"], ["Ʌ", "a"], ["ß", "b"], ["þ", "b"], ["ƀ", "b"], ["Ɓ", "b"], ["Ƃ", "b"], ["ƃ", "b"], ["Ƅ", "b"], ["ƅ", "b"], ["Ƀ", "b"], ["Β", "b"], ["β", "b"], ["ϐ", "b"], ["Ϧ", "b"], ["Б", "b"], ["В", "b"], ["Ъ", "b"], ["Ь", "b"], ["б", "b"], ["в", "b"], ["ъ", "b"], ["ь", "b"], ["Ѣ", "b"], ["ѣ", "b"], ["Ҍ", "b"], ["ҍ", "b"], ["Ҕ", "b"], ["ҕ", "b"], ["ƥ", "b"], ["ƾ", "b"], ["¢", "c"], ["©", "c"], ["Ç", "c"], ["ç", "c"], ["Ć", "c"], ["ć", "c"], ["Ĉ", "c"], ["ĉ", "c"], ["Ċ", "c"], ["ċ", "c"], ["Č", "c"], ["č", "c"], ["Ɔ", "c"], ["Ƈ", "c"], ["ƈ", "c"], ["Ȼ", "c"], ["ȼ", "c"], ["ͻ", "c"], ["ͼ", "c"], ["ͽ", "c"], ["ϲ", "c"], ["Ϲ", "c"], ["Ͻ", "c"], ["Ͼ", "c"], ["Ͽ", "c"], ["Є", "c"], ["С", "c"], ["с", "c"], ["є", "c"], ["Ҁ", "c"], ["ҁ", "c"], ["Ҫ", "c"], ["ҫ", "c"], ["Ð", "d"], ["Ď", "d"], ["ď", "d"], ["Đ", "d"], ["đ", "d"], ["Ɖ", "d"], ["Ɗ", "d"], ["ȡ", "d"], ["Ƌ", "d"], ["ƌ", "d"], ["Ƿ", "d"], ["È", "e"], ["É", "e"], ["Ê", "e"], ["Ë", "e"], ["è", "e"], ["é", "e"], ["ê", "e"], ["ë", "e"], ["Ē", "e"], ["ē", "e"], ["Ĕ", "e"], ["ĕ", "e"], ["Ė", "e"], ["ė", "e"], ["Ę", "e"], ["ę", "e"], ["Ě", "e"], ["ě", "e"], ["Ǝ", "e"], ["Ə", "e"], ["Ɛ", "e"], ["ǝ", "e"], ["Ȅ", "e"], ["ȅ", "e"], ["Ȇ", "e"], ["ȇ", "e"], ["Ȩ", "e"], ["ȩ", "e"], ["Ɇ", "e"], ["ɇ", "e"], ["Έ", "e"], ["Ε", "e"], ["Ξ", "e"], ["Σ", "e"], ["έ", "e"], ["ε", "e"], ["ξ", "e"], ["ϱ", "e"], ["ϵ", "e"], ["϶", "e"], ["Ѐ", "e"], ["Ё", "e"], ["Е", "e"], ["Э", "e"], ["е", "e"], ["ѐ", "e"], ["ё", "e"], ["Ҽ", "e"], ["ҽ", "e"], ["Ҿ", "e"], ["ҿ", "e"], ["Ӗ", "e"], ["ӗ", "e"], ["Ә", "e"], ["ә", "e"], ["Ӛ", "e"], ["ӛ", "e"], ["Ӭ", "e"], ["ӭ", "e"], ["Ƒ", "f"], ["ƒ", "f"], ["Ϝ", "f"], ["ϝ", "f"], ["Ӻ", "f"], ["ӻ", "f"], ["Ĝ", "g"], ["ĝ", "g"], ["Ğ", "g"], ["ğ", "g"], ["Ġ", "g"], ["ġ", "g"], ["Ģ", "g"], ["ģ", "g"], ["Ɠ", "g"], ["Ǥ", "g"], ["ǥ", "g"], ["Ǧ", "g"], ["ǧ", "g"], ["Ǵ", "g"], ["ǵ", "g"], ["Ĥ", "h"], ["ĥ", "h"], ["Ħ", "h"], ["ħ", "h"], ["ƕ", "h"], ["Ƕ", "h"], ["Ȟ", "h"], ["ȟ", "h"], ["Ή", "h"], ["Η", "h"], ["Ђ", "h"], ["Њ", "h"], ["Ћ", "h"], ["Н", "h"], ["н", "h"], ["ђ", "h"], ["ћ", "h"], ["Ң", "h"], ["ң", "h"], ["Ҥ", "h"], ["ҥ", "h"], ["Һ", "h"], ["һ", "h"], ["Ӊ", "h"], ["ӊ", "h"], ["Ì", "I"], ["Í", "I"], ["Î", "I"], ["Ï", "I"], ["ì", "i"], ["í", "i"], ["î", "i"], ["ï", "i"], ["Ĩ", "i"], ["ĩ", "i"], ["Ī", "i"], ["ī", "i"], ["Ĭ", "i"], ["ĭ", "i"], ["Į", "i"], ["į", "i"], ["İ", "i"], ["ı", "i"], ["Ɩ", "i"], ["Ɨ", "i"], ["Ȉ", "i"], ["ȉ", "i"], ["Ȋ", "i"], ["ȋ", "i"], ["Ί", "i"], ["ΐ", "i"], ["Ϊ", "i"], ["ί", "i"], ["ι", "i"], ["ϊ", "i"], ["І", "i"], ["Ї", "i"], ["і", "i"], ["ї", "i"], ["Ĵ", "j"], ["ĵ", "j"], ["ǰ", "j"], ["ȷ", "j"], ["Ɉ", "j"], ["ɉ", "j"], ["ϳ", "j"], ["Ј", "j"], ["ј", "j"], ["Ķ", "k"], ["ķ", "k"], ["ĸ", "k"], ["Ƙ", "k"], ["ƙ", "k"], ["Ǩ", "k"], ["ǩ", "k"], ["Κ", "k"], ["κ", "k"], ["Ќ", "k"], ["Ж", "k"], ["К", "k"], ["ж", "k"], ["к", "k"], ["ќ", "k"], ["Қ", "k"], ["қ", "k"], ["Ҝ", "k"], ["ҝ", "k"], ["Ҟ", "k"], ["ҟ", "k"], ["Ҡ", "k"], ["ҡ", "k"], ["Ĺ", "l"], ["ĺ", "l"], ["Ļ", "l"], ["ļ", "l"], ["Ľ", "l"], ["ľ", "l"], ["Ŀ", "l"], ["ŀ", "l"], ["Ł", "l"], ["ł", "l"], ["ƚ", "l"], ["ƪ", "l"], ["ǀ", "l"], ["Ǐ", "l"], ["ǐ", "l"], ["ȴ", "l"], ["Ƚ", "l"], ["Ι", "l"], ["Ӏ", "l"], ["ӏ", "l"], ["Μ", "m"], ["Ϻ", "m"], ["ϻ", "m"], ["М", "m"], ["м", "m"], ["Ӎ", "m"], ["ӎ", "m"], ["Ñ", "n"], ["ñ", "n"], ["Ń", "n"], ["ń", "n"], ["Ņ", "n"], ["ņ", "n"], ["Ň", "n"], ["ň", "n"], ["ʼn", "n"], ["Ŋ", "n"], ["ŋ", "n"], ["Ɲ", "n"], ["ƞ", "n"], ["Ǹ", "n"], ["ǹ", "n"], ["Ƞ", "n"], ["ȵ", "n"], ["Ν", "n"], ["Π", "n"], ["ή", "n"], ["η", "n"], ["Ϟ", "n"], ["Ѝ", "n"], ["И", "n"], ["Й", "n"], ["Л", "n"], ["П", "n"], ["и", "n"], ["й", "n"], ["л", "n"], ["п", "n"], ["ѝ", "n"], ["Ҋ", "n"], ["ҋ", "n"], ["Ӆ", "n"], ["ӆ", "n"], ["Ӣ", "n"], ["ӣ", "n"], ["Ӥ", "n"], ["ӥ", "n"], ["π", "n"], ["Ò", "o"], ["Ó", "o"], ["Ô", "o"], ["Õ", "o"], ["Ö", "o"], ["Ø", "o"], ["ð", "o"], ["ò", "o"], ["ó", "o"], ["ô", "o"], ["õ", "o"], ["ö", "o"], ["ø", "o"], ["Ō", "o"], ["ō", "o"], ["Ŏ", "o"], ["ŏ", "o"], ["Ő", "o"], ["ő", "o"], ["Ɵ", "o"], ["Ơ", "o"], ["ơ", "o"], ["Ǒ", "o"], ["ǒ", "o"], ["Ǫ", "o"], ["ǫ", "o"], ["Ǭ", "o"], ["ǭ", "o"], ["Ǿ", "o"], ["ǿ", "o"], ["Ȍ", "o"], ["ȍ", "o"], ["Ȏ", "o"], ["ȏ", "o"], ["Ȫ", "o"], ["ȫ", "o"], ["Ȭ", "o"], ["ȭ", "o"], ["Ȯ", "o"], ["ȯ", "o"], ["Ȱ", "o"], ["ȱ", "o"], ["Ό", "o"], ["Θ", "o"], ["Ο", "o"], ["Φ", "o"], ["Ω", "o"], ["δ", "o"], ["θ", "o"], ["ο", "o"], ["σ", "o"], ["ό", "o"], ["ϕ", "o"], ["Ϙ", "o"], ["ϙ", "o"], ["Ϭ", "o"], ["ϭ", "o"], ["ϴ", "o"], ["О", "o"], ["Ф", "o"], ["о", "o"], ["Ѳ", "o"], ["ѳ", "o"], ["Ѻ", "o"], ["ѻ", "o"], ["Ѽ", "o"], ["ѽ", "o"], ["Ӧ", "o"], ["ӧ", "o"], ["Ө", "o"], ["ө", "o"], ["Ӫ", "o"], ["ӫ", "o"], ["¤", "o"], ["ƍ", "o"], ["Ώ", "o"], ["Ƥ", "p"], ["ƿ", "p"], ["Ρ", "p"], ["ρ", "p"], ["Ϸ", "p"], ["ϸ", "p"], ["ϼ", "p"], ["Р", "p"], ["р", "p"], ["Ҏ", "p"], ["ҏ", "p"], ["Þ", "p"], ["Ɋ", "q"], ["ɋ", "q"], ["­®", "r"], ["Ŕ", "r"], ["ŕ", "r"], ["Ŗ", "r"], ["ŗ", "r"], ["Ř", "r"], ["ř", "r"], ["Ʀ", "r"], ["Ȑ", "r"], ["ȑ", "r"], ["Ȓ", "r"], ["ȓ", "r"], ["Ɍ", "r"], ["ɍ", "r"], ["Ѓ", "r"], ["Г", "r"], ["Я", "r"], ["г", "r"], ["я", "r"], ["ѓ", "r"], ["Ґ", "r"], ["ґ", "r"], ["Ғ", "r"], ["ғ", "r"], ["Ӷ", "r"], ["ӷ", "r"], ["ſ", "r"], ["Ś", "s"], ["ś", "s"], ["Ŝ", "s"], ["ŝ", "s"], ["Ş", "s"], ["ş", "s"], ["Š", "s"], ["š", "s"], ["Ƨ", "s"], ["ƨ", "s"], ["Ș", "s"], ["ș", "s"], ["ȿ", "s"], ["ς", "s"], ["Ϛ", "s"], ["ϛ", "s"], ["ϟ", "s"], ["Ϩ", "s"], ["ϩ", "s"], ["Ѕ", "s"], ["ѕ", "s"], ["Ţ", "t"], ["ţ", "t"], ["Ť", "t"], ["ť", "t"], ["Ŧ", "t"], ["ŧ", "t"], ["ƫ", "t"], ["Ƭ", "t"], ["ƭ", "t"], ["Ʈ", "t"], ["Ț", "t"], ["ț", "t"], ["ȶ", "t"], ["Ⱦ", "t"], ["Γ", "t"], ["Τ", "t"], ["τ", "t"], ["Ϯ", "t"], ["ϯ", "t"], ["Т", "t"], ["т", "t"], ["҂", "t"], ["Ҭ", "t"], ["ҭ", "t"], ["µ", "u"], ["Ù", "u"], ["Ú", "u"], ["Û", "u"], ["Ü", "u"], ["ù", "u"], ["ú", "u"], ["û", "u"], ["ü", "u"], ["Ũ", "u"], ["ũ", "u"], ["Ū", "u"], ["ū", "u"], ["Ŭ", "u"], ["ŭ", "u"], ["Ů", "u"], ["ů", "u"], ["Ű", "u"], ["ű", "u"], ["Ų", "u"], ["ų", "u"], ["Ư", "u"], ["ư", "u"], ["Ʊ", "u"], ["Ʋ", "u"], ["Ǔ", "u"], ["ǔ", "u"], ["Ǖ", "u"], ["ǖ", "u"], ["Ǘ", "u"], ["ǘ", "u"], ["Ǚ", "u"], ["ǚ", "u"], ["Ǜ", "u"], ["ǜ", "u"], ["Ȕ", "u"], ["ȕ", "u"], ["Ȗ", "u"], ["ȗ", "u"], ["Ʉ", "u"], ["ΰ", "u"], ["μ", "u"], ["υ", "u"], ["ϋ", "u"], ["ύ", "u"], ["ϑ", "u"], ["Џ", "u"], ["Ц", "u"], ["Ч", "u"], ["ц", "u"], ["џ", "u"], ["Ҵ", "u"], ["ҵ", "u"], ["Ҷ", "u"], ["ҷ", "u"], ["Ҹ", "u"], ["ҹ", "u"], ["Ӌ", "u"], ["ӌ", "u"], ["Ӈ", "u"], ["ӈ", "u"], ["Ɣ", "v"], ["ν", "v"], ["Ѵ", "v"], ["ѵ", "v"], ["Ѷ", "v"], ["ѷ", "v"], ["Ŵ", "w"], ["ŵ", "w"], ["Ɯ", "w"], ["ω", "w"], ["ώ", "w"], ["ϖ", "w"], ["Ϣ", "w"], ["ϣ", "w"], ["Ш", "w"], ["Щ", "w"], ["ш", "w"], ["щ", "w"], ["ѡ", "w"], ["ѿ", "w"], ["×", "x"], ["Χ", "x"], ["χ", "x"], ["ϗ", "x"], ["ϰ", "x"], ["Х", "x"], ["х", "x"], ["Ҳ", "x"], ["ҳ", "x"], ["Ӽ", "x"], ["ӽ", "x"], ["Ӿ", "x"], ["ӿ", "x"], ["¥", "y"], ["Ý", "y"], ["ý", "y"], ["ÿ", "y"], ["Ŷ", "y"], ["ŷ", "y"], ["Ÿ", "y"], ["Ƴ", "y"], ["ƴ", "y"], ["Ȳ", "y"], ["ȳ", "y"], ["Ɏ", "y"], ["ɏ", "y"], ["Ύ", "y"], ["Υ", "y"], ["Ψ", "y"], ["Ϋ", "y"], ["γ", "y"], ["ψ", "y"], ["ϒ", "y"], ["ϓ", "y"], ["ϔ", "y"], ["Ў", "y"], ["У", "y"], ["у", "y"], ["ч", "y"], ["ў", "y"], ["Ѱ", "y"], ["ѱ", "y"], ["Ү", "y"], ["ү", "y"], ["Ұ", "y"], ["ұ", "y"], ["Ӯ", "y"], ["ӯ", "y"], ["Ӱ", "y"], ["ӱ", "y"], ["Ӳ", "y"], ["ӳ", "y"], ["Ź", "z"], ["ź", "z"], ["Ż", "z"], ["ż", "z"], ["Ž", "z"], ["ž", "z"], ["Ʃ", "z"], ["Ƶ", "z"], ["ƶ", "z"], ["Ȥ", "z"], ["ȥ", "z"], ["ɀ", "z"], ["Ζ", "z"], ["ζ", "z"]
]
};
/*
// TODO
// Conjugation of MD fails, special, should be like e. g.:
[
{ infinitive: 'can',
present: 'can',
gerund: '',
past: 'could',
participle: '',
doer: '',
future: 'will be able to'
},
{ infinitive: 'may',
present: 'may',
gerund: '',
past: 'might',
participle: '',
doer: ''
},
{ infinitive: 'shall',
present: 'shall',
gerund: 'shelling', // arguable
past: 'should',
doer: ''
}
]
// TODO
// Irregular verbs "with better/elaborate pasts" check :
[
{ infinitive: 'awake',
present: 'awakes',
past: 'awaked',
ALTpast: 'awoke'
},
{ infinitive: 'beseech',
present: 'beseechs',
past: 'beseeched',
ALTpast: 'besought'
},
{ infinitive: 'bide',
present: 'bides',
past: 'bided',
ALTpast: 'bade'
},
{ infinitive: 'burn',
present: 'burns',
past: 'burned',
ALTpast: 'burnt'
},
{ infinitive: 'cleave',
present: 'cleaves',
past: 'cleaved',
ALTpast: 'cleft'
},
{ infinitive: 'dream',
present: 'dreams',
past: 'dreamed',
ALTpast: 'dreamt'
},
{ infinitive: 'kneel',
present: 'kneels',
past: 'kneeled',
ALTpast: 'knelt'
},
{ infinitive: 'lean',
present: 'leans',
past: 'leaned',
ALTpast: 'lent'
},
{ present: 'leaps',
gerund: 'leapping',
past: 'leap',
ALTpast: 'leapt'
},
{ infinitive: 'learn',
present: 'learns',
past: 'learned',
ALTpast: 'learnt'
},
{ infinitive: 'plead',
present: 'pleads',
past: 'pleaded',
ALTpast: 'pled'
},
{ infinitive: 'shear',
present: 'shears',
past: 'sheared',
ALTparticiple: 'shorn' '
},
{ infinitive: 'smell',
present: 'smells',
past: 'smelled',
ALTpast: 'smelt'
},
{ present: 'speeds',
gerund: 'speeding',
past: 'speeded',
ALTpast: 'sped'
},
{ infinitive: 'spell',
present: 'spells',
past: 'spelled',
ALTpast: 'spelt'
},
{ infinitive: 'spoil',
present: 'spoils',
past: 'spoiled',
ALTpast: 'spoilt'
},
{ infinitive: 'telecast',
present: 'telecasts',
past: 'telecasted',
ALTpast: 'telecast
}
]
*/
//VBP.words { uid: 0, en: 'be', meta: {aux: ['en'], passive: ['en'], stopword: ['en'], weak: ['en']} },
/*
[
"arise",
"arising",
"arose",
"_s",
"_r"
]
*/
/* Generic generator functions to build the lexica
// Do NOT change anything below this line unless you know what you are doing ;)
*/
if (typeof module !== "undefined" && module.exports) module.exports = main;
var fs = require('fs');
var path = require('path');
var util = require('util');
var flag = function(meta, lang) {
// return flags compressed, like 'IAW'
var flagStr = '';
var flags = {
stopword: 'S',
filler: 'F',
entitySubstitution: 'E',
aux: 'A',
weak: 'W',
irregular: 'I',
passive: 'P',
demonstrative: 'D',
wh: 'w',
unconfirmed: 'u',
vulgar: 'v',
entitySubstitutionCheck: 'x'
};
for (var key in meta) {
if (flags.hasOwnProperty(key) && flags[key]) {
if (typeof meta[key] === 'boolean' || meta[key].indexOf(lang)) {
flagStr = flagStr.concat(flags[key]);
}
}
}
return flagStr;
};
function generateLanguage(lang) {
var results = [[]]; //TODO minor - has first el. only for DEBUG - SHOULD be empty
// some helpers for the generators
var newRes = function() {
if (results[results.length-1] > 0) results.push([]);
return [];
}
var did = function(s) {
var l = results[results.length-1];
if (s instanceof Array) {
results[results.length-1] = l.concat(s);
} else {
results[results.length-1].push(s);
}
return s;
}
var handled = function(s) {
return results[results.length-1].indexOf(s) > -1;
}
var possible = function(o) {
return ( o.hasOwnProperty(lang) );
};
var possibleRef = function(o) {
return ( o.hasOwnProperty(lang) && o.hasOwnProperty('ref') );
};
var possibleIrreg = function(o) {
return ( (o.hasOwnProperty(lang)) && (o.hasOwnProperty('uid')) );
};
var possibleRest = function(o) {
return ( (o.hasOwnProperty(lang)) && !handled(o[lang]) );
};
var meta = function(o, key) {
return (!handled(o[lang]) && possible(o) && o.hasOwnProperty('meta') && o.meta[key] && o.meta[key].indexOf(lang) > -1);
};
var val = function(o) { return o[lang]; }
//
var langStr = "var lang = '".concat(lang, "';");
// generate the DATA
var generators = [
// NOUN : _irregulars, _uncountables, _entityBlacklist
{ // 0
id: 'nouns_inflect',
description: 'singular nouns having irregular plurals',
// zip
zip: function(lang) {
var _irregulars = newRes();
var _uncountables = main.NN.words.filter(function(o) {
return meta(o, 'uncountable');
}).map(val);
main.NN.words.filter(possibleIrreg).forEach(function(o) {
main.NNS.words.filter(possibleRef).forEach(function(op) {
if (op.ref === o.uid) {
_irregulars.push([o[lang], op[lang].replace(o[lang], '=').replace(o[lang].slice(0,-2), '_').replace(/es/g, '$')]);
}
});
});
return {
irregulars: _irregulars,
uncountables: _uncountables
};
},
// expand
unzip: {
array: 'irregulars',
fn: function(a) { a[1] = a[1].replace('=',a[0]).replace('_', a[0].slice(0,-2)).replace(/\$/g,'es'); return a; }
}
},
{ // 1
id: 'nouns',
description: '',
// build
zip: function(lang) {
// TODO: 'it', 'one'
return {
entityBlacklist: main.NN.words.concat(main.PP.words, main.DT.words).filter(function(o) {
return meta(o, 'entityBlacklist');
}).map(val),
prps: main.PRP.words.map(val)
};
}
},
// VERB : _irregulars, _noDoers, _comparatives, _superlatives, _regulars
{ // 2
id: 'verbs_special',
description: '',
// build
zip: function(lang) {
// TODO: 'it', 'one'
return {
cps: main.CP.words.map(val),
mds: main.MD.words.map(val)
};
}
},
{ // 3
id: 'verbs_conjugate',
description: '',
prefix: '// types: infinitive, gerund, past, present, doer, future \n',
// compress
zip: function(lang) {
var types = {
/*VBP: 'infinitive',*/
VBG: 'gerund',
VBD: 'past',
VBZ: 'present',
NNA: 'doer'
};
var _irregulars = newRes();
var _noDoers = {};
//var irregularFlags = [];
main.VBP.words.filter(possibleIrreg).forEach(function(o) {
var iStr = o[lang];
var conjugateds = [iStr.replace('ing', '$').replace('er', '_')];
for (var type in types) {
var conjugated = 0;
main[type].words.filter(possibleRef).forEach(function(oc) {
if (oc.ref === o.uid) {
switch (lang) {
default:
conjugated = oc[lang].replace(iStr, '=').replace('ing', '$').replace('er', '_');
break;
}
did(o[lang]);
}
});
conjugateds.push( (conjugated) ? conjugated : 0 );
/*
TODO - CHECK participle / future error in last change of original repo !
*/
}
// check noDoer
if (!conjugateds[4] && (!o.hasOwnProperty('meta') || !o.meta.noDoer || o.meta.noDoer.indexOf(lang) < 0)) {
conjugateds.pop();
}
_irregulars.push(conjugateds);
});
main.VBP.words.filter(function(o) {
return meta(o, 'noDoer');
}).forEach(function(o) {
_noDoers[did(o[lang])] = 1;
});
/* TODO flags for all conjugated : 'I'.concat(flag(o.meta))) */
return {
irregulars: _irregulars,
noDoers: _noDoers,
irregularDoers: {}
};
},
// expand
unzip: {
array: 'irregulars',
fn: function(a) {
var types = ['infinitive','gerund','past','present','doer','future'];
var obj = {};
switch (lang) {
default:
var r = function(s) {return s;}
a.forEach(function(s, i) {
if (s && i>0) s = s.replace('=', a[0]);
if (s) s = s.replace(/\$/g, 'ing').replace(/_/g, 'er');
if (i > 3 && !s) {
main.noDoers[r(a[0])] = 1;
} else if (i > 3) {
main.irregularDoers[r(a[0])] = s;
} else {
obj[types[i]] = s;
}
});
break;
}
return obj;
}
}
},
{ // 4
id: 'verbs',
description: '',
// build
zip: function(lang) {
return main.VBP.words.filter(possibleRest).map(function(o) {
return did(o[lang]);
}).concat(main.VB.words.filter(possible).map(val));
}
},
// ADJECTIVE : _irregulars, _demonyms, _regulars
{ // 5
id: 'adjectives_decline',
description: '',
prefix: "// var types = ['adjective', 'adverb', 'comparative', 'superlative', 'noun'];\n"+
"// 0 means 'return null' for adverbs OR 'conjugate without more/most' for comparative and superlative.\n"+
"// 1 means 'default behavior'\n",
// compress
zip: function(lang) {
var types = {
/*JJ: 'adjective',*/
RB: 'adverb',
JJR: 'comparative',
JJS: 'superlative',
NN: 'noun'
};
var irregulars = newRes();
//var irregularFlags = [];
main.JJ.words.filter(possibleIrreg).forEach(function(o) {
var jjStr = o[lang];
var declineds = [jjStr];
for (var type in types) {
var declined = 1;
if (type === 'RB' && meta(o, 'noAdverb')) declined = 0;
if ((type === 'JJR' || type === 'JJS')) { // TODO
if (meta(o, 'noComparative')) {
declined = -1;
} else if (!o.hasOwnProperty('meta') || !o.meta.convertable) {
declined = 0;
}
}
if (declined > 0 || !o.hasOwnProperty('meta') || !o.meta.convertable) {
main[type].words.filter(possibleRef).forEach(function(oa) {
if (oa.ref === o.uid) {
switch (lang) {
default:
declined = (typeof oa[lang] === 'number') ? oa[lang] : oa[lang].replace(jjStr, '=').replace('ly', '$');
break;
}
}
});
}
if (declined === -1) declined = 0;
declineds.push( (declined) ? declined : 0 );
}
if (declineds.length > 4 && declineds[4] === 1) declineds.pop();
if (declineds.length === 4 && declineds[2] === 0 && declineds[3] === 0) {
declineds.splice(2, 2);
} else if (declineds.length === 4 && declineds[2] === 1 && declineds[3] === 1) {
declineds.pop();
}
irregulars.push(declineds);
});
// add the rest which are convertable
results.push(irregulars.map(function(declinedArr) { return declinedArr[0]; }));
var possibleConvertable = function(o) { return meta(o, 'convertable'); };
main.JJ.words.filter(possibleConvertable).forEach(function(o) {
if (!handled(o[lang])) {
irregulars.push(o[lang]);
did(o[lang]);
}
});
/* TODO flags for all conjugated : 'I'.concat(flag(o.meta))) */
return irregulars;
},
// expand
unzip: function () {
var res = { convertables: [], adj_to_advs: {}, adv_donts: [], to_comparative: {}, to_superlative: {}, to_noun: {} };
var expand = function (s, b) { return (s === 0) ? 0 : s.replace('=', b).replace('$', 'ly'); }
zip.forEach(function(a) {
if (typeof a === 'string') {
res.convertables.push(a);
} else {
if (a.length > 1) {
if (a[1] === 0) res.adv_donts.push(a[0]);
if (typeof a[1] === 'string') res.adj_to_advs[a[0]] = expand(a[1], a[0]);
}
if (a[2] && a[2] === 1) {
res.convertables.push(a[0]);
} else if (a.length>2) {
res.to_comparative[a[0]] = expand(a[2], a[0]);
}
if (a.length>3 && a[3]!=1) res.to_superlative[a[0]] = expand(a[3], a[0]);
if (a.length>4 && a[4]!=1) res.to_noun[a[0]] = expand(a[4], a[0]);
}
});
return res;
}
},
{ // 6
id: 'adjectives_demonym',
description: '',
// compress
zip: function(lang) {
var demonyms = [];
var possibleDemo = function(o) { return meta(o, 'demonym'); };
main.JJ.words.filter(possibleDemo).forEach(function(o) {
demonyms.push( o[lang].replace('ian', '$').replace('ese', '=') );
did(o[lang]);
});
return demonyms;
},
// expand
unzip: {
array: 'zip',
fn: function(s) {
switch (lang) {
default:
return s.replace('$', 'ian').replace('=', 'ese');
break;
}
}
}
},
{ // 7
id: 'adjectives',
description: '',
// build
zip: function(lang) {
return did(main.JJ.words.filter(possibleRest).map(val));
}
},
// ADVERBS : _irregulars
{ // 8
id: 'adverbs_irregular',
description: '',
// build
zip: function(lang) {
var irregulars = newRes();
main.RB.words.filter(possibleIrreg).forEach(function(o) {
var iStr = o[lang];
var adj = '';
main.JJ.words.filter(possibleRef).forEach(function(oj) {
if (oj.ref === o.uid) adj = did(oj[lang]);
});
irregulars.push([iStr.replace(adj, '='), adj]);
});
/* TODO flags for all conjugated : 'I'.concat(flag(o.meta))) */
return irregulars;
},
unzip: function(a) {
var res = {};
zip.forEach(function(a) {
res[a[0].replace('=', a[1])] = a[1];
});
return res;
}
},
{ // 9
id: 'numbers',
description: '',
// build
zip: function(lang) {
newRes();
var nrs = {};
for (var _var in main.NU) {
var cat = main.NU[_var];
nrs[_var] = {};
for (var i in cat) {
if (cat[i].hasOwnProperty(lang)) {
var words = (cat[i][lang] instanceof Array) ? cat[i][lang] : [cat[i][lang]];
words.forEach(function(w) {
if (!handled(w)) nrs[_var][did(w)] = (_var==='multiple') ? Math.pow(10, parseInt(i)) : parseInt(i);
});
}
}
}
return nrs;
}
},
{ // 10
id: 'dates',
description: '',
// build
zip: function(lang) {
var dates = {month: {}, day: {}};
['month', 'day'].forEach(function(cat) {
for (var i in main.DA[cat]) {
var a = (main.DA[cat][i][lang] instanceof Array) ? main.DA[cat][i][lang] : [main.DA[cat][i][lang]];
a.forEach(function(w) {
dates[cat][w] = parseInt(i, 10);
});
}
});
return {months: dates.month, days: dates.day};
},
unzip: function() {
var res = zip;
res.rDaySearch = '\b('.concat(Object.keys(res.days).join('|'), ')\b');
res.rMonthSearch = '('.concat(Object.keys(res.months).join('|'), ')');
res.rMonths = res.monthSearch + ',?'; // TODO - this isn't really cross language
return res;
}
},
{ // 11
id: 'honorifics',
description: '',
// build
zip: function(lang) {
newRes();
var possibleHon = function(o) { return meta(o, 'honour'); };
return did(main.NNAB.words.filter(possibleHon).map(val));
}
},
{ // 12
id: 'abbreviations',
description: '',
// build
zip: function(lang) { return did(main.NNAB.words.filter(possibleRest).map(val)); }
},
{ // 13
id: 'normalizations',
description: {},
// compress
zip: function(lang) {
var res = {};
main.normalizations.forEach(function(a){
if(!res.hasOwnProperty(a[1])) res[a[1]] = '';
res[a[1]] = res[a[1]].concat(a[0]);
});
return did(res);
},
// expand
unzip: function(a) {
var res = { normaler: {}, greek: {} };
for (var normCh in zip) {
zip[normCh].split('').forEach(function(grCh){
res.normaler[grCh] = normCh;
res.greek[normCh] = grCh;
});
}
return res;
}
},
{ // 14
id: 'multiples',
description: '',
// build
zip: function(lang) {
var res = {};
for (var cat in main.multiples) {
var mult = main.multiples[cat].filter(possible).map(val);
mult.forEach(function(s) { res[s] = cat; });
}
return res;
}
}
];
var _generateLexi = function() {
// MAIN lexicon
var _names = generators.map(function(g) { return g.id; })
var _compact = {};
var _lexicon = {};
var m = {};
var pm = {};
function reqModule(n) { m[n] = require('./' + lang + '/' + n.concat('.js')); }
function reqDmodule(n) { m[n] = require('./' + n.concat('.js')); }
function reqPmodules() {
['conjugate','to_doer'].forEach(function(n) {
pm[n] = require('../../parents/verb/conjugate/' + n);
});
['to_adverb','to_superlative','to_comparative', 'convertables'].forEach(function(n) {
pm[n] = require('../../parents/adjective/conjugate/' + n);
});
}
_names.forEach(reqModule);
// require the modules in the lexicon.js
var nStr = util.inspect(_names).replace(/ |\n/g,'');
/*
verb_conjugate = require("../parents/verb/conjugate/conjugate")
verb_to_doer = require("../parents/verb/conjugate/to_doer")
verb_irregulars = require("../parents/verb/conjugate/verb_irregulars")
adj_to_adv = require("../parents/adjective/conjugate/to_adverb")
to_superlative = require("../parents/adjective/conjugate/to_superlative")
to_comparative = require("../parents/adjective/conjugate/to_comparative")
convertables = require("../parents/adjective/conjugate/convertables")
*/
var lStr = langStr.concat('\n var m = {};\n var pm = {};\n ', reqDmodule.toString(), '\n ', reqPmodules.toString(), '\n ', nStr, '.forEach(reqDmodule);\n reqPmodules();\n ');
// TODO - rest of VBN should be in lexicon.js already - also for sl "TODO adjectives_regular"
var __VBN = main.VBN.words.filter(function(o) { return (possible(o) && o.hasOwnProperty('ref')); }).map(val);
// put words which are NOT yet in other modules in the lexicon now
// the same function (without arguments) is used in the lexicon to add words which ARE in other modules ...
var gen = function (cat){
var did = {
NN: m.nouns_inflect.irregulars.map(function(a){ return a[0]; }).concat(m.nouns_inflect.uncountables),
NNS: m.nouns_inflect.irregulars.map(function(a){ return a[1]; }),
VBN: __VBN,
VBD: m.verbs_conjugate.irregulars.map(function(o){ return o.past; }),
VBG: m.verbs_conjugate.irregulars.map(function(o){ return o.gerund; }),
RB: Object.keys(m.adverbs_irregular).concat(Object.keys(m.adjectives_decline.adj_to_advs).map(function(s) { return m.adjectives_decline.adj_to_advs[s]; })),
}
if (!cat) {
var lexiZip = {
NNA: Object.keys(m.verbs_conjugate.irregularDoers).map(function(s){ return m.verbs_conjugate.irregularDoers[s]; }),
NNAB: m.honorifics.concat(m.abbreviations),
PRP: m.nouns.prps,
CP: m.verbs_special.cps,
MD: m.verbs_special.mds,
VBP: m.verbs_conjugate.irregulars.map(function(o){ return o.infinitive; }),
VBZ: m.verbs_conjugate.irregulars.map(function(o){ return o.present; }),
JJR: Object.keys(m.adjectives_decline.to_comparative).map(function(s){ return m.adjectives_decline.to_comparative[s]; }),
JJS: Object.keys(m.adjectives_decline.to_superlative).map(function(s){ return m.adjectives_decline.to_superlative[s]; }),
JJ: m.adjectives_demonym.concat(
m.adjectives_decline.adv_donts, Object.keys(m.adjectives_decline.adj_to_advs),
Object.keys(m.adjectives_decline.to_comparative), Object.keys(m.adjectives_decline.to_superlative),
Object.keys(m.adverbs_irregular).map(function(s) { return m.adverbs_irregular[s]; })
),
//CD
NU: Object.keys(m.numbers.ones).concat( Object.keys(m.numbers.teens), Object.keys(m.numbers.tens), Object.keys(m.numbers.multiple) ),
DA: Object.keys(m.dates.months).concat( Object.keys(m.dates.days) )
}
var toMain = function(key, o) {
o[key].forEach(function(w) { if (!main[w]) main[w] = key; });
}
// irregulars to main
for (var key in did) toMain(key, did);
for (var key in lexiZip) toMain(key, lexiZip);
// zip to main
for (var key in zip) toMain(key, zip);
// conjugate all verbs. (~8ms, triples the lexicon size)
m.verbs.forEach(function(v) {
var c = pm.conjugate(v);
var d = pm.to_doer(v);
var map = {'infinitive': 'VBP', 'past': 'VBD', 'gerund': 'VBG', 'present': 'VBZ', 'participle': 'VBN'};
for (var type in map) {
if (c[type] && !main[c[type]]) main[c[type]] = map[type];
if (d && !main[d]) main[d] = 'NNA';
}
});
// decline all adjectives to their adverbs. (13ms)
// 'to_adverb','to_superlative','to_comparative'
m.adjectives.concat(m.adjectives_decline.convertables).forEach(function(j) {
main[j] = 'JJ';
var adv = pm.to_adverb(j);
if (adv && adv !== j && !main[adv]) main[adv] = main[adv] || 'RB';
var c = pm.to_comparative(j);
if (c && !c.match(/^more ./) && c !== j && !main[c]) main[c] = main[c] || 'JJR';
var s = pm.to_superlative(j);
if (s && !s.match(/^most ./) && s !== j && !main[s]) main[s] = main[s] || 'JJS';
});
return main;
}
if (cat in did) return did[cat];
return [];
}
var genStr = gen.toString().replace(/\bVBN:\s*__VBN\s*,\s*\n*/g,'');
['EX', 'NN', 'NNS', 'CC', 'VBD', 'VBN', 'VBG', 'DT', 'IN', 'PP', 'UH', 'FW', 'RB', 'RBR', 'RBS'].forEach(function(cat) {
_compact[cat] = [];
if (main.hasOwnProperty(cat) && main[cat].hasOwnProperty('words')) {
_compact[cat] = main[cat].words.map(val).filter(function(w) { return (gen(cat).indexOf(w) < 0); });
}
});
lStr = lStr.concat('\n var main = {};\n var zip = ', util.inspect(_compact, {depth: null}), '\n var unzip = ', genStr, '\n unzip();' );
// write a file to simply log the data modules in the folder
var namesRaw = _names.map(function(n) { return n.concat('.js') });
namesRaw.push('lexicon.js');
var names = JSON.stringify( namesRaw );
var logStr = "var util = require('util'); \nvar names = " + names + ";".concat(
"\nnames.forEach(function(n, i) { console.log( n ); console.log( require('./'+n) ); });"
);
fs.writeFileSync( path.join('./', lang, '/', 'logExpandedModules.js'), logStr );
return lStr;
}
var i = 0;
var _prefix = function(id) { return '\nvar '.concat(id,' = (function() {\n '); }
var _generate = function(g, i) {
/*TODO lang.mixin*/
if (!(g.prefix)) g.prefix = '';
var id = g.id;
var generated = g.zip(lang);
var zip = util.inspect(generated, { depth: null });
var prefix = langStr.concat(_prefix(id));
if (g.hasOwnProperty('description') && g.description != '') {
g.prefix = '/* '.concat(g.description, ' */\n', g.prefix);
}
if (g.hasOwnProperty('prefix')) {
prefix = g.prefix.concat('\n', prefix);
}
var suffix = '\n if (typeof module !== "undefined" && module.exports) module.exports = main;\n\n'+
' return main;\n'+
'})();';
var _main = '; \n\n var main = ';
var unzip = 'zip;';
if (g.hasOwnProperty('unzip') && g.unzip.hasOwnProperty('array')) {
var arr = (g.unzip.array === 'zip' || g.unzip.array === '') ? 'zip' : 'zip.'.concat(g.unzip.array);
if (g.unzip.array != 'zip' && g.unzip.array != '') _main = _main.concat('zip;\n main.', g.unzip.array, ' = ');
unzip = arr.concat('.map(', g.unzip.fn.toString(-1), ');');
} else if (g.hasOwnProperty('unzip')) {
unzip = '('.concat(g.unzip.toString(-1), ')();');
}
var result = prefix.concat('var zip = ', zip, _main, unzip, suffix);
fs.writeFile( path.join('./', lang, '/', g.id.concat('.js')), result, function(e, res) {
if (e) throw e;
i++;
var colors = ['',''];
if (i === generators.length) {
colors = ['\u001b[32m', '\u001b[39m'];
var rStr = _prefix('lexicon').concat(_generateLexi(), suffix);
fs.writeFileSync( path.join('./', lang, '/', 'lexicon.js'), rStr);
// Generate rules ... TODO
}
console.log( 'wrote module', colors[0], i+' of '+generators.length, colors[1] );
});
}
// Generate data part (lexica)
try { fs.mkdirSync(path.join('./', lang)); } catch (e) {};
generators.forEach(_generate);
}
generateLanguage('en');
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment