Last active
August 29, 2015 14:20
-
-
Save redaktor/5108c85b16d47e969bb2 to your computer and use it in GitHub Desktop.
dictionary.js
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// 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