compromise
Advanced tools
Comparing version 14.5.2 to 14.6.0
@@ -5,3 +5,3 @@ { | ||
"description": "modest natural language processing", | ||
"version": "14.5.2", | ||
"version": "14.6.0", | ||
"main": "./src/three.js", | ||
@@ -99,3 +99,2 @@ "unpkg": "./builds/compromise.js", | ||
"devDependencies": { | ||
"@rollup/plugin-alias": "4.0.0", | ||
"@rollup/plugin-node-resolve": "15.0.0", | ||
@@ -106,3 +105,3 @@ "amble": "1.3.0", | ||
"nlp-corpus": "4.4.0", | ||
"rollup": "3.2.1", | ||
"rollup": "3.2.3", | ||
"rollup-plugin-filesize-check": "0.0.1", | ||
@@ -109,0 +108,0 @@ "rollup-plugin-terser": "7.0.2", |
@@ -1,1 +0,1 @@ | ||
export default '14.5.2' | ||
export default '14.6.0' |
@@ -58,5 +58,6 @@ import pluckOutTerm from './lib/remove.js' | ||
} | ||
let isFull = !self.ptrs | ||
// is it part of a contraction? | ||
if (self.has('@hasContraction') && self.contractions) { | ||
let more = self.grow('@hasContraction') | ||
if (not.has('@hasContraction') && not.contractions) { | ||
let more = not.grow('@hasContraction') | ||
more.contractions().expand() | ||
@@ -76,2 +77,6 @@ } | ||
self.compute('index') | ||
// if we started zoomed-out, try to end zoomed-out | ||
if (isFull) { | ||
self.ptrs = undefined | ||
} | ||
if (!reg) { | ||
@@ -78,0 +83,0 @@ this.ptrs = [] |
@@ -83,4 +83,5 @@ const dollarStub = /\$[0-9a-z]+/g | ||
} | ||
this.soften() | ||
return m.replaceWith(input, keep) | ||
} | ||
export default fns |
@@ -10,3 +10,6 @@ const numUnit = /^([+-]?[0-9][.,0-9]*)([a-z°²³µ/]+)$/ //(must be lowercase) | ||
'pm', | ||
'max' | ||
'max', | ||
'°', | ||
's', // 1990s | ||
'e' // 18e - french/spanish ordinal | ||
]) | ||
@@ -13,0 +16,0 @@ |
@@ -0,31 +1,31 @@ | ||
// add all conjugations of this verb | ||
const addVerbs = function (token, world) { | ||
let { verbConjugate } = world.methods.two.transform | ||
if (!verbConjugate) { | ||
let { all } = world.methods.two.transform.verb || {} | ||
let str = token.root | ||
// if (toInfinitive) { | ||
// str = toInfinitive(str, world.model) | ||
// } | ||
if (!all) { | ||
return [] | ||
} | ||
let res = verbConjugate(token.root, world.model) | ||
delete res.FutureTense | ||
return Object.values(res).filter(str => str) | ||
return all(str, world.model) | ||
} | ||
// add all inflections of this noun | ||
const addNoun = function (token, world) { | ||
let { nounToPlural } = world.methods.two.transform | ||
let res = [token.root] | ||
if (!nounToPlural) { | ||
return res | ||
let { all } = world.methods.two.transform.noun || {} | ||
if (!all) { | ||
return [token.root] | ||
} | ||
res.push(nounToPlural(token.root, world.model)) | ||
return res | ||
return all(token.root, world.model) | ||
} | ||
// add all inflections of this adjective | ||
const addAdjective = function (token, world) { | ||
let { adjToSuperlative, adjToComparative, adjToAdverb } = world.methods.two.transform | ||
let res = [token.root] | ||
if (!adjToSuperlative || !adjToComparative || !adjToAdverb) { | ||
return res | ||
let { all } = world.methods.two.transform.adjective || {} | ||
if (!all) { | ||
return [token.root] | ||
} | ||
res.push(adjToSuperlative(token.root, world.model)) | ||
res.push(adjToComparative(token.root, world.model)) | ||
res.push(adjToAdverb(token.root, world.model)) | ||
return res | ||
return all(token.root, world.model) | ||
} | ||
@@ -40,12 +40,17 @@ | ||
// check if compromise/two is loaded | ||
if (world.methods.two && world.methods.two.transform && world.methods.two.transform.verbConjugate) { | ||
if (world.methods.two && world.methods.two.transform) { | ||
let choices = [] | ||
if (!token.pos || token.pos === 'Verb') { | ||
// have explicitly set from POS - '{sweet/adjective}' | ||
if (token.pos) { | ||
if (token.pos === 'Verb') { | ||
choices = choices.concat(addVerbs(token, world)) | ||
} else if (token.pos === 'Noun') { | ||
choices = choices.concat(addNoun(token, world)) | ||
} else if (token.pos === 'Adjective') { | ||
choices = choices.concat(addAdjective(token, world)) | ||
} | ||
} else { | ||
// do verb/noun/adj by default | ||
choices = choices.concat(addVerbs(token, world)) | ||
} | ||
if (!token.pos || token.pos === 'Noun') { | ||
choices = choices.concat(addNoun(token, world)) | ||
} | ||
// don't run these by default | ||
if (!token.pos || token.pos === 'Adjective') { | ||
choices = choices.concat(addAdjective(token, world)) | ||
@@ -52,0 +57,0 @@ } |
@@ -9,3 +9,3 @@ // these methods are called with '@hasComma' in the match syntax | ||
const hasHyphen = /^[-–—]$/ | ||
const hasDash = / [-–—] / | ||
const hasDash = / [-–—]{1,3} / | ||
@@ -32,2 +32,4 @@ /** search the term's 'post' punctuation */ | ||
hasSemicolon: term => hasPost(term, ';'), | ||
/** is there a colon after term word? */ | ||
hasColon: term => hasPost(term, ':'), | ||
/** is there a slash '/' in term word? */ | ||
@@ -34,0 +36,0 @@ hasSlash: term => /\//.test(term.text), |
@@ -18,3 +18,3 @@ import { textFromDoc } from './lib/_text.js' | ||
} else if (fmt && isObject(fmt)) { | ||
opts = Object.assign({}, fmt, opts)//todo: fixme | ||
opts = Object.assign({}, opts, fmt)//todo: fixme | ||
} | ||
@@ -21,0 +21,0 @@ if (this.pointer) { |
@@ -11,3 +11,3 @@ // filter-down list of maybe-matches | ||
list = list.filter(obj => { | ||
if (obj.ifNo !== undefined && obj.ifNo.some(no => docCache[n].has(no)) === true) { | ||
if (obj.ifNo !== undefined && obj.ifNo.some(no => haves.has(no)) === true) { | ||
return false | ||
@@ -14,0 +14,0 @@ } |
// finally, | ||
// actually run these match-statements on the terms | ||
const runMatch = function (maybeList, document, methods, opts) { | ||
const runMatch = function (maybeList, document, docCache, methods, opts) { | ||
let results = [] | ||
@@ -12,5 +12,19 @@ for (let n = 0; n < maybeList.length; n += 1) { | ||
if (res.ptrs.length > 0) { | ||
// let index=document[n][0].index | ||
res.ptrs.forEach(ptr => { | ||
ptr[0] = n // fix the sentence pointer | ||
// check ifNo | ||
// if (m.ifNo !== undefined) { | ||
// let terms = document[n].slice(ptr[1], ptr[2]) | ||
// for (let k = 0; k < m.ifNo.length; k += 1) { | ||
// const no = m.ifNo[k] | ||
// // quick-check cache | ||
// if (docCache[n].has(no)) { | ||
// // console.log(no) | ||
// if (terms.find(t => t.normal === no || t.tags.has(no))) { | ||
// // console.log('+' + no) | ||
// return | ||
// } | ||
// } | ||
// } | ||
// } | ||
let todo = Object.assign({}, m, { pointer: ptr }) | ||
@@ -17,0 +31,0 @@ if (m.unTag !== undefined) { |
@@ -23,3 +23,3 @@ import getHooks from './01-getHooks.js' | ||
// ensure all defined needs are met for each match | ||
maybeList = trimDown(maybeList, docCache) | ||
maybeList = trimDown(maybeList, docCache, document) | ||
// add unchacheable matches to each sentence's todo-list | ||
@@ -32,12 +32,4 @@ if (net.always.length > 0) { | ||
// maybeList.forEach((arr, i) => { | ||
// let txt = document[i].map(t => t.text).join(' ') | ||
// console.log(`==== ${txt} ====`) | ||
// arr.forEach(m => { | ||
// console.log(` - ${m.match}`) | ||
// }) | ||
// }) | ||
// now actually run the matches | ||
let results = runMatch(maybeList, document, methods, opts) | ||
let results = runMatch(maybeList, document, docCache, methods, opts) | ||
// console.dir(results, { depth: 5 }) | ||
@@ -44,0 +36,0 @@ return results |
@@ -9,3 +9,3 @@ import { hasHyphen, splitHyphens } from './01-hyphens.js' | ||
let notWord = ['.', '?', '!', ':', ';', '-', '–', '—', '--', '...', '(', ')', '[', ']', '"', "'", '`', '«', '»'] | ||
let notWord = ['.', '?', '!', ':', ';', '-', '–', '—', '--', '...', '(', ')', '[', ']', '"', "'", '`', '«', '»', '*'] | ||
notWord = notWord.reduce((h, c) => { | ||
@@ -12,0 +12,0 @@ h[c] = true |
@@ -5,3 +5,3 @@ const allowBefore = [ | ||
'_',//underscore | ||
'\\-',//-4 (escape) | ||
// '\\-',//-4 (escape) | ||
'+',//+4 | ||
@@ -13,2 +13,3 @@ '.',//.4 | ||
'_',//underscore | ||
'°',//degrees, italian ordinal | ||
// '\'',// \u0027 | ||
@@ -15,0 +16,0 @@ ] |
@@ -12,2 +12,3 @@ //all punctuation marks, from https://en.wikipedia.org/wiki/Punctuation | ||
const shortYear = /^'[0-9]{2}/ | ||
const isNumber = /^-[0-9]/ | ||
@@ -31,2 +32,6 @@ const normalizePunctuation = function (str) { | ||
} | ||
// support prefix negative signs like '-45' | ||
if (found === '-' && isNumber.test(str)) { | ||
return found | ||
} | ||
pre = found //keep it | ||
@@ -33,0 +38,0 @@ return '' |
@@ -18,2 +18,6 @@ const lastNoun = function (terms, i) { | ||
if (terms[i].normal === "ain't" || terms[i].normal === 'aint') { | ||
// "ain't never" -> have never (?) | ||
if (terms[i + 1] && terms[i + 1].normal === 'never') { | ||
return ['have'] | ||
} | ||
// we aint -> are not, she aint -> is not | ||
@@ -26,2 +30,5 @@ let noun = lastNoun(terms, i) | ||
} | ||
if (noun.normal === 'i') { | ||
return ['am', 'not'] | ||
} | ||
// plural/singular tags | ||
@@ -28,0 +35,0 @@ if (noun.tags && noun.tags.has('Plural')) { |
@@ -31,3 +31,13 @@ // order matters | ||
{ match: '(say|says|said) [sorry]', group: 0, tag: 'Expression', reason: 'say-sorry' }, | ||
// ok, | ||
{ match: '^(ok|alright|well|shoot|hell|anyways)', tag: 'Expression', reason: 'ok-' }, | ||
// c'mon marge.. | ||
{ match: '^[come on] #Noun', group: 0, tag: 'Expression', reason: 'come-on' }, | ||
// say, | ||
{ match: '^(say && @hasComma)', tag: 'Expression', reason: 'say-' }, | ||
{ match: '^(like && @hasComma)', tag: 'Expression', reason: 'like-' }, | ||
// right after | ||
{ match: '[right] (before|after|in|into|to|toward)', group: 0, tag: '#Adverb', reason: 'right-into' }, | ||
// double-prepositions | ||
@@ -46,5 +56,13 @@ // rush out of | ||
{ match: '^[(dude|man|girl)] #Pronoun', group: 0, tag: 'Expression', reason: 'dude-i' }, | ||
// are welcome | ||
// { match: '#Copula [#Expression]', group: 0, tag: 'Noun', reason: 'are-welcome' }, | ||
// 'there' as adjective | ||
{ match: '(always|nearly|barely|practically) [there]', group: 0, tag: 'Adjective', reason: 'always-there' }, | ||
// existential 'there' | ||
// there she is | ||
{ match: '[there] (#Adverb|#Pronoun)? #Copula', group: 0, tag: 'There', reason: 'there-is' }, | ||
// is there food | ||
{ match: '#Copula [there] .', group: 0, tag: 'There', reason: 'is-there' }, | ||
// should there | ||
{ match: '#Modal #Adverb? [there]', group: 0, tag: 'There', reason: 'should-there' }, | ||
] | ||
export default matches |
@@ -16,2 +16,4 @@ export default [ | ||
{ match: `#Preposition (a|an) [#Adjective]$`, group: 0, tag: 'Noun', reason: 'an-instant' }, | ||
// brand new | ||
{ match: `[brand #Gerund?] new`, tag: 'Adverb', group: 0, reason: 'brand-new' }, | ||
] |
@@ -34,2 +34,4 @@ export default [ | ||
{ match: 'a (bit|little|tad) [#PastTense]', group: 0, tag: 'Adjective', reason: 'a-bit-confused' }, | ||
// do not be embarrassed | ||
{ match: 'not be [%Adj|Past%]', group: 0, tag: 'Adjective', reason: 'do-not-be-confused' }, | ||
] |
@@ -28,2 +28,3 @@ import adj from './adjective/adjective.js' | ||
import adjGerund from './verbs/adj-gerund.js' | ||
import passive from './verbs/passive.js' | ||
@@ -37,2 +38,4 @@ import misc from './_misc.js' | ||
let matches = [].concat( | ||
// order matters top-matches can get overwritten | ||
passive, | ||
adj, | ||
@@ -39,0 +42,0 @@ advAdj, |
@@ -88,3 +88,3 @@ const infNouns = | ||
// bride and groom | ||
{ match: '#Noun and [%Noun|Verb%]', group: 0, tag: 'Singular', ifNo: ['#ProperNoun'], reason: 'bride-and-groom' }, | ||
// { match: '#Noun and [%Noun|Verb%]', group: 0, tag: 'Singular', ifNo: ['#ProperNoun'], reason: 'bride-and-groom' }, | ||
// peace and flowers and love | ||
@@ -96,2 +96,6 @@ { match: '#Noun and [#Verb] and #Noun', group: 0, tag: 'Noun', reason: 'peace-and-flowers' }, | ||
{ match: '#Copula the [%Adj|Noun%] #Noun', group: 0, tag: 'Adjective', reason: 'the-premier-university' }, | ||
// scottish - i ate me sandwich | ||
{ match: 'i #Verb [me] #Noun', group: 0, tag: 'Possessive', reason: 'scottish-me' }, | ||
] |
@@ -6,3 +6,3 @@ export default [ | ||
//pope francis | ||
{ match: '(sister|pope|father) #ProperNoun', tag: 'Person', reason: 'lady-titlecase', safe: true }, | ||
{ match: '(sister|pope|brother|father|aunt|uncle|grandpa|grandfather|grandma) #ProperNoun', tag: 'Person', reason: 'lady-titlecase', safe: true }, | ||
@@ -9,0 +9,0 @@ // ==== Nickname ==== |
@@ -40,2 +40,6 @@ // this is really hard to do | ||
{ match: '^never [#Infinitive]', group: 0, tag: 'Imperative', reason: 'never-stop' }, | ||
// come have a drink | ||
{ match: '^come #Infinitive', tag: 'Imperative', reason: 'come-have' }, | ||
// come and have a drink | ||
{ match: '^come and? #Infinitive', tag: 'Imperative . Imperative', reason: 'come-and-have' }, | ||
// stay away | ||
@@ -51,2 +55,8 @@ { match: '^stay (out|away|back)', tag: 'Imperative', reason: 'stay-away' }, | ||
{ match: '[#Infinitive] (yourself|yourselves)', group: 0, tag: 'Imperative', reason: 'allow-yourself' }, | ||
// continue playing | ||
{ match: '^[#Infinitive] #Gerund', group: 0, tag: 'Imperative', reason: 'keep-playing' }, | ||
// go to it | ||
{ match: '^[#Infinitive] (to|for|into|toward)', group: 0, tag: 'Imperative', reason: 'go-to' }, | ||
// relax and unwind | ||
{ match: '^[#Infinitive] (and|or) #Infinitive', group: 0, tag: 'Imperative', reason: 'inf-and-inf' }, | ||
] |
@@ -50,3 +50,3 @@ // rough connection between compromise tagset and Penn Treebank | ||
// 'Noun':'EX', //'there' | ||
'There': 'EX', //'there' | ||
// 'Adverb':'WRB', | ||
@@ -53,0 +53,0 @@ // 'Noun':'PDT', //predeterminer |
@@ -11,3 +11,3 @@ const toRoot = { | ||
let str = term.machine || term.normal || term.text | ||
return world.methods.two.transform.nounToSingular(str, world.model) | ||
return world.methods.two.transform.noun.toSingular(str, world.model) | ||
}, | ||
@@ -21,3 +21,3 @@ // '' | ||
let str = term.machine || term.normal || term.text | ||
return world.methods.two.transform.verbToInfinitive(str, world.model, 'PastTense') | ||
return world.methods.two.transform.verb.toInfinitive(str, world.model, 'PastTense') | ||
}, | ||
@@ -27,3 +27,3 @@ // 'walking' -> 'walk' | ||
let str = term.machine || term.normal || term.text | ||
return world.methods.two.transform.verbToInfinitive(str, world.model, 'Gerund') | ||
return world.methods.two.transform.verb.toInfinitive(str, world.model, 'Gerund') | ||
}, | ||
@@ -36,3 +36,3 @@ // 'walks' -> 'walk' | ||
} | ||
return world.methods.two.transform.verbToInfinitive(str, world.model, 'PresentTense') | ||
return world.methods.two.transform.verb.toInfinitive(str, world.model, 'PresentTense') | ||
}, | ||
@@ -42,3 +42,3 @@ // 'quieter' -> 'quiet' | ||
let str = term.machine || term.normal || term.text | ||
return world.methods.two.transform.adjFromComparative(str, world.model) | ||
return world.methods.two.transform.adjective.fromComparative(str, world.model) | ||
}, | ||
@@ -48,9 +48,9 @@ // 'quietest' -> 'quiet' | ||
let str = term.machine || term.normal || term.text | ||
return world.methods.two.transform.adjFromSuperlative(str, world.model) | ||
return world.methods.two.transform.adjective.fromSuperlative(str, world.model) | ||
}, | ||
// 'suddenly' -> 'sudden' | ||
'Adverb': (term, world) => { | ||
const toAdj = world.methods.two.transform.advToAdjective | ||
const { fromAdverb } = world.methods.two.transform.adjective | ||
let str = term.machine || term.normal || term.text | ||
return toAdj(str) | ||
return fromAdverb(str) | ||
}, | ||
@@ -57,0 +57,0 @@ } |
@@ -6,3 +6,3 @@ // transformations to make on our lexicon | ||
let already = model.one.lexicon | ||
let plural = methods.two.transform.nounToPlural(word, model) | ||
let plural = methods.two.transform.noun.toPlural(word, model) | ||
if (!already[plural]) { | ||
@@ -16,4 +16,5 @@ lex[plural] = lex[plural] || 'Plural' | ||
let already = model.one.lexicon | ||
let { toSuperlative, toComparative } = methods.two.transform.adjective | ||
// fast -> fastest | ||
let sup = methods.two.transform.adjToSuperlative(word, model) | ||
let sup = toSuperlative(word, model) | ||
if (!already[sup]) { | ||
@@ -23,3 +24,3 @@ lex[sup] = lex[sup] || 'Superlative' | ||
// fast -> faster | ||
let comp = methods.two.transform.adjToComparative(word, model) | ||
let comp = toComparative(word, model) | ||
if (!already[comp]) { | ||
@@ -34,3 +35,3 @@ lex[comp] = lex[comp] || 'Comparative' | ||
Demonym: (word, lex, methods, model) => { | ||
let plural = methods.two.transform.nounToPlural(word, model) | ||
let plural = methods.two.transform.noun.toPlural(word, model) | ||
lex[plural] = lex[plural] || ['Demonym', 'Plural'] | ||
@@ -42,3 +43,3 @@ }, | ||
let already = model.one.lexicon | ||
let all = methods.two.transform.verbConjugate(word, model) | ||
let all = methods.two.transform.verb.conjugate(word, model) | ||
Object.entries(all).forEach(a => { | ||
@@ -62,3 +63,3 @@ if (!already[a[1]] && !lex[a[1]]) { | ||
// conjugate it | ||
let all = methods.two.transform.verbConjugate(inf, model) | ||
let all = methods.two.transform.verb.conjugate(inf, model) | ||
Object.entries(all).forEach(a => { | ||
@@ -65,0 +66,0 @@ // not 'walker up', or 'had taken up' |
@@ -1,22 +0,20 @@ | ||
import { convert } from 'suffix-thumb' | ||
import { toSuperlative, toComparative, fromSuperlative, fromComparative } from './inflect.js' | ||
import fromAdverb from './adverbs/toAdjective.js' | ||
import toAdverb from './adverbs/toAdverb.js' | ||
import toNoun from './adverbs/toNoun.js' | ||
const adjToSuperlative = function (adj, model) { | ||
const mod = model.two.models.toSuperlative | ||
return convert(adj, mod) | ||
const all = function (str, model) { | ||
let arr = [str] | ||
arr.push(toSuperlative(str, model)) | ||
arr.push(toComparative(str, model)) | ||
arr.push(toAdverb(str)) | ||
arr = arr.filter(s => s) | ||
arr = new Set(arr) | ||
return Array.from(arr) | ||
} | ||
const adjToComparative = function (adj, model) { | ||
const mod = model.two.models.toComparative | ||
return convert(adj, mod) | ||
} | ||
const adjFromComparative = function (adj, model) { | ||
const mod = model.two.models.fromComparative | ||
return convert(adj, mod) | ||
} | ||
const adjFromSuperlative = function (adj, model) { | ||
const mod = model.two.models.fromSuperlative | ||
return convert(adj, mod) | ||
} | ||
export { | ||
adjToSuperlative, adjToComparative, adjFromComparative, adjFromSuperlative | ||
} | ||
export default { | ||
toSuperlative, toComparative, toAdverb, toNoun, | ||
fromAdverb, fromSuperlative, fromComparative, | ||
all, | ||
} |
@@ -1,22 +0,10 @@ | ||
import nounToPlural from './nouns/toPlural/index.js' | ||
import nounToSingular from './nouns/toSingular/index.js' | ||
import nouns from './nouns/index.js' | ||
import verbs from './verbs/index.js' | ||
import adjectives from './adjectives/index.js' | ||
import verbToInfinitive from './verbs/toInfinitive/index.js' | ||
import verbConjugate from './verbs/conjugate/index.js' | ||
import getTense from './verbs/getTense/index.js' | ||
import advToAdjective from './adverbs/toAdjective.js' | ||
import adjToAdverb from './adverbs/toAdverb.js' | ||
import adjToNoun from './adverbs/toNoun.js' | ||
import { adjToSuperlative, adjToComparative, adjFromSuperlative, adjFromComparative } from './adjectives/index.js' | ||
export default { | ||
nounToPlural, nounToSingular, | ||
verbToInfinitive, getTense, | ||
verbConjugate, | ||
noun: nouns, | ||
verb: verbs, | ||
adjective: adjectives | ||
adjToSuperlative, adjToComparative, adjFromSuperlative, adjFromComparative, | ||
advToAdjective, adjToAdverb, adjToNoun | ||
} |
@@ -48,2 +48,3 @@ // import { toPast, toPresent, toGerund, toParticiple } from '../../../../model/models/index.js' | ||
export default conjugate | ||
@@ -50,0 +51,0 @@ |
@@ -38,5 +38,2 @@ import { convert } from 'suffix-thumb' | ||
const { fromPast, fromPresent, fromGerund, fromParticiple } = model.two.models | ||
// if (str.length < 3) { | ||
// return str | ||
// } | ||
let { prefix, verb, particle } = toParts(str, model) | ||
@@ -43,0 +40,0 @@ let inf = '' |
@@ -5,3 +5,3 @@ import methods from '../../methods/index.js' | ||
import conjugate from '../../methods/transform/verbs/conjugate/index.js' | ||
import { adjToSuperlative, adjToComparative } from '../../methods/transform/adjectives/index.js' | ||
import { toSuperlative, toComparative } from '../../methods/transform/adjectives/inflect.js' | ||
import toInfinitive from '../../methods/transform/verbs/toInfinitive/index.js' | ||
@@ -75,5 +75,5 @@ import models from '../models/index.js' | ||
const expandAdjective = function (str, words, model) { | ||
let sup = adjToSuperlative(str, model) | ||
let sup = toSuperlative(str, model) | ||
words[sup] = words[sup] || 'Superlative' | ||
let comp = adjToComparative(str, model) | ||
let comp = toComparative(str, model) | ||
words[comp] = words[comp] || 'Comparative' | ||
@@ -80,0 +80,0 @@ } |
@@ -53,2 +53,3 @@ const jj = 'Adjective' | ||
me: jj,//called me swell | ||
is: jj | ||
}, | ||
@@ -55,0 +56,0 @@ afterWords: { |
@@ -83,3 +83,4 @@ const n = 'Singular' | ||
wanted: n, | ||
is: n, | ||
}, | ||
} |
@@ -5,42 +5,45 @@ import adj from './_adj.js' | ||
// boiled the water | ||
let past = 'PastTense' | ||
const past = { | ||
const adjPast = { | ||
beforeTags: { | ||
Adverb: 'PastTense', //quickly detailed | ||
Pronoun: 'PastTense', //he detailed | ||
ProperNoun: 'PastTense', //toronto closed | ||
Auxiliary: 'PastTense', | ||
Noun: 'PastTense', //eye closed -- i guess. | ||
Adverb: past, //quickly detailed | ||
Pronoun: past, //he detailed | ||
ProperNoun: past, //toronto closed | ||
Auxiliary: past, | ||
Noun: past, //eye closed -- i guess. | ||
}, | ||
afterTags: { | ||
Possessive: 'PastTense', //hooked him | ||
Pronoun: 'PastTense', //hooked me | ||
Determiner: 'PastTense', //hooked the | ||
Adverb: 'PastTense', //cooked perfectly | ||
Comparative: 'PastTense',//closed higher | ||
Date: 'PastTense',// alleged thursday | ||
Possessive: past, //hooked him | ||
Pronoun: past, //hooked me | ||
Determiner: past, //hooked the | ||
Adverb: past, //cooked perfectly | ||
Comparative: past,//closed higher | ||
Date: past,// alleged thursday | ||
}, | ||
beforeWords: { | ||
be: 'PastTense',//be hooked | ||
get: 'PastTense',//get charged | ||
had: 'PastTense', | ||
has: 'PastTense', | ||
have: 'PastTense', | ||
been: 'PastTense', | ||
it: 'PastTense',//it intoxicated him | ||
as: 'PastTense',//as requested | ||
be: past,//be hooked vs be embarrassed | ||
who: past,//who lost | ||
get: 'Adjective',//get charged | ||
had: past, | ||
has: past, | ||
have: past, | ||
been: past, | ||
it: past,//it intoxicated him | ||
as: past,//as requested | ||
for: 'Adjective',//for discounted items | ||
}, | ||
afterWords: { | ||
by: 'PastTense', //damaged by | ||
back: 'PastTense', //charged back | ||
out: 'PastTense', //charged out | ||
in: 'PastTense', //crowded in | ||
up: 'PastTense', //heated up | ||
down: 'PastTense', //hammered down | ||
for: 'PastTense', //settled for | ||
the: 'PastTense', //settled the | ||
with: 'PastTense', //obsessed with | ||
as: 'PastTense', //known as | ||
on: 'PastTense', //focused on | ||
by: past, //damaged by | ||
back: past, //charged back | ||
out: past, //charged out | ||
in: past, //crowded in | ||
up: past, //heated up | ||
down: past, //hammered down | ||
for: past, //settled for | ||
the: past, //settled the | ||
with: past, //obsessed with | ||
as: past, //known as | ||
on: past, //focused on | ||
at: past, //recorded at | ||
}, | ||
@@ -50,6 +53,6 @@ } | ||
export default { | ||
beforeTags: Object.assign({}, adj.beforeTags, past.beforeTags), | ||
afterTags: Object.assign({}, adj.afterTags, past.afterTags), | ||
beforeWords: Object.assign({}, adj.beforeWords, past.beforeWords), | ||
afterWords: Object.assign({}, adj.afterWords, past.afterWords), | ||
beforeTags: Object.assign({}, adj.beforeTags, adjPast.beforeTags), | ||
afterTags: Object.assign({}, adj.afterTags, adjPast.afterTags), | ||
beforeWords: Object.assign({}, adj.beforeWords, adjPast.beforeWords), | ||
afterWords: Object.assign({}, adj.afterWords, adjPast.afterWords), | ||
} |
@@ -39,3 +39,6 @@ import adjGerund from './adj-gerund.js' | ||
clues['Plural|Verb'] = { | ||
beforeWords: copy(clues['Noun|Verb'].beforeWords, {}), | ||
beforeWords: copy(clues['Noun|Verb'].beforeWords, { | ||
had: 'Plural', //had tears | ||
have: 'Plural', | ||
}), | ||
afterWords: copy(clues['Noun|Verb'].afterWords, { | ||
@@ -42,0 +45,0 @@ his: 'PresentTense', her: 'PresentTense', its: 'PresentTense', |
@@ -32,3 +32,3 @@ import noun from './_noun.js' | ||
} | ||
// console.log(clue.afterWords.of) | ||
export default clue |
import person from './_person.js' | ||
const p = 'Place' | ||
@@ -6,25 +7,25 @@ // 'paris hilton' vs 'paris france' | ||
beforeTags: { | ||
Place: 'Place' | ||
Place: p | ||
}, | ||
afterTags: { | ||
Place: 'Place', | ||
Abbreviation: 'Place' | ||
Place: p, | ||
Abbreviation: p | ||
}, | ||
beforeWords: { | ||
in: 'Place', | ||
by: 'Place', | ||
near: 'Place', | ||
from: 'Place', | ||
to: 'Place', | ||
in: p, | ||
by: p, | ||
near: p, | ||
from: p, | ||
to: p, | ||
}, | ||
afterWords: { | ||
in: 'Place', | ||
by: 'Place', | ||
near: 'Place', | ||
from: 'Place', | ||
to: 'Place', | ||
government: 'Place', | ||
council: 'Place', | ||
region: 'Place', | ||
city: 'Place', | ||
in: p, | ||
by: p, | ||
near: p, | ||
from: p, | ||
to: p, | ||
government: p, | ||
council: p, | ||
region: p, | ||
city: p, | ||
}, | ||
@@ -31,0 +32,0 @@ } |
@@ -6,8 +6,9 @@ // generated in ./lib/lexicon | ||
"PresentTense": "true¦sounds", | ||
"Condition": "true¦lest,unless", | ||
"Condition": "true¦unless", | ||
"Conjunction": "true¦aXbTcuz,evenRhowPiHjust00lest,noEoCp8supposing,t5wh0yet;at,e2il1o0;evOse;e,st;nevMre0thM; if,vL;h0o;erefOo0;!uU;lus,rovide0; 1d0;! 0;th9;r0therwiJ;! not; mattBr,w0;! 0;since,th4w7;f4n0; 0asmuch;as mFcaCorder t0;h0o;at;! 0;only,t0w0;hen;!ev0;er;! 0;if,t8;e0ut,y the time;cau1f0;ore;se;lt3nd,s 0;far1if,m0soon1t2;uch0; as;hou0;gh", | ||
"PastTense": "true¦be2came,d1had,lied,mea0sa1taken,we0;nt;id;en,gan", | ||
"Gerund": "true¦accord0be0go0result0stain0;ing", | ||
"Expression": "true¦a0Qb0Mco0Ld0He0Ffuck,g09hUjeez,lRmQnOoLpIshHtGuDvoi0Sw6y0;a4e3i1u0;ck,p;kYp0;ee,pee;ah,p,s;!a,h6y;ah5h2o1t0;af,f;rd up,w;e1o0;a,ops;e,w;oo;gh,h0;! 0h,m;huh,oh;sk,ut tut;eesh,hh,it;ff,h1l0ow,sst;ease,z;ew,ooey;h1i,o0uch,w,y;h,o,ps;!h;ah,o0;!pe;eh,mm;ah,m1ol0;!s;ao,fao;aBe9i7o2u0;h,mph,rra0zzB;h,y;ly1o0;r4y8;! 0;cow,moCsmok0;es;!p hip hoor0;ay;ck,e,ll0y;!o;ha1i,lleluj0;ah;!ha;ah,ee4o1r0;eat scott,r;l1od0sh; grief,bye;ly;! whiz;e0h,t cetera,ww;k,p;'oh,a0rat,uh;m0ng;mit,n0;!it;ngratulations,wabunga;a2oo1r0ye;avo,r;!ya;h,m; 1h0las,men,rgh;!a,em,oy;la", | ||
"Expression": "true¦a0Qb0Mco0Ld0He0Ffuck,g09hUjeez,lRmQnOoLpIshHtGuDvoi0Sw6y0;a4e3i1u0;ck,p;kYp0;ee,pee;ah,p,s;!a,h6y;ah5h2o1t0;af,f;rd up,w;e1o0;a,ops;e,w;oo;gh,h0;! 0h,m;huh,oh;here nLsk,ut tut;eesh,hh,it,oo;ff,h1l0ow,sst;ease,z;ew,ooey;h1i,o0uch,w,y;h,o,ps;!h;ah,o0;!pe;eh,mm;ah,m1ol0;!s;ao,fao;aBeAi8o2u0;h,mph,rra0zzB;h,y;ly1o0;r5y8;! 0;c1moCsmok0;es;ow;!p hip hoor0;ay;ck,e,llo,y;ha1i,lleluj0;ah;!ha;ah,ee4o1r0;eat scott,r;l1od0sh; grief,bye;ly;! whiz;e0h,t cetera,ww;k,p;'oh,a0rat,uh;m0ng;mit,n0;!it;ngratulations,wabunga;a2oo1r0ye;avo,r;!ya;h,m; 1h0las,men,rgh,ye;!a,em,oy;la", | ||
"Negative": "true¦n0;ever,o0;n,t", | ||
"QuestionWord": "true¦how3wh0;at,e1ich,o0y;!m,se;n,re; come,'s", | ||
"QuestionWord": "true¦how3wh0;e1ich,o0y;!m;n,re; come,'s", | ||
"Reflexive": "true¦h4it5my5o1the0your2;ir1m1;ne3ur0;sel0;f,ves;er0im0;self", | ||
@@ -18,3 +19,3 @@ "Plural": "true¦ones,records", | ||
"Imperative": "true¦come here", | ||
"PhrasalVerb": "true¦0:81;1:7Q;2:8E;3:84;4:7J;5:8H;6:7P;7:7E;8:7C;9:86;A:7Z;B:89;C:87;D:80;E:6L;F:6D;a8Kb73c66d61e60f4Yg4Gh3Viron0j3Rk3Ml33m2Pn2No2Lp22quietEr1Ns0GtWuUvacuum 1wJyammerAzG;ero Dip HonG;e0k0;by,up;aNeIhHiGor7Vrit37;mp0n34pe0r8s8;eel Dip 8P;aIiGn2S;gh Grd0;in,up;n Dr G;d2in,o4D;it 6Hk8lk Hrm 0Ysh Gt79v5F;aw3d2o5up;aw3in,o84;rgeAsG;e 1herF;aVeThRiNoMrIuGypL;ckFrn G;d2in,o45up;aHiGot0y 2O;ckleEp 8A;ckEdG;e 0N;neEp 2Zs4Z;ck IdHe Gghte5Yme0p o0Ire0;aw3ba4d2in,up;e 6Hy 1;by,oC;ink Grow 6U;ba4ov6up;aGe 6Fll5G;m 1r 53;ckAke Hlk G;ov6shit,u5H;aGba4d2in,o3Pup;ba4ft6p5Mw3;a0Lc0Ke0Eh0Ai07l03m02n01o00pVquar4XtMuKwG;earIiG;ngHtch G;aw3ba4o7O; by;ck Git 1m 1ss0;in,o7Bup;aMe10iLoJrHuG;c36d2O;aigh22iG;ke 6Wn3L;p Grm24;by,in,oC;n31r 1tc44;c30mp0nd Gr7Fve9y 1;ba4d2up;ar2YeJiIlHrGurA;ingAuc8;a3Rit 5R;l17n 1;e69ll0;ber 1rt0und like;ap 56ow D;ash 5Woke0;eep HiGow 7;c1Lp 1;in,oG;ff,v6;de12gn HngGt 5Rz8; al5Mle0;in,o5up;aIoGu5A;ot Gut0w 6U;aw3ba4f3SoC;c2GdeFk5Pve9;e Kll1Gnd Jrv8tG; Gtl4W;d2f5Bin,o5upG;!on;aw3ba4d2in,o2Nup;o6Dto;al5Iout0rap5I;il9v8;aTeQiPoLuG;b 5Ble0n Gstl8;aIba4d2inHoGt3Lu0X;ut,v6;!to;c2HrBw3;ll Iot HuG;g33nd9;a2Hf3Ao5;arBin,o5;ng 5Ip9;aGel9inFnt0;c5Rd G;o3Bup;c1Tt0;aUeTiRlPoNrKsyc2RuG;ll It G;aGba4d2in,o1Zt3Rup;p3Ww3;ap3Vd2in,o5t3Pup;attleAess HiJoG;p 1;ah1Zon;iGp 5Wr4CurEwer 5W;nt0;ay4SuG;gFmp 7;ck Gg0leAn 7p4P;o1Oup;el 4ZncilF;c4Hir 2Xn0ss ItHy G;ba4oC; d2c2E;aw3ba4in,o1J;pGw4C;e4Bt D;arrowEerd0oG;d9teE;aQeNiMoIuG;ddl8lG;l 3W;c12nkeyIp 7uth9ve G;aGd2in,o5up;l41w3; wi3Y;ss0x 1;asur8lHss G;a1Oup;t 7;ke Hn 7rGs1Xx0;k 7ry9;do,o4Vup;aWeRiMoGuck0;aKc3Ug JoGse0;k Gse3S;aft6ba4d2forw2Sin4Iov6uG;nd6p;in,o0V;d 7;e 04ghtJnIsHvG;e 3E;ten 4Y;e 1k 1; 1e3J;ave It HvelG; o4H;d2go,in,o5up;in,oG;pen,ut;c8p 1sh GtchAugh9y26;in43o5;eHick9nock G;d2o4Aup;eGyF;l 2Yp G;aw3ba4d2fYin,o0Dto,up;aIoHuG;ic8mpF;ke3BtE;c3Kzz 1;aVeQiNoKuG;nHrrGsh 7;y 1;kerEt G;arBd2;lGneFrse34;d Ge 1;ba4d2fast,o04up;de Ht G;ba4on,up;aw3o5;aGlp0;d Il 2Gr Gt 1;fGof;rom;in,oWu1K;cJm 1nHve Gz2B;it,to;d Gg 2MkerJ;d2in,o5;k 1;aUeOive Mloss 27oIrHunG; f0O;in3Now 2H; Gof 26;aHb1Fit,oGrBt0Qu1A;ff,n,v6;bo5ft6hMw3;aw3ba4d2in,oGrise,up,w3;ff,n,ut;ar 7ek0t G;aHb19d2in,oGrBup;ff,n,ut,v6;cHhGl23rBt,w3;ead;ross;d aHnG;g 1;bo5;a0Ae03iUlQoMrIuG;ck Ge28;arBup;eHighten GownAy 1;aw3oC;eGshe1U; 1z8;lIol G;aGwi1N;bo5rB;d 7low 1;aHeGip0;sh0;g 7ke0mGrGttenE;e 2Y;gNlLnJrHsGzzle0;h 2W;e Gm 1;aw3ba4up;d0isG;h 1;e Gl 1G;aw3fLin,o5;ht ba4ure0;eLnHsG;s 1;cId G;fGoC;or;e D;dYl 1;cKll Grm0t13;ap07bId2in,oHtG;hrough;ff,ut,v6;a4ehi27;e G;d2oCup;a0Ldge0nd 0Py8;oJrG;aHess 7op G;aw3bWin,o1U;gAwA; 0Iubl0Y;a00hXleaWoJrGut 16;ackAeep Goss D;by,d2in,oGup;n,ut;me JoHuntG; o1W;k 7l G;d2oC;aMbLforJin,oItHuG;nd6;ogeth6;n,ut,v6;th,wG;ard;a4y;pGrBw3;art;n 7;eGipF;ck Der G;on,up;lNncel0rKsItch HveF; in;o1Eup;h Dt G;doubt,oC;ry HvG;e 02;aw3o19;l HmE; d2;aGba4d2o16up;rBw3;a0Me0El07oYrLuG;bblIcklZil05lk 7ndlZrGst VtHy 16zz9;n 0AsG;t D;e G;ov6;anReaPiHush G;oCup;ghLng G;aIba4d2fGin,o5up;orG;th;bo5lGrBw3;ong;teG;n 1;k G;d2in,o5up;ch0;arNg 7iLn8oJssIttlHunce Gx D;aw3ba4;e 7; arB;k Dt 1;e 1;l 7;d2up;d 1;aLeed0oGurt0;cIw G;aw3ba4d2o5up;ck;k G;in,oX;ck0nk0st9; oLaJef 1nd G;d2ov6up;er;up;r0t G;d2in,oQup;ff,nG;to;ck Mil0nIrgHsG;h D;ainAe D;g DkA; on;in,o5; o5;aw3d2oGup;ff,ut;ay;cPdLsk Iuction9; oC;ff;arBo5;ouG;nd;d G;d2oGup;ff,n;own;t G;o5up;ut", | ||
"PhrasalVerb": "true¦0:81;1:7Q;2:8E;3:84;4:7J;5:8H;6:7P;7:7E;8:7C;9:86;A:7Z;B:89;C:87;D:80;E:6L;F:6J;G:6C;a8Lb74c66d61e60f4Yg4Hh3Wiron0j3Sk3Nl34m2Qn2Oo2Mp23quietEr1Os0HtXuVvacuum 1wKyammerAzH;ero Dip IonH;e0k0;by,up;aOeJhIiHor7Writ38;mp0n35pe0r8s8;eel Dip 8Q;aJiHn2T;gh Hrd0;in,up;n Dr H;d2in,oF;it 6Hk8lk Irm 0Zsh Ht7Av5F;aw3d2o5up;aw3in,o85;rgeAsH;e 1herG;aWeUhSiOoNrJuHypM;ckGrn H;d2in,oFup;aIiHot0y 2P;ckleEp 8B;ckEdH;e 0O;neEp 30s4Z;ck JdIe Hghte5Yme0p o0Jre0;aw3ba4d2in,up;e 6Iy 1;by,oC;ink Hrow 6V;ba4ov6up;aHe 6Gll5G;m 1r 53;ckAke Ilk H;ov6shit,u5H;aHba4d2in,oFup;ba4ft6p5Mw3;a0Mc0Le0Fh0Bi08l04m03n02o01pWquar4XtNuLwH;earJiH;ngItch H;aw3ba4o7P; by;ck Hit 1m 1ss0;in,o7Cup;aNe11iMoKrIuH;c37d2P;aigh23iH;ke 6Xn3L;p Hrm25;by,in,oC;n32r 1tc44;c31mp0nd Hr7Gve9y 1;ba4d2up;ar2ZeKiJlIrHurA;ingAuc8;a3Rit 5S;l18n 1;e6All0;ber 1rt0und like;ap 56ow D;ash 5Xoke0;eep IiHow 7;c1Mp 1;in,oH;ff,v6;de13gn IngHt 5Sz8; al5Nle0;in,o5up;aJoHu5B;ot Hut0w 6V;aw3ba4f3SoC;c2HdeGk5Qve9;e Lll1Hnd Krv8tH; Htl4W;d2f5Cin,o5upH;!on;aw3ba4d2in,o2Nup;o6Eto;al5Jout0rap5J;il9v8;aUeRiQoMuH;b 5Cle0n Hstl8;aJba4d2inIoHt3Lu0Y;ut,v6;!to;c2HrBw3;ll Jot IuH;g33nd9;a2Hf3Ao5;arBin,o5;ng 5Jp9;aHel9inGnt0;c5Sd H;o3Bup;c1Ut0;aVeUiSlQoOrLsyc2RuH;ll Jt H;aHba4d2in,oFt3Rup;p3Ww3;ap3Vd2in,o5t3Pup;attleAess IiKoH;p 1;ah1Zon;iHp 5Xr4DurEwer 5X;nt0;ay4TuH;gGmp 7;ck Hg0leAn 7p4Q;oFup;el 50ncilG;c4Iir 2Xn0ss JtIy H;ba4oC; d2c2E;aw3ba4in,oF;pHw4D;e4Ct D;arrowEerd0oH;d9teE;aReOiNoJuH;ddl8lH;l 3X;c13nkeyJp 7uth9ve H;aHd2in,o5up;l42w3; wi3Z;ss0x 1;asur8lIss H;a1Oup;t 7;ke In 7rHs1Xx0;k 7ry9;do,o4Wup;aXeSiNoHuck0;aLc3Vg KoHse0;k Hse3T;aft6ba4d2forw2Sin4Jov6uH;nd6p;in,oF;d 7;e 05ghtKnJsIvH;e 3F;ten 4Z;e 1k 1; 1e3K;ave Jt IvelH; o4I;d2go,in,o5up;in,oH;pen,ut;c8p 1sh HtchAugh9y26;in44o5;eIick9nock H;d2o4Bup;eHyG;l 2Zp H;aw3ba4d2fZin,oFto,up;aJoIuH;ic8mpG;ke3CtE;c3Lzz 1;aWeRiOoLuH;nIrrHsh 7;y 1;kerEt H;arBd2;lHneGrse35;d He 1;ba4d2fast,o04up;de It H;ba4on,up;aw3o5;aHlp0;d Jl 2Hr Ht 1;fHof;rom;in,oWu1K;cKm 1nIve Hz2C;it,to;d Hg 2NkerK;d2in,o5;k 1;aUeOive Nloss 28oJrIunH; f0O;in3Oow 2I; Hof 27;aIb1Fit,oHrBt0Qu1A;ff,n,v6;bo5ft6hMw3;aw3ba4d2in,oFrise,up,w3;ar 7ek0t H;aIb1Ad2in,oHrBup;ff,n,ut,v6;cIhHl25rBt,w3;ead;ross;d aInH;g 1;bo5;a0Be04iVlRoNrJuH;ck He2A;arBup;eIighten HownAy 1;aw3oC;eHshe1W; 1z8;lJol H;aHwi1P;bo5rB;d 7low 1;aIeHip0;sh0;g 7ke0mHrHttenE;e 30;gOlMnKrIsHzzle0;h 2Y;e Hm 1;aw3ba4up;d0isH;h 1;e Hl 1I;aw3fMin,o5;ht ba4ure0;eMnIsH;s 1;cJd H;fHoC;or;e D;dZl 1;cLll Hrm0t15;ap08bJd2in,oItH;hrough;ff,ut,v6;a4ehi29;e H;d2oCup;a0Ndge0nd 0Ry8;oKrH;aIess 7op H;aw3bXin,o1W;gAwA; 0Kubl10;a01hYleaXoKrHut 18;ackAeep Hoss D;by,d2in,oHup;n,ut;me KoIuntH; o1Y;k 7l H;d2oC;aNbMforKin,oJtIuH;nd6;ogeth6;n,ut,v6;th,wH;ard;a4y;pHrBw3;art;n 7;eHipG;ck Der H;on,up;lPncel0rLsJtch IveG; in;o1Gup;h Dt H;doubt,oC;ry IvH;e 04;aw3oF;ff,n,ut;l ImE; d2;aHba4d2o17up;rBw3;a0Ne0Fl08oZrMuH;bblJckl00il06lk 7ndl00rHst WtIy 17zz9;n 0BsH;t D;e H;ov6;anSeaQiIush H;oCup;ghMng H;aJba4d2fHin,o5up;orH;th;bo5lHrBw3;ong;teH;n 1;k H;d2in,o5up;ch0;arOg 7iMn8oKssJttlIunce Hx D;aw3ba4;e 7; arB;k Dt 1;e 1;l 7;d2up;d 1;aMeed0oHurt0;cJw H;aw3ba4d2o5up;ck;k H;in,oY;ck0nk0st9; oMaKef 1nd H;d2ov6up;er;up;r0t H;d2in,oRup;ff,nH;to;ck Nil0nJrgIsH;h D;ainAe D;g DkA; on;in,o5; o5;aw3d2oHup;ff,ut;ay;cQdMsk Juction9; oC;ff;arBo5;ouH;nd;d H;d2oHup;ff,n;own;t H;o5up;ut", | ||
"Verb": "true¦born,cannot,gonna,has,keep tabs,m0;ake sure,sg", | ||
@@ -24,10 +25,10 @@ "Demonym": "true¦0:15;1:12;a0Vb0Oc0Dd0Ce08f07g04h02iYjVkTlPmLnIomHpEqatari,rCs7t5u4v3welAz2;am0Gimbabwe0;enezuel0ietnam0I;gAkrai1;aiwTex0hai,rinida0Ju2;ni0Prkmen;a5cotti4e3ingapoOlovak,oma0Spaniard,udRw2y0W;ede,iss;negal0Cr09;sh;mo0uT;o5us0Jw2;and0;a2eru0Fhilippi0Nortugu07uerto r0S;kist3lesti1na2raguay0;ma1;ani;ami00i2orweP;caragu0geri2;an,en;a3ex0Lo2;ngo0Drocc0;cedo1la2;gasy,y07;a4eb9i2;b2thua1;e0Cy0;o,t01;azakh,eny0o2uwaiI;re0;a2orda1;ma0Ap2;anO;celandic,nd4r2sraeli,ta01vo05;a2iB;ni0qi;i0oneU;aiAin2ondur0unO;di;amEe2hanai0reek,uatemal0;or2rm0;gi0;ilipino,ren8;cuadoVgyp4mira3ngli2sto1thiopi0urope0;shm0;ti;ti0;aPominUut3;a9h6o4roat3ub0ze2;ch;!i0;lom2ngol5;bi0;a6i2;le0n2;ese;lifor1m2na3;bo2eroo1;di0;angladeshi,el6o4r3ul2;gaE;azi9it;li2s1;vi0;aru2gi0;si0;fAl7merBngol0r5si0us2;sie,tr2;a2i0;li0;genti2me1;ne;ba1ge2;ri0;ni0;gh0r2;ic0;an", | ||
"Possessive": "true¦any2its,my,no4o0somet3their1yo0;ur0;!s;o1t0;hing;ne", | ||
"Noun|Verb": "true¦0:7R;1:6J;2:7N;3:7Y;4:7X;5:81;6:6W;7:7H;a7Hb6Sc5Rd55e4Xf4Ag40h3Si3Mj3Lk3Jl39m30n2Wo2Sp1Zques7Jr1Bs05tRuPvKwAy9z8;ip,o6A;awn,e1Uie4P;aFeaEhCiAo8re7J;nd0r8;k,ry;mp,n8pe,re,sh,tne81;!d,g;e6Ei8;p,st6;r,th0;it,r8s4t2ve,x;ehou1ra80;aBiAo8;i8lunte0te,w;ce,d;be,ew,s6V;cuum,l36;p8sh0;da4gra4Wlo4T;aJeIhrHiGoFrBu9wi8y4J;n,st;n8rn;e,n5Z;aAe9i8u7;bu4ck,gg0m,p;at,nd;ck,de,in,nsf0p,v5V;ll,ne,r3Oss,t73u2;ck,e,me,p,re;e4Iow,u7;ar,e,st;g,l8rg5Zs4;k,ly;a0Cc07e04hZiXkVlTmSnRou69pNtDu9w8;ear,it2;b1Vit,m,pp9r8spe5;ge,pri1vey;l8o58;e55y;aFeEiDoBr9u8y6;dy,ff,mb6;a69e8i4C;am,ss,t2;cking,p,r8;e,m;ck,t2;m,p;ck,in,ke,ll,mp,nd,r8te,y;!e,t;aAeed,i9la4Hons6Jr8y;ay,e3Xink6u3;n,r6Fte;n,rk;ee1Cow;e0Di6o3Z;eep,i8;ce,p,t;ateboa5Wi8;!p;de,gn8ze;!al;aBeAi9o8;ck,p,w;ft,p,v0;d,i2Y;pe,re;a9ed,n8rv13t;se,t1U;l,r2t;aBhedu6oAr8;at2e8;en,w;re,ut;le,n,r0G;crifi3il;aTeCiBoAu8;b,in,le,n,s8;h,t;a7ck,ll,ot;de,ng,p,s19;as5BcMdo,el,fKgJje5lImGnFo0SpDque7sAturn,v8wa59;e8i1F;al,r1;er5Go9t,u8;lt,me;l5Ert;air,ea8ly,o3V;l,t;dezvo22t;a8edy;ke,rk;ea1i3B;a4Xist0r4A;act5Borm,u8;nd,se;a8o4Uru4N;ll;ck,i1ke,l44n8tS;ge,k;aXeUhSiPlLoHr9u8;mp,n2rcha1sh;ai1eDiCo8u3H;be,ceAdu3gr8je5mi1te7;am8e5B;!me;ed,ss;ce,de;s8y;er4Rs;iAl8ol,p,re,s2Ow0;i8l;ce,sh;nt,s4F;a9e26u8;g,n3S;ce,n8y;!t;ck,l9n8pe,t,vot;!e;e,ot;a1o8;ne,tograph;ak,e9n,r8t;fu3Sm3V;!l;cka3Hi9n,rt8ss,t2u1;!y;nt,r;bAff0il,o9r8utli2Q;d0ie4Q;ze;je5;a3JeAo8;d,t8;e,i3;ed,gle5rd,t;aDeBiAo9u8;rd0;d2Rnit42p,ve;lk,n2Vrr41ss,x;asu0Yn3Mr8ss;ge,it;il,n9p,rk2Ws8t2;h,k;da4oeuv0U;aEeBiAo8ump;a8bby,ck,g,ok,ve;d,n;cen1ft,m36nCst;a9c0Av8;el,y;ch,d,p,se;b9c8nd,t2un2;e,k;el,o22;e2Ai8no3A;ck,ll,ss;am,o14ui3;mpCn9r35ss8;ue;cr17dex,flu9ha6k,se1Ttervi8voi3;ew;en3;a5le1O;aCeAi9o8u3R;ld,no1Rok,pe,r1st,u1;ghlight,ke,re,t;a8lp;d,t;nd9r8te;bo2Zm,ne3Gve7;!le;aGeek,lo3EoFrAu8;ar8e3Di0Ln;antee,d;aAi9o8umb6;om,u2A;nd,p;d8sp;e,ua4;of,ssip;in,me,ng,s,te,ze;aTePiKlHoErAu8;el,n8zz;c2Ed;a9o8y;st,wn;c8me;tuM;c9g,ol,r8;ce,e1Mm;us;a9e0Iip,o8y;at,od,w;g,re,sh,vo0Y;eBgAl9n8re,sh,t,x;an3i0E;e,m,t0;ht,uC;ld;a9e8n3;d,l;r,tu8;re;ce,il,ll,rm,vo21;cho,nEsCx8ye;cAerci1hib1Kp8tra5;eri8o0I;en3me2J;el,han15;ca8tima4;pe;count0d,gine0vy;aReLiFoDr9u8ye;b,mp,pli24;aAe9i8;ft,nk,ve;am,ss;ft,in;cu04d0Vubt,wnlo8;ad;p,sAv8;e,i8or3;de;char0Qli9p8;at2lay,u4;ke;al,ba4cBfeAl9ma0Vpos0Zsi8tail;gn,re;ay,ega4;at,ct;liVr8;ea1;ma0Hn3r8te;e,t;a05ent04hXlUoErAu8;be,r8t;e,l;aft,eAo9u8y;sh;p,ss,wd;d0Lep;de,in,lLmFnAok,py,re,st,u8v0;gh,n8p6;sTt;ceAdu5glomeBstru5t8veG;a5r8;a7ol;nt8rn;ra4;biCfoBmAp8;le8ou07romi1;me1B;a05e1Au4;rt;ne;lap1o8;r,ur;a9i8;ck,p;im,w;a9e8ip;at,ck,er;iBllenNmpi08n9r8uffe0E;ge,m,t;ge,n8;el;n,r;er,re;ke,ll,mp,p,r9sh,t2u1ve;se;d,e;aSePiOlLoHrBu8ypa0M;bb6ck6dg9ff0l8rn,st,zz;ly;et;anCeaBi9oad8;ca7;be,d8;ge;ch,k;ch,d;aAmb,ne,o9ss,tt6x,ycott;le;k,st,t;rd,st;a9e8itz,oN;nd;me;as,d,ke,te;a9nef8t;it;r,t;il,lan3nArga9s8;e,h;in;!d,g,k;cZdRffilQge,iPlt0nMppJrFssDttBuc9wa8;rd;ti8;on;a8empt;ck;i7ocK;st;ch9mo8;ur;!i8;ve;e9roa2;ch;al;ch8sw0;or;er;d,m,r;ia4;dCv8;an3o8;ca4;te;ce;i5re8;ss;ct;c8he,t;eAo8;rd,u8;nt;nt,ss", | ||
"Noun|Verb": "true¦0:7R;1:6J;2:7N;3:7Y;4:7X;5:81;6:6W;7:7H;a7Hb6Sc5Rd55e4Xf4Ag40h3Si3Mj3Lk3Jl39m30n2Wo2Sp1Zques7Jr1Bs05tRuPvKwAy9z8;ip,o6A;awn,e1Uie4P;aFeaEhCiAo8re7J;nd0r8;k,ry;mp,n8pe,re,sh,tne81;!d,g;e6Ei8;p,st6;r,th0;it,r8s4t2ve,x;ehou1ra80;aBiAo8;i8lunte0te,w;ce,d;be,ew,s6V;cuum,l36;p8sh0;da4gra4Wlo4T;aJeIhrHiGoFrBu9wi8y4J;n,st;n8rn;e,n5Z;aAe9i8u7;bu4ck,gg0m,p;at,nd;ck,de,in,nsf0p,v5V;ll,ne,r3Oss,t73u2;ck,e,me,p,re;e4Iow,u7;ar,e,st;g,l8rg5Zs4x;k,ly;a0Cc07e04hZiXkVlTmSnRou69pNtDu9w8;ea6Dit2;b1Vit,m,pp9r8spe5;ge,pri1vey;l8o58;e55y;aFeEiDoBr9u8y6;dy,ff,mb6;a69e8i4C;am,ss,t2;cking,p,r8;e,m;ck,t2;m,p;ck,in,ke,ll,mp,nd,r8te,y;!e,t;aAeed,i9la4Hons6Jr8y;ay,e3Xink6u3;n,r6Fte;n,rk;ee1Cow;e0Di6o3Z;eep,i8;ce,p,t;ateboa5Wi8;!p;de,gn8ze;!al;aBeAi9o8;ck,p,w;ft,p,v0;d,i2Y;pe,re;a9ed,n8rv13t;se,t1U;l,r2t;aBhedu6oAr8;at2e8;en,w;re,ut;le,n,r0G;crifi3il;aTeCiBoAu8;b,in,le,n,s8;h,t;a7ck,ll,ot;de,ng,p,s19;as5BcMdo,el,fKgJje5lImGnFo0SpDque7sAturn,v8wa59;e8i1F;al,r1;er5Go9t,u8;lt,me;l5Ert;air,ea8ly,o3V;l,t;dezvo22t;a8edy;ke,rk;ea1i3B;a4Xist0r4A;act5Borm,u8;nd,se;a8o4Uru4N;ll;ck,i1ke,l44n8tS;ge,k;aXeUhSiPlLoHr9u8;mp,n2rcha1sh;ai1eDiCo8u3H;be,ceAdu3gr8je5mi1te7;am8e5B;!me;ed,ss;ce,de;s8y;er4Rs;iAl8ol,p,re,s2Ow0;i8l;ce,sh;nt,s4F;a9e26u8;g,n3S;ce,n8y;!t;ck,l9n8pe,t,vot;!e;e,ot;a1o8;ne,tograph;ak,e9n,r8t;fu3Sm3V;!l;cka3Hi9n,rt8ss,t2u1;!y;nt,r;bAff0il,o9r8utli2Q;d0ie4Q;ze;je5;a3JeAo8;d,t8;e,i3;ed,gle5rd,t;aDeBiAo9u8;rd0;d2Rnit42p,ve;lk,n2Vrr41ss,x;asu0Yn3Mr8ss;ge,it;il,n9p,rk2Ws8t2;h,k;da4oeuv0U;aEeBiAo8ump;a8bby,ck,g,ok,ve;d,n;cen1ft,m36nCst;a9c0Av8;el,y;ch,d,p,se;b9c8nd,t2un2;e,k;el,o22;e2Ai8no3A;ck,ll,ss;am,o14ui3;mpCn9r35ss8;ue;cr17dex,flu9ha6k,se1Ttervi8voi3;ew;en3;a5le1O;aCeAi9o8u3R;ld,no1Rok,pe,r1st,u1;ghlight,ke,re,t;a8lp;d,t;nd9r8te;bo2Zm,ne3Gve7;!le;aGeek,lo3EoFrAu8;ar8e3Di0Ln;antee,d;aAi9o8umb6;om,u2A;nd,p;d8sp;e,ua4;of,ssip;in,me,ng,s,te,ze;aTePiKlHoErAu8;el,n8zz;c2Ed;a9o8y;st,wn;c8me;tuM;c9g,ol,r8;ce,e1Mm;us;a9e0Iip,o8y;at,od,w;g,re,sh,vo0Y;eBgAl9n8re,sh,t,x;an3i0E;e,m,t0;ht,uC;ld;a9e8n3;d,l;r,tu8;re;ce,il,ll,rm,vo21;cho,nEsCx8ye;cAerci1hib1Kp8tra5;eri8o0I;en3me2J;el,han15;ca8tima4;pe;count0d,gine0vy;aReLiFoDr9u8ye;b,mp,pli24;aAe9i8;ft,nk,ve;am,ss;ft,in;cu04d0Vubt,wnlo8;ad;p,sAv8;e,i8or3;de;char0Qli9p8;at2lay,u4;ke;al,ba4cBfeAl9ma0Vpos0Zsi8tail;gn,re;ay,ega4;at,ct;liVr8;ea1;ma0Hn3r8te;e,t;a05ent04hXlUoErAu8;be,r8t;e,l;aft,eAo9u8y;sh;p,ss,wd;d0Lep;de,in,lLmFnAok,py,re,st,u8v0;gh,n8p6;sTt;ceAdu5glomeBstru5t8veG;a5r8;a7ol;nt8rn;ra4;biCfoBmAp8;le8ou07romi1;me1B;a05e1Au4;rt;ne;lap1o8;r,ur;a9i8;ck,p;im,w;a9e8ip;at,ck,er;iBllenNmpi08n9r8uffe0E;ge,m,t;ge,n8;el;n,r;er,re;ke,ll,mp,p,r9sh,t2u1ve;se;d,e;aSePiOlLoHrBu8ypa0M;bb6ck6dg9ff0l8rn,st,zz;ly;et;anCeaBi9oad8;ca7;be,d8;ge;ch,k;ch,d;aAmb,ne,o9ss,tt6x,ycott;le;k,st,t;rd,st;a9e8itz,oN;nd;me;as,d,ke,te;a9nef8t;it;r,t;il,lan3nArga9s8;e,h;in;!d,g,k;cZdRffilQge,iPlt0nMppJrFssDttBuc9wa8;rd;ti8;on;a8empt;ck;i7ocK;st;ch9mo8;ur;!i8;ve;e9roa2;ch;al;ch8sw0;or;er;d,m,r;ia4;dCv8;an3o8;ca4;te;ce;i5re8;ss;ct;c8he,t;eAo8;rd,u8;nt;nt,ss", | ||
"Actor": "true¦aJbGcFdCfAgardenIh9instructPjournalLlawyIm8nurse,opeOp5r3s1t0;echnCherapK;ailNcientJoldiGu0;pervKrgeon;e0oofE;ceptionGsearC;hotographClumbColi1r0sychologF;actitionBogrammB;cem6t5;echanic,inist9us4;airdress8ousekeep8;arm7ire0;fight6m2;eputy,iet0;ici0;an;arpent2lerk;ricklay1ut0;ch0;er;ccoun6d2ge7r0ssis6ttenda7;chitect,t0;ist;minist1v0;is1;rat0;or;ta0;nt", | ||
"Honorific|Noun": "true¦aRbNcGdFexcellency,field marEjudge,king,lCm9officOp5queen,r2s0taoiseach,vice4;e0ultJ;cretary,rgeaB;abbi,e0;ar0verend; adN;astGr0;eside6i0ofessF;me ministGnce0;!ss;a1is0;sus,tD;gistrate,r2yA;ady,ieutena0ord;nt;shE;oct6utcheA;aptain,hance4o0;lonel,mmand6n0rporBunci3;gress0stable;m0wom0;an;ll0;or;aron1rigadi0;er;!e0;ss;d0yatullah;mir0;al", | ||
"Pronoun": "true¦'em,elle,h3i2me,she4th0us,we,you;e0ou;m,y;!l,t;e0im;!'s", | ||
"Singular": "true¦0:4I;1:59;2:58;3:4V;4:4T;5:4O;6:4S;7:52;8:4J;a4Sb47c3Ad2Xe2Qf2Gg25h1Tin1Qjel3k1Ol1Lm1Bn18o14p0Nqu0Mr0DsUtJuGvCw9;a9ha3Com2C;f0i4Wt0Ey9;! arou4F;arn4GeAo9;cabu07l53;gKr9;di6t1K;nc35p2SrAs 9;do3Ss56;bani2in1; rex,aIeHhGiEoDrBuAv9;! show;m2Jn5rntJto16;agedy,ib9o45;e,u2P;p5rq3E;c,de,er,m9;etE;ere,i8;am,mp39;ct5le4x return;aQcOeNhMi2kKoJtEuBy9;ll9n27st4P;ab2P;bAnri1Aper bowl,r9;f0roga2;st3Dtot1;aCepBipe3Qo1BrAudent9;! lo1K;ang0i8;fa1Fmo1F;ff0t30;loi41meo16;elet13i9;er,ll,rm3L;ack,or48;ab0Ucurity gu2D;e4ho9;l2Zol;la32;av0WeChetor5iAo9;de4om;te,v9;erb0N;bCcBf9publ5r0Ospi2;er9orm0;e4r1;it1ord label;a2u41;estion mark,ot28;aMeKhJiHlFort1rAu9yram1C;ddi8ppy,rpo0J;eCie3Ho9;bl3Us9;pe6t9;a2itu2;diction,mi0Eroga7ss relea0E;a9ebisci2;q27te,y0;cn5e9g;!r;armaci38otocoH;dest1ncil,r9t1;cen3Gsp3H;nAr2Rte9;!nt;el2Rop3;bj3DcApia2rde1thers,ve9wn0;n,rview;cu9e0F;pi0;aAit24ot9umb0;a25hi8;n29rra7;aFeEiDoAu9é0G;m0Sr1;mAnopo3pQrni8sq1Pt9u13;h0i35;!my;li0Wn09;d5nu,t1;mm1nAte9yf3;ri1;!d10;aurea2iAu9;ddi2nch;ght bulb,p0C;ey9ittL;!no2;cAdices,itia7se6te4vert9;eb1L;en7ide4;aJeaFighDo9uman right,ygie10;le,meAsp1Jtb9;ed;! r9;un; scho12ri9;se;dAv9;en; start,pho9;ne;m,ndful,ze;aHeFirl1KlaQoErAu9;l3y;an9enadi0id;a16d9; slam,fa9mo9;th0;d,lf0;lat0Dntlem9;an;df3r9;l5n1D;aHeGiElDol3rAun9;er1;ee market,iAon9;ti0;e16ga2;ame,ow0u2;nan9ref3;ci0;lla,t14;br5mi3n0Uth0;conoEffDgg,lecto0MnCs1Xth5venBxAyel9;id;ampTempl0Ite4;i8t;er1K;e6i1J;my;adKeGiDoAr9u0P;agonf3i0;cAg1Fi3or,ssi0wn9;si0M;to0BumenB;ale6gniAnn0s9vide0O;conte4incen7tri6;ta0A;aBc1fAni1te9;c7rre4;ault 05err1;th;!dy;aXeVhOiNlLoDr9;edit cBit5uc9;ib9;le;ard;efficFke,lDmmuniqNnBpi0rr1t11u9yo2;ri0s9;in;ne6s9;ervatoVuI;ic,lQum9;ni0L;ie4;er9ie4;gy,ic;ty,vil wL;aDeqCocoBr9;istmas car9ysanthemum;ol;la2;ue;ndeli0racter9;ist5;ili8llDr9;e1tifica2;hi0naFpErCshi0t9ucus;erpi9hedr1;ll9;ar;bohyd9ri0;ra2;it1;ry;aPeOiMlemLoHrDu9;ddhiYnBr9tterf3;glar9i1;!y;ny;eakBiAo9;!th0;de;faRthroC;dy,g,roBwl,y9;!frie9;nd;ugh;ish;cyc9oH;liK;an,l3;nki8r9;!ri0;er;ng;cTdNllLnIppeti2rray,sFtBu9;nt,to9;psy;hAt5;ic;ie9le2;st;ce4pe6;ct;nt;ecAoma3tiA;ly;do2;er9y;gy; hominDjAvan9;tage;ec7;ti9;ve;em;cru1eAqui9;tt1;ta2;te;al", | ||
"Preposition": "true¦'o,-,aLbIcHdGexcept,fFinEmid,notwithstandiRoCpSqua,sBt7u4v2w0;/o,hereNith0;!in,oR;ersus,i0;a,s-a-vis;n1p0;!on;like,til;h0ill,owards;an,r0;ough0u;!oI;ans,ince,o that;',f0n1ut;!f;!to;or,rom;espite,own,u3;hez,irca;ar1e0oAy;sides,tween;ri6;',bo7cross,ft6lo5m3propos,round,s1t0;!op;! long 0;as;id0ong0;!st;ng;er;ut", | ||
"Singular": "true¦0:4I;1:59;2:58;3:4V;4:4T;5:4O;6:4S;7:52;8:4J;a4Sb47c3Ad2Xe2Qf2Gg25h1Tin1Qjel3k1Ol1Km1An17o13p0Mqu0Lr0CsTtJuGvCw9;a9ha3Com2C;f0i4Wt0Dy9;! arou4F;arn4GeAo9;cabula41l53;gKr9;di6t1K;nc35p2SrAs 9;do3Ss56;bani2in1; rex,aHeGhi8iEoDrBuAv9;! show;m2Jn5rntIto15;agedy,ib9o45;e,u2P;p5rq3E;c,de,er,m9;etD;am,mp3A;ct5le4x return;aQcOeNhMi2kKoJtEuBy9;ll9n28st4Q;ab2Q;bAnri1Bper bowl,r9;f0roga2;st3Etot1;aCepBipe3Ro1CrAudent9;! lo1L;ang0i8;fa1Gmo1G;ff0t31;loi42meo17;elet14i9;er,ll,rm3M;ack,or49;ab0Vcurity gu2E;e4ho9;l30ol;la33ndwi0J;av0XeChetor5iAo9;de4om;te,v9;erb0O;bCcBf9publ5r0Pspi2;er9orm0;e4r1;it1ord label;a2u42;estion mark,ot29;aMeKhJiHlFort1rAu9yram1D;ddi8ppy,rpo0K;eCie3Io9;bl3Vs9;pe6t9;a2itu2;diction,mi0Froga7ss relea0F;a9ebisci2;q28te,y0;cn5e9g;!r;armaci39otocoH;dest1ncil,r9t1;cen3Hsp3I;nAr2Ste9;!nt;el2Sop3;bj3EcApia2rde1thers,ve9wn0;n,rview;cu9e0G;pi0;aAit25ot9umb0;a26hi8;n2Arra7;aFeEiDoAu9é0H;m0Tr1;mAnopo3pRrni8sq1Qt9u14;h0i36;!my;li0Xn0A;d5nu,t1;mm1nAte9yf3;ri1;!d11;aurea2iBu9;ddi2n9;ch;ght bulb,p0C;ey9ittL;!no2;cAdices,itia7se6te4vert9;eb1L;en7ide4;aJeaFighDo9uman right,ygie10;le,meAsp1Jtb9;ed;! r9;un; scho12ri9;se;dAv9;en; start,pho9;ne;m,ndful,ze;aHeFirl1KlaQoErAu9;l3y;an9enadi0id;a16d9; slam,fa9mo9;th0;d,lf0;lat0Dntlem9;an;df3r9;l5n1D;aHeGiElDol3rAun9;er1;ee market,iAon9;ti0;e16ga2;ame,ow0u2;nan9ref3;ci0;lla,t14;br5mi3n0Uth0;conoEffDgg,lecto0MnCs1Xth5venBxAyel9;id;ampTempl0Ite4;i8t;er1K;e6i1J;my;adKeGiDoAr9u0P;agonf3i0;cAg1Fi3or,ssi0wn9;si0M;to0BumenB;ale6gniAnn0s9vide0O;conte4incen7tri6;ta0A;aBc1fAni1te9;c7rre4;ault 05err1;th;!dy;aXeVhOiNlLoDr9;edit cBit5uc9;ib9;le;ard;efficFke,lDmmuniqNnBpi0rr1t11u9yo2;ri0s9;in;ne6s9;ervatoVuI;ic,lQum9;ni0L;ie4;er9ie4;gy,ic;ty,vil wL;aDeqCocoBr9;istmas car9ysanthemum;ol;la2;ue;ndeli0racter9;ist5;ili8llDr9;e1tifica2;hi0naFpErCshi0t9ucus;erpi9hedr1;ll9;ar;bohyd9ri0;ra2;it1;ry;aPeOiMlemLoHrDu9;ddhiYnBr9tterf3;glar9i1;!y;ny;eakBiAo9;!th0;de;faRthroC;dy,g,roBwl,y9;!frie9;nd;ugh;ish;cyc9oH;liK;an,l3;nki8r9;!ri0;er;ng;cTdNllLnIppeti2rray,sFtBu9;nt,to9;psy;hAt5;ic;ie9le2;st;ce4pe6;ct;nt;ecAoma3tiA;ly;do2;er9y;gy; hominDjAvan9;tage;ec7;ti9;ve;em;cru1eAqui9;tt1;ta2;te;al", | ||
"Preposition": "true¦-,aMbJcIdHexcept,fFinEmid,notwithstandiSoCpTqua,sBt7u4v2w0;/o,hereOith0;! whEin,oS;ersus,i0;a,s-a-vis;n1p0;!on;like,til;h0ill,owards;an,r0;ough0u;!oJ;ans,ince,o that,uch D;f0n1ut;!f;!to;or,r0;om;espite,own,u3;hez,irca;ar1e0oAy;sides,tween;ri6;bo7cross,ft6lo5m3propos,round,s1t0;!op;! long 0;as;id0ong0;!st;ng;er;ut", | ||
"SportsTeam": "true¦0:1A;1:1H;2:1G;a1Eb16c0Td0Kfc dallas,g0Ihouston 0Hindiana0Gjacksonville jagua0k0El0Bm01newToQpJqueens parkIreal salt lake,sAt5utah jazz,vancouver whitecaps,w3yW;ashington 3est ham0Rh10;natio1Oredski2wizar0W;ampa bay 6e5o3;ronto 3ttenham hotspur;blue ja0Mrapto0;nnessee tita2xasC;buccanee0ra0K;a7eattle 5heffield0Kporting kansas0Wt3;. louis 3oke0V;c1Frams;marine0s3;eah15ounG;cramento Rn 3;antonio spu0diego 3francisco gJjose earthquak1;char08paA; ran07;a8h5ittsburgh 4ortland t3;imbe0rail blaze0;pirat1steele0;il3oenix su2;adelphia 3li1;eagl1philNunE;dr1;akland 3klahoma city thunder,rlando magic;athle0Mrai3;de0; 3castle01;england 7orleans 6york 3;city fc,g4je0FknXme0Fred bul0Yy3;anke1;ian0D;pelica2sain0C;patrio0Brevolut3;ion;anchester Be9i3ontreal impact;ami 7lwaukee b6nnesota 3;t4u0Fvi3;kings;imberwolv1wi2;rewe0uc0K;dolphi2heat,marli2;mphis grizz3ts;li1;cXu08;a4eicesterVos angeles 3;clippe0dodDla9; galaxy,ke0;ansas city 3nE;chiefs,roya0E; pace0polis colU;astr06dynamo,rockeTtexa2;olden state warrio0reen bay pac3;ke0;.c.Aallas 7e3i05od5;nver 5troit 3;lio2pisto2ti3;ge0;broncZnuggeM;cowbo4maver3;ic00;ys; uQ;arCelKh8incinnati 6leveland 5ol3;orado r3umbus crew sc;api5ocki1;brow2cavalie0india2;bengaWre3;ds;arlotte horAicago 3;b4cubs,fire,wh3;iteB;ea0ulR;diff3olina panthe0; c3;ity;altimore 9lackburn rove0oston 5rooklyn 3uffalo bilN;ne3;ts;cel4red3; sox;tics;rs;oriol1rave2;rizona Ast8tlanta 3;brav1falco2h4u3;nited;aw9;ns;es;on villa,r3;os;c5di3;amondbac3;ks;ardi3;na3;ls", | ||
"Uncountable": "true¦0:2S;1:1Z;2:27;a2Gb27c1Xd1Oe1Gf1Ag13h0Wi0Pj0Ok0Nl0Im08n06o05pZrUsIt9v7w3;a5i4oo3;d,l;ldlife,ne;rm8t2;ernacul1Ui3;neg1Tol0Otae;eAh9oothpas1Nr4un3yranny;a,gst1V;aff29ea18o4ue nor3;th;oZu3;ble3se1Ft;!shoot1X;ermod2Cund2;a,nnis;aCcene0JeBhAil9ki8o7p6t4u3weepstak1;g1Inshi12;ati02e3;am,el;ace24eci1;ap,cc2;n,ttl1;k,v2;eep,ingl1;na15ri1;d0Ofe1Wl3nd,t0C;m1Lt;a6e4ic3;e,ke0W;c3laxa0Tsearch;ogni0Srea0S;bi1in;aWe7hys0last1Lo5re3;amble,mis1s3ten1L;en1Ksu0D;l3rk;it0yC;a1Ptr07;bstetr0vercrowd17xyg10;a3ews;il polXtional securi1H;aAe8o5u3;m3s1B;ps;n3o1A;ey,o3;gamy;a3chan0rchandi17tallurgy;sl1t;chine3themat0; learn0Vry;aught2e6i5ogi4u3;ck,g0X;c,st0;ce,ghtn0Rngui1AteraSv2;ath2isuSss;ara09indergart0Inowled0U;azz,ewelD;ce,gnor8mp5n3;formaZter3;net,sta05;a3ort5;ti3;en0Z;an0Y;a6eIisto5o3;ckey,mework,ne3rserad7spitali0R;s0Qy;ry;ir,libYppiGs3;h3te;ish;ene6l5o4r3um,ymna0S;aDeed;lf,re;utZyce0D; 3t0;edit04po3;ol;aMicFlour,o5urni3;tu3;re;od,rgive3uri2wl;ne3;ss;conom0duca9lectr8n6quip7th0very4xper3;ti04;body,o3thU;ne;joy3tertain3;ment;ici02on0;tiR;e9i6o4raugh3ynas00;ts;pe,wnstai3;rs;abet1s3;honUrepu3;te;b3miQ;ut;aBelciAh7iv0l5o3urrency;al,ld w3nfusiGral,ttGusco9;ar;ass0oth1;es;aos,e4ick3;en;eHw8;us;d,rJ;a8eef,i6lood,read,u3;nt4tt2;er;ing;lliarEs3;on;g3ss;ga3;ge;cEdviDeroBirAm6ni5ppeal court,rithmet4spi3thlet0;rin;ic;se;en5n3;es3;ty;ds;craft;b0d3naut0;ynam0;ce;id,ou3;st0;ics", | ||
"Uncountable": "true¦0:2T;1:20;a2Gb27c1Xd1Oe1Gf1Ag13h0Wi0Pj0Ok0Nl0Im08n06o05pZrUsIt8v6w2;a4i3oo2;d,l;ldlife,ne;rm7t25;ernacul1Ui2;neg1Tol0Otae;eAh8oothpas1Nr3un2yranny;a,gst1V;aff29ea18o3ue nor2;th;oZu2;ble2se1Ft;!shoot1X;er2und1V;e,mod2B;a,nnis;aBcene0IeAh9il8ki7o6p5t3u2weepstak1;g1Hnshi11;ati01e2;am,el;ace23eci1;ap,cc1N;n,ttl1;k,v1L;eep,ingl1;na14ri1;d0Nfe1Vl2nd,t0B;m1Kt;a5e3ic2;e,ke0V;c2laxa0Ssearch;ogni0Rrea0R;bi1in;aVe6hys0last1Ko4re2;amble,mis1s2ten1K;en1Jsu0C;l2rk;it0yB;a1Otr06;bstetr0vercrowd16xyg0Z;a2ews;il polWtional securi1G;a9e7o4u2;m2s1A;ps;n2o19;ey,o2;gamy;a2chan0rchandi16tallurgy;sl1t;chine2themat0; learn0Ury;aught0Se5i4ogi3u2;ck,g0W;c,st0;ce,ghtn0Qngui19teraRv0P;ath0OisuRss;ara08indergart0Hnowled0T;azz,ewelC;ce,gnor7mp4n2;formaYter2;net,sta04;a2ort4;ti2;en0Y;an0X;a5eHisto4o2;ckey,mework,ne2rserad6spitali0Q;s0Py;ry;ir,libXppiFs2;h2te;ish;ene5l4o3r2um,ymna0R;aCeed;lf,re;utYyce0C; 2t0;edit03po2;ol;aLicElour,o4urni2;tu2;re;od,rgive2uriXwl;ne2;ss;conom0duca8lectr7n5quip6th0very3xper2;ti03;body,o2thT;ne;joy2tertain2;ment;ici01on0;tiQ;e8i5o3raugh2ynasZ;ts;pe,wnstai2;rs;abet1s2;honTrepu2;te;b2miP;ut;aAelci9h6iv0l4o2urrency;al,ld w2nfusiFral,ttFusco8;ar;ass0oth1;es;aos,e3ick2;en;eGw7;us;d,rI;a7eef,i5lood,read,u2;nt3tt2;er;ing;lliarDs2;on;g2ss;ga2;ge;cDdviCeroAir9m5ni4ppeal court,rithmet3spi2thlet0;rin;ic;se;en4n2;es2;ty;ds;craft;b0d2naut0;ynam0;ce;id,ou2;st0;ics", | ||
"Person|Noun": "true¦a04bYcVdOeMfLgJhGjCkitXlBm9olive,p6r3s2triniXv0wang;an,enus,iol0;a,et;ky,on5umm00;ay,e1o0uby;bin,d,se;ed,x;atNe0ol;aFn0;ny;a0eloQ;x,ya;a8eo,iD;a2e1o0;lDy;an,w3;de,smi4y;a0iKol8;ll,z0;el;ail,e0;ne;aith,ern,lo;a0dDmir,ula,ve;rl;a4e3i1ol0;ly;ck,x0;ie;an,ja;i0wn;sy;h0liff,rystal;ari0in,ristian;ty;ak4e3i2r0;an0ook;dy;ll;nedict,rg;er;l0rt;fredo,ma", | ||
@@ -54,14 +55,13 @@ "Noun|Gerund": "true¦0:25;1:24;2:1V;3:1H;4:1X;5:1N;a24b1Nc1Bd16en14f0Yg0Wh0Ti0Rjog1Zk0Pl0Lm0In0Go0Cp05ques08rWsGtBunderAvolunt15w6yDzo2;a8ed5i3or7r6;ap1Nest1Bi1;ki0r1N;i1r2s1Ttc1T;st1Mta4;al4e9hin4i8ra6y1J;c4di0i2v6;el15;mi0p1G;a1Xs1;ai12cIeHhFin1OkatDlZmo4nowCpeBt9u7w6;ea3im1T;f02r6;fi0vi0J;a1Kretc1Iu6;d1AfJ;l0Wn5;b7i0;eb6i0;oar5;ip14o6;rte2u1;a1r0At1;h7o3re6;a1Ge2;edu0Noo0N;aDe9i5o7u6;li0n2;o6wi0;fi0;a8c7hear1Cnde3por1struct6;r1Au3;or5yc0G;di0so2;p0Qti0;aBeacekAla9o7r6ublis0X;a0Peten5in1oces16;iso2si6;tio2;n2yi0;ee0K;cka0Tin1rt0K;f8pe7rgani6vula1;si0zi0;ni0ra1;fe3;e6ur0W;gotia1twor4;a7e6i2onito3;e1ssa0L;nufactu3rke1;a8ea7i6od0Jyi0;cen0Qf1s1;r2si0;n5ug0E;i6n0J;c4lS;ci0magi2n6ro2;nova1terac1;andPea1i7o6un1;l5wO;ki0ri0;athe3rie6ui5;vi0;ar0CenHi8l7or6ros1un5;ecas1mat1;ir1oo5;l7n6;anDdi0;i0li0;di0gin6;ee3;a8eba1irec1oub1r6umO;awi0es05i6;n4vi0;n6ti0;ci0;aFelebra1hDlBo8r6ur7;aw6os00;li0;a7di0lo3mplai2n6o4pi0ve3;duc1sul1;cMti0;apDea3imIo6ubI;ni0tK;a6ee3;n1t1;m9s1te3;ri0;aJeGitElDoBr9u6;il5ll7r6;pi0;yi0;an5;di0;a1m6o4;bi0;esHoa1;c6i0;hi0;gin2lon6t1;gi0;ni0;bys7c4ki0;ki0;it1;c9dverti8gi0rg7ssu6;mi0;ui0;si0;coun1ti0;ti0;ng", | ||
"Person": "true¦ashton kutchUbTcOdMeKgastPhIinez,jHkGleFmDnettLoCpAr5s4t2va1w0;arrDoode;lentino rossi,n go4;a0heresa may,iger woods,yra banks;tum,ylor;addam hussain,carlett johanssKlobodan milosevic;ay romano,e3o1ush limbau0;gh;d stewart,nald0;inho,o;ese witherspoFilly;a0ipJ;lmIris hiltD;prah winfrFra;essia0itt romnEubarek;en;bron james,e;anye west,endall,iefer sutherland,obe bryant;aime,effers7k rowling;a0itlBulk hogan;lle berry,rris5;ff0meril lagasse,zekiel;ie;a0enzel washingt2ick wolf;lt1nte;ar1lint0;on;dinal wols1son0;! palm2;ey;arack obama,rock;er", | ||
"Adjective": "true¦0:97;1:83;2:80;3:8Y;4:8S;5:6G;6:84;7:88;8:8T;9:8F;A:5Y;a7Pb79c6Rd69e5Rf59g51h4Qi3Sjuni45k3Ql3Fm33n2To2Ep1Wquart65r1Ls0Rt0JuMvIwBye1J;ast55eFholeEiDoB;man5oBrthwhi6u0F;d7Kzy;despr8Hs6G;!sa6;ather13eBll o5Kste2Q;!k5;aDeCiBola5E;b97ce versa,gi2Q;ng4Wrsa5C;ca0lu55;lt06nHpDrCsBttermo8Z;ef78u4;b69ge0; Db2ApCsBti36;ca6et,ide dO;er,i4M;f3Uto da3;aWbecom2cVdPeOfNiMknLmKpJrGsCtoFus1wB;a06iel4F;e72i2FoDpCuB;pervis1spect2;e0ok70;ld;eBu5;cognQgul0LlBsolv1;at1ent2;a9recedeY;arri1et;own;que,vers4;air,orese6R;mploy1nd2xpect1;eBue;cid1rB;!a6UcovAly2sDwB;aBei2K;tAy;iz1to44;heck1onvinc2;ppeal2ssum2tteCuthorB;iz1;nd1;i3Hra;aGeDhough5Bip 1PoCrB;anspa71i3;gethAle85rp9;ena6ImpCrB;r3Gtia6S;e8o6Q;leBst3R;nt1;a03c01eZhYiWkiVmug,nobb40oPpMqueam40tGuBymb72;bDi generis,pBr5;erBre1O;! dupAb,viX;du1sBurb52;eq75tanda7R;atu6CeFi0UrByl3U;aBin4F;ightBy; fBfB;or60;adfa7Jri6;arCeBirit1lend9ot on;c2Ze35;k5se; caGlub6mbAphisticFrEuCvB;erei5Liet;ndBth0X;pro6H;d9ry;at1;ll1;g1XnB;ce5Ag6;am31eA;at1co1Iem5lf3BnBre7;so5Y;ath2holBient2L;ar5;cr1me,tisfac5P;aJeEheumato9iCoB;bu6Ztt5By4;ghtBv4;-w2f57;bYcEdu6QlDnown1sBtard1;is3EoB;lu3na0;e1Cuc3C;e0ondi3;b9ciB;al,st;aNeLicayu7laKopuli6PrCuB;bl5Xnjabi;eGiEoB;!b2RfCmi3DpBv4Yxi20;er,ort62;a7u65;maBor,sti7va3;!ry;ci62exist2mBpa9;a1Pi65;c9id;ac29rBti3;fe69ma34ti34v5X;i29rCsB;s5St;allCtB;-ti05i4;el;bMffKkJld InGrFthAutEverB;!aCni0Gseas,t,wB;ei0Frou0F;ll;do0Xer;d2Wg1N; bBbBgo2li7;oa62;fashion1school;!ay; gua5ZbBli7;eat;eCsB;ce7er0Do0S;dia0se;aJeIiHoBuanc1;nDrthBt1W;!eB;rn;chaCdescri5Nprof2AsB;top;la0;ght5;arby,cessa4Eighbor5xt;k1usiat2;aIeHinGoCuB;d15ltip6;deDl14nBot,st;ochroBth5;me;rn,st;dblSi;nac2re;cDgenta,in,j04keshift,mmCnBscu4G;da3Xy;ali2Koth;ab3Aho;aKeHiEoCuB;mber2sh;ngBut1A;stand2term;ghtweiCteraB;l,te;ght;ft-w2gBssAth4;al,eBi0B;nda3R;ngu9ps1st;aput,ind5nB;ow2;gno4Yll03mVnDpso 26rB;a3releB;va0; QaPcoMdJe2BfIhibi3EiWnHoGsDtBvalu0V;a4LeB;n49rdep1V;a7igColBuboD;ub6ve0;nifica0;rdi42;a3er;eriCluenOreq3Y;eCiEoB;or;fini3p1Mtermi3X;mpCnside8rB;re49;le3;ccu8deq3Yppr38;fBsitu,vitro;ro0;mFpB;arDeCl0SoBropA;li3r0P;nd2rfe41;ti4;aCeBi0U;d30n3N;tu24;egCiB;c0Lte8;al,iB;tiB;ma3;aIelHiFoCumB;a7dr3J;me ma2DnCrrBs04ur5;if31;e3Ro2K;ghfalut1MspB;an2Y;lUpf1Y;lCnBrdZtI;dy;f,low1;aiHener2Tiga27lob4oGraDuB;ilBng ho;ty;cCtB;ef1Qis;ef1P;od;nf1N;aPeMinLlJoErB;aCeBoz1N;q2Qtf1K;gi6nt2I;olErB; keeps,eBge0GmAtu2Pwa39;go2i1DseeB;ab6;ish;ag38uB;e0oresce0;al,i3;dCmini7rB;ti6; up;bl1i0l2Imiliar,r Bux;oBreach2;ff;aPfficie0lNmKnIqu4re2Qthere4veHxB;a2Pem2SplEquisi3traDuB;be2XlB;ta0;!va1I;icB;it;n,ryday; Bti0P;rou3sui3;erCiB;ne0;ge0;dBe19;er5;gAsB;t,ygo2;er;aQeHiCoBrea16ue;mina0ne,rma0ubK;dact1Jfficult,m,sCverB;ge0se;creCeJjoi0pa8tB;a0in23;et,te; IadpHceGfiFgene8liDpCreli21spe8voB;id,ut;ende0;ca3ghB;tf0B;a0ni3;as1;an;facto;i5ngeroY;ly;arRePivil,oErCuB;nn2stoma0N;aBu0Jystal0Y;v03z1;erKgniza0loJmInDrCveB;rt;po8ru1N;cEduHgr13jDsCtraB;dic0Ary;eq11ta0;oi0ug4;a0Vi14;mensu8pass0Z;ni4ss4;ci0S;leba3rtaB;in;diac,efN;aNeGizarFliLoDrBuck nak1;and new,isk,oB;kMn1E;gBldface,na fiT;us;re;autifGhiFloEnCsByoF;iPt;eUiBt;gn;v1w;nd;ul;ckCnkru0YrrB;en;!wards; priori,b0Pc0Md0Ff09g07h06l00mp6ntiquXpRrLsleep,ttracti08uHvEwB;aCkB;wa0W;ke,re;ant garCeraB;ge;de;diDtB;heBoimmu7;ntW;toG;bitEchiv4roDtiB;fiB;ci4;ga0;raB;ry;pBt;aEetiz2rB;oprB;ia3;ing;re0;at1e;ed;le;cohEiIkaCl,oBterO;of;li7;ne;olB;ic;ead;ainZed,gressiB;ve;fCra9;id;ectClB;ue0;ioB;na3; FeDvB;erB;se;pt,qB;ua3;hoc,infinitB;um;cu8tu4u3;al;ra3;erMlKoIrFsCuB;nda0;e0olu3traB;ct;te;eaCuB;pt;st;aBve;rd;aBe;ze;ra0;nt", | ||
"Adjective": "true¦0:95;1:80;2:7X;3:8W;4:8Q;5:6E;6:81;7:86;8:8R;9:8D;A:5W;a7Mb77c6Pd67e5Qf58g50h4Pi3Rjuni44k3Pl3Fm33n2To2Ep1Wquart63r1Ls0Rt0JuMvIwBye1J;ast54eFholeEiDoB;man5oBrthwhi6u0F;d7Hzy;despr8Fs6E;!sa6;ather13eBll o5Jste2Q;!k5;aDeCiBola5D;b95ce versa,gi2Q;ng4Vrsa5B;ca0lu54;lt06nHpDrCsBttermo8X;ef75u4;b67ge0; Db2ApCsBti7Y;ca6et,ide dO;er,i4L;f3Tto da3;aWbecom2cVdPeOfNiMknLmKpJrGsCtoFus1wB;a06iel4E;e6Zi2FoDpCuB;pervis1spect2;e0ok6X;ld;eBu5;cognQgul0LlBsolv1;at1ent2;a9recedeY;arri1et;own;que,vers4;air,orese6O;mploy1nd2xpect1;eBue;cid1rB;!a6RcovAly2sDwB;aBei7C;tAy;iz1to43;heck1onvinc2;ppeal2ssum2tteCuthorB;iz1;nd1;i3Gra;aGeDhough59ip 1PoCrB;anspa6Yi3;gethAle83rp9;ena6FmpCrB;r3Ftia6P;e8o6N;leBst3Q;nt1;a03c01eZhYiWkiVmug,nobb3ZoPpMqueam3ZtGuBymb70;bDi generis,pBr5;erBre1O;! dupAb,viX;du1sBurb50;eq73tanda7P;atu69eFi0UrByl3T;aBin4D;ightBy; fBfB;or5X;adfa7Hri6;arCeBirit1lend9ot on;c2Ye34;k5se; caGlub6mbAphisticFrEuCvB;erei5Iiet;ndBth0X;pro6F;d9ry;at1;ll1;g1WnB;ce57g6;am30eA;at1co1Hem5lf3AnBre7;so5V;ath2holBient2K;ar5;cr1me,tisfac5M;aJeEheumato9iCoB;bu6Xtt58y4;ghtBv4;-w2f54;bYcEdu6OlDnown1sBtard1;is3DoB;lu3na0;e1Buc3B;e0ondi3;b9ciB;al,st;aNeLicayu7laKopuli6NrCuB;bl5Vnjabi;eGiEoB;!b2QfCmi3BpBv4Vxi1Z;er,ort60;a7u63;maBor,sti7va3;!ry;ci60exist2mBpa9;a1Oi63;c9id;ac28rBti3;fe67ma32ti32v5V;i28rCsB;s5Qt;allCtB;-ti05i4;el;bMffKkJld InGrFthAutEverB;!aCni58seas,t,wB;ei57rou57;ll;do0Wer;d2Ug1M; bBbBgo2li7;oa60;fashion1school;!ay; gua5XbBli7;eat;eCsB;ce7er0Co0R;dia0se;aJeIiHoBuanc1;nDrthBt1V;!eB;rn;chaCdescri5Lprof29sB;top;la0;ght5;arby,cessa4Bighbor5xt;k1usiat2;aIeHinGoCuB;d14ltip6;deDl13nBot,st;ochroBth5;me;rn,st;dblRi;nac2re;cDgenta,in,j03keshift,mmCnBscu4E;da3Uy;ali2Ioth;ab37ho;aJeGiEoCuB;mber2sh;ngBut19;stand2term;ghtwei44teraB;l,te;ft-w2gBssAth4;al,eBi0B;nda3P;ngu9ps1st;aput,ind5nB;ow2;gno4Xll03mVnDpso 25rB;a3releB;va0; QaPcoMdJe2AfIhibi3CiWnHoGsDtBvalu0V;a4KeB;n48rdep1U;a7igColBuboD;ub6ve0;nifica0;rdi41;a3er;eriCluenOreq3X;eCiEoB;or;fini3p1Ltermi3W;mpCnside8rB;re48;le3;ccu8deq3Xppr36;fBsitu,vitro;ro0;mFpB;arDeCl0SoBropA;li3r0P;nd2rfe40;ti4;aCeBi0T;d2Yn3M;tu22;egCiB;c0Lte8;al,iB;tiB;ma3;aIelHiFoCumB;a7dr3I;me ma2BnCrrBs04ur5;if30;e3Qo2I;ghfalut1LspB;an2X;lUpf1W;lCnBrdZtI;dy;f,low1;aiHener2Siga25lob4oGraDuB;ilBng ho;ty;cCtB;ef1Ois;ef1N;od;nf1L;aPeMinLlJoErB;aCeBoz1L;q2Ptf1I;gi6nt2H;olErB; keeps,eBge0FmAtu2Owa38;go2i1BseeB;ab6;ish;ag37uB;e0oresce0;al,i3;dCmini7rB;ti6; up;bl1i0l2Hmiliar,r Bux;oBreach2;ff;aOfficie0lMmJnHqu4re2Pthere4veryday,xB;a2Oem2RplEquisi3traDuB;be2WlB;ta0;!va1G;icB;it; Bti0O;rou3sui3;erCiB;ne0;ge0;dBe18;er5;gAsB;t,ygo2;er;aQeHiCoBrea15ue;mina0ne,rma0ubK;dact1Jfficult,m,sCverB;ge0se;creCeJjoi0pa8tB;a0in23;et,te; IadpHceGfiFgene8liDpCreli21spe8voB;id,ut;ende0;ca3ghB;tf0A;a0ni3;as1;an;facto;i5ngeroX;ly;arRePivil,oErCuB;nn2stoma0M;aBu0Iystal0Y;v02z1;erKgniza0loJmInDrCveB;rt;po8ru1N;cEduHgr13jDsCtraB;dic09ry;eq11ta0;oi0ug4;a0Vi14;mensu8pass0Z;ni4ss4;ci0S;leba3rtaB;in;diac,efM;aMeFizarEliKoCrBuck nak1;and new,isk,on1F;gBldface,na fiT;us;re;autifGhiFloEnCsByoF;iPt;eUiBt;gn;v1w;nd;ul;ckCnkru0ZrrB;en;!wards; priori,b0Qc0Nd0Gf0Ag08h07l00mp6ntiquXpRrLsleep,ttracti09uHvEwB;aCkB;wa0X;ke,re;ant garCeraB;ge;de;diDtB;heBoimmu7;ntX;toG;bitEchiv4roDtiB;fiB;ci4;ga0;raB;ry;pBt;aEetiz2rB;oprB;ia3;ing;re0;at1e;ed;le;cohFiJkaDl,oCriBterP;ght;of;li7;ne;olB;ic;ead;ainZed,gressiB;ve;fCra9;id;ectClB;ue0;ioB;na3; FeDvB;erB;se;pt,qB;ua3;hoc,infinitB;um;cu8tu4u3;al;ra3;erMlKoIrFsCuB;nda0;e0olu3traB;ct;te;eaCuB;pt;st;aBve;rd;aBe;ze;ra0;nt", | ||
"Adj|Past": "true¦0:2V;1:2M;2:2P;a2Eb29c1Rd19e13f0Ygift0h0Vi0Oj0Nknown,l0Km0Fn0Do0Ap03qua02rTsDt9u7v5w3;arp0ea3or5;kHth2O;a3e0U;ri0;ni3pd1s0;fi0t0;ar5hreatCr3wi2N;a3ou18;ck0in0pp0;get0ni1L;aGcaFeEhDimCm00oak0pAt6u3;bsid24gge2Is3;pe3ta1P;ct0nd0;at0e5r3uU;ength3ip0;en0;am0reotyp0;eci3ik0ott0;al1Wfi0;pHul1;ar0ut;al0c1Gle2t1O;r0tt22;t3ut0;is1Hur1;aAe3;c7duc0f1Ag6l1new0qu5s3;pe2t3;or0ri2;e1Zir0;ist1Uul1;eiv0o3;mme09rd0v1S;lli0ti18;li17;arallel0l7o6r3ump0;e4o3;ce0Ilo0Hnou1Qpos0te2;fe0Koc8pY;i1Dli0Q;a3e16;nn0;c4rgan18verlo3;ok0;cupi0;e3ot0;ed0gle2;a5e4ix0o3;di0Tt0F;as0Olt0;n3rk0;ag0ufact0M;eft,i4o3;ad0st;cens0mit0st0;agg0us0L;mp8n3sol1;br0debt0f6t3volv0;e3ox0D;gr1n3re15;d0si0H;e2oW;li0oLrov0;amm0Xe1o3;ok0r3;ri0C;aNe6i5lavo07ocus0r3;a3i0;ct05g0Jm0;niWx0;ar0;duc1mbarraKn7quipp0stabliUx3;p3te5;a4e3;ct0rie0P;nd0;ha0NsX;aIeAi3;gniZminiNre2s3;a7c5grun02t3;o3reBurb0;rt0;iplQou3;nt0rD;bl0;cenTdMf7lay0pre6ra5t3velop0;a3ermM;il0;ng0;ss0;e4o3;rm0;rr0;m3t0;ag0;alcul1eGharg0lFo8r5u3;lt3stomQ;iv1;a4owd0u3;sh0;ck0mp0;d0lo8m5n3ok0vV;centr1s3troll0;idTolid1;b4pl3;ic1;in0;ur0;assi5os0;lebr1n5r3;ti3;fi0;tralA;a6i5o3roken,urn0;il0r0t3und;tl0;as0;k0laIs0;bandon0cJdGffe2lDnBpp9ss7u3ward0;g4thor3;iz0;me3;nt0;o5u3;m0r0;li0re3;ci1;im1ticip1;at0;leg0t3;er0;ct0;ju4o6va3;nc0;st0;ce3knowledg0;pt0;ed", | ||
"Determiner": "true¦aBboth,d9e6few,l4mu8neiDplenty,s3th2various,wh0;at0ich0;evC;at,e4is,ose;everal,ome;a,e0;!ast,s;a1i6l0very;!se;ch;e0u;!s;!n0;!o0y;th0;er", | ||
"Adverb": "true¦a09b05d01eXfRhPinOjustNkinda,likewi00mLnIoDpBquite,r8s4t1up0very,well; to,wards5;h1iny bit,o0wiO;o,t6w05;en,us;eldom,o0uch;!me1rt0; of;hZtimes,w0B;a1e0;alT;ndomSthN;ar excellDer0oint blank; Nhaps;f3n0;ce0ly;! 0;ag04moY; courIten;ewKo0; longEt 0;onIwithstanding;aybe,eanwhiAore0;!ovB;! aboW;deed,steX;en0;ce;or2u0;lArther0;!moL; 0ev3;examp0good,suJ;le;n1v0;er; mas0ough;se;e0irect1; 1finite0;ly;juAtrop;ackw2y 0;far,n0;ow;ard; DbroCd nauseam,gBl6ny3part,s2t 0w4;be6l0mo6wor6;arge,ea5; soon,ide;mo1w0;ay;re;l 1mo0one,ready,so,ways;st;b1t0;hat;ut;ain;ad;lot,posteriori", | ||
"Conjunction": "true¦aDb9cuz,how7in caCno6o5p4supposing,t1wh0yet;eth7ile;h0o;eref8o0;!uB;lus,rovided that;r,therwi6; matt1r;!ev0;er;e0ut;cau1f0;ore;se;lthou1nd,s 0;far as,if;gh", | ||
"Currency": "true¦$,aud,bQcOdJeurIfHgbp,hkd,iGjpy,kElDp8r7s3usd,x2y1z0¢,£,¥,ден,лв,руб,฿,₡,₨,€,₭,﷼;lotyQł;en,uanP;af,of;h0t5;e0il5;k0q0;elK;oubleJp,upeeJ;e2ound st0;er0;lingG;n0soF;ceEnies;empi7i7;n,r0wanzaCyatC;!onaBw;ls,nr;ori7ranc9;!os;en3i2kk,o0;b0ll2;ra5;me4n0rham4;ar3;e0ny;nt1;aht,itcoin0;!s", | ||
"Adj|Present": "true¦a00bluZcRdMeKfHhollGidNlEmCnarrGoBp9qua8r7s4t2utt3w0;aIet,ound,ro0;ng,ug01;end0hin,op;er;e1l0mooth,our,pa8u8;i2ow;cu6daVlNpaJ;eplicaUigV;ck;aDr0;eseOime,ompt;bscu1pen,wn;atu0eLodeD;re;ay,eJi0;gNve;ow;i1r0;ee,inge;rm;l0mpty,xpress;abo4ic7;amp,e2i1oub0ry;le;ffu8r5;fu7libe0;raB;l4o0;mple9n2ol,rr1unterfe0;it;ect;juga6sum5;e1o0;se;an;nt;lig2pproxi0;ma0;te;ht", | ||
"Comparable": "true¦0:3B;1:3Q;2:3F;3:2D;a3Ub3Cc30d2Qe2Jf27g1Vh1Li1Fj1Ek1Bl14m0Yn0To0Sp0Jqu0Hr08sJtEuDvBw5y4za0R;el11ou3A;a8e6hi1Hi4ry;ck0Dde,l4n1ry,se;d,y;a4i3T;k,ry;nti34ry;a4erda2ulgar;gue,in,st;g0pcomi31;a7en2Thi6i5ough,r4;anqu28en1ue;dy,g36me0ny,r03;ck,rs24;ll,me,rt,wd3I;aRcarQePhNiMkin0BlImGoEpDt7u5w4;eet,ift;b4dd0Vperfi1Wrre24;sta22t3;a8e7iff,r5u4;pUr1;a4ict,o2P;ig2Wn0N;a1ep,rn;le,rk;e1Oi2Wright0;ci1Vft,l4on,re;emn,id;a4el0;ll,rt;e6i4y;g2Nm4;!y;ek,nd2T;ck,l0mp3;a4iRort,rill,y;dy,l01rp;ve0Ixy;ce,y;d,fe,int0l1Ev0U;a9e7i6o4ude;mantic,o16sy,u4;gh,nd;ch,pe,tzy;a4d,mo0A;dy,l;gg5ndom,p4re,w;id;ed;ai2i4;ck,et;hoBi1ClAo9r6u4;ny,r4;e,p3;egna2ic5o4;fouSud;ey,k0;liXor;ain,easa2;ny;dd,i0ld,ranL;aive,e6i5o4;b3isy,rm0Vsy;ce,mb3;a4w;r,t;ad,e6ild,o5u4;nda0Yte;ist,o1;a5ek,l4;low;s0ty;a8ewd,i7o4ucky;f0Gn5o12u4ve0w0Wy0K;d,sy;e0g;ke0tt3ve0;me,r4te;ge;e5i4;nd;en;ol0ui1B;cy,ll,n4;secu7t4;e4ima5;llege2rmedia4;te;re;aBe8i7o6u4;ge,m4ng1E;b3id;me0t;gh,l0;a4fVsita2;dy,v4;en0y;nd15ppy,r4;d,sh;aEenDhBiAl9oofy,r4;a7e6is0o4ue12;o4ss;vy;at,en,y;nd,y;ad,ib,ooE;a2d1;a4o4;st0;t3uiS;u1y;aDeeb3i9lat,o7r6u4;ll,n4r0S;!ny;aDesh,iend0;a4rmEul;my;erce5nan4;ciB;! ;le;ir,ke,n08r,st,ul4;ty;a7erie,sse5v4xtre0G;il;nti4;al;r5s4;tern,y;ly,th0;aCe9i6ru5u4;ll,mb;nk;r5vi4;ne;e,ty;a4ep,nB;d4f,r;!ly;ppVrk;aDhAl8o6r5u4;dd0r0te;isp,uel;ar4ld,mmon,st0ward0zy;se;e4ou1;ar,vO;e4il0;ap,e4;sy;gey,lm,ri4;ng;aJiHlEoCr6u4;r0sy;ly;a8i5o4;ad,wn;g5llia2;nt;ht;sh,ve;ld,un4;cy;a5o4ue;nd,o1;ck,nd;g,tt4;er;d,ld,w1;dy;bsu7ng6we4;so4;me;ry;rd", | ||
"Infinitive": "true¦0:8U;1:8F;2:9C;3:90;4:7Z;5:7M;6:98;7:81;8:9F;9:91;A:9G;B:8W;C:7T;D:7P;E:7J;F:86;a7Zb7Dc6Nd5Fe4Df43g3Zh3Vi3Bj38k35l2Wm2Qnou3Uo2Lp24qu23r19s08tWuRvPwG;aMeLiJrG;eHiG;ng,te;ak,st4;d5e7BthG;draw,er;a2d,ep;i2ke,nGrn;d0t;aGie;li9Bni8ry;nGplift;cov0dHear7GlGplug,tie,ve82;ea8o3J;erGo;go,sta9Dval93whelm;aPeNhKoJrG;aGemb4;ffi3Emp4nsG;aCpi7;pp4ugh5;aHiHrGwaD;eat5i2;nk;aGll,m8Z;ch,se;ck4ilor,keGmp0r7K;! paD;a0Fc0Ee0Ch08i06l04m03n02o00pVquUtNuIwG;all6Ye2DiG;m,ng;bIccumb,ffHggeBmm90p2ErG;mouFvi2;er,i3;li7Xmer9siGveD;de,st;aKe7QiIrG;ang4eGi2;ng1Zw;fGnW;f5le;gg0rG;t4ve;a3Qi8;awn,eJiIlHoGri69;il,of;ay,it;ll,t;ak,nd;lGot6Jw;icEve;eak,i0K;a8ugg4;aGiA;m,y;ft,nGt;g,k;aIi5DoHriGun;nk,v5P;ot,rt5;ke,rp5tt0ve;eGll,nd,que7Iv0w;!k,m;aven9ul7W;dd5tis16y;att4eHip5oG;am,ut;a05b03c01d00fXgroup,heaWiVlTmSnRpPq2ZsLtJvG;amp,eHiGo2O;sEve;l,rt;i7rG;ie2ofE;eFiItGurfa3;aDo1UrG;a5RiCuctu7;de,gn,st;el,hra1lGreseF;a3e64;d0ew,o02;a5Me2Uo2;a6eFiGoad,y;e2nq3Eve;mbur1nf2N;r1t;inHleCocus,re8uG;el,rbi8;an3e;aCu3;ei2k7Ela3HoGyc4;gni55nci4up,v0;oot,uG;ff;ct,d,liG;se,ze;a8en5Lit,o6;aUerSiRlumm0ToQrIuG;b3Ike,ni8rGt;poDs6S;eKoG;cId,fe32hibEnoHpo1sp0truAvG;e,iAo4Q;un3;la33u7;a5Cc1MdHf0ocSsup0DvG;a5HeF;etermi40iC;a59rt4R;er3npoiF;cei2fo3Ai8mea6plex,sGvaA;eve7iB;mp0n12rGtrol,ve,y;a5Nt5J;bser2cJpIutHverGwe;lap,s14tu65u1;gr4Knu1Vpa3;era6i3Qpo1;cupy;aKe07iHoGultiply;leBu60;micHnGspla3;ce,g4us;!k;im,ke,na9;aNeJiGo1u34;e,ke,ng0quGv5;eGi63;fy;aInG;d,gG;th5;rn,ve;ng20u19;eHnG;e3Low;ep;o42uG;gg4xtaG;po1;gno7mUnG;cSdQfPgeBhOitia6ju7q0YsMtIun5PvG;eGo0N;nt,st;erHimi5MoxiOrG;odu3uA;aCn,prGru5M;et;iBpi7tGu7;il,ruC;abEibE;eBo25u1;iGul9;ca6;i6luA;b58mer1pG;aDer43ly,oHrG;is5Jo2;rt,se,veG;ri8;aIear,iGoiBuD;de,jaGnd0;ck;mp0ng,pp5ve;ath0et,i2le1PoIrG;aGow;b,pp4ze;!ve4P;ast5er3Ii55lOorJrHuG;lf3Qr3M;ee2YolG;ic;b3BeIfeEgGs49;eGi2;!t;clo1go,sGwa4H;had2W;ee,i2L;a0FdEl0Dm08nQquip,rPsOt3BvMxG;cKeDha4iJpHtG;ing0Pol;eGi7loEo1un9;ct,di6;st,t;luA;alua6oG;ke,l2;chew,pou1tab11;a1u4G;aWcTdRfQgOhan3joy,lNqMrLsuKtIvG;e0TisG;a9i4L;er,i3rG;a2Ien2WuB;e,re;i2Uol;ui7;ar9iB;a9eGra2ulf;nd0;or3;ang0oGu7;r1w;lo1ou0ArHuG;mb0;oa2Ky3Z;b4ct;bHer9pG;hasi1Wow0;a0Sody,rG;a3oiG;d0l;ap1eCuG;ci3Pde;rGt;ma0Mn;a0Me01iIo,rGwind4;aw,ed9oG;p,wn;agno1e,ff0g,mi28sJvG;eGul9;rGst;ge,t;ab4bTcNlod9mant4pLru3HsKtG;iGoDu2X;lHngG;ui8;!l;ol2uaA;eGla3o1ro2;n1r1;a2Oe2XlJoHuG;ss;uGv0;ra9;aGo1;im;a38ur1;af5bXcRduCep5fPliOmLnJpIra1Tta1NvG;eGol2;lop;aDiCoD;oGy;te,un3;eHoG;li8;an;mEv0;a3i03oGraud,y;rm;ei2iKoIrG;ee,yG;!pt;de,mGup4;missi2Upo1;de,ma6ph0;aHrief,uG;g,nk;rk;mp5rk5uF;a03ea1h01i00lZoHrGurta17;a2ea6ipp4;ales3eWhabEinciAllVmTnGrroA;cQdNfLju7no6qu0sJtIvG;eGin3;ne,r9;a0Hin25ribu6;er2iGoli27pi7titu6ult;d0st;iGroFu1;de,gu7rm;eHoG;ne;mn,n1;eGluA;al,i2;buBe,men3pG;e6ly;eCiAuA;r3xiB;ean1iQ;rcumveFte;eGoo1;ri8w;ncGre5t0ulk;el;aYeSiRlOoNrJuG;iHrGy;st,y;ld;aIeHiGoad5;ng;astfeJed;ke;il,l12mba0XrrMth0;aHeGow;ed;ze;de,nd;!come,gKha2liJnd,queaIstHtGwild0;ray;ow;th;e2tt4;in;bysEckfi7ff4tG;he;it;b15c0Td0Kff0Igr0Hl0Dm09n03ppZrXsQttNuLvIwaG;it,k5;en;eDoG;id;rt;gGto06;meF;aHeBraC;ct;ch;pi7sHtoG;ni8;aIeGi03u7;mb4rt;le;il;re;g0Hi1ou1rG;an9i2;eaIly,oiFrG;ai1o2;nt;r,se;aKiOnHtG;icipa6;eHoGul;un3y;al;ly1;aHu1;se;lgaGze;ma6;iIlG;e9oGuA;t,w;gn;ee;ix,oG;rd;aZjLmiIoHsoG;rb;pt,rn;niGt;st0;er;ouHuB;st;rn;cJhie2knowled9quiGtiva6;es3re;ce;ge;eMomIrHusG;e,tom;ue;moHpG;any,li8;da6;te;pt;andMet,iAoIsG;coIol2;ve;li8rt,uG;nd;sh;de;on", | ||
"Infinitive": "true¦0:8U;1:8F;2:9C;3:90;4:7Z;5:7M;6:98;7:81;8:9F;9:91;A:9G;B:8W;C:7T;D:7P;E:7J;F:86;a7Zb7Dc6Nd5Fe4Df43g3Zh3Vi3Bj38k36l2Xm2Rnou3Uo2Mp25qu24r1As08tWuRvPwG;aMeLiJrG;eHiG;ng,te;ak,st4;d5e7BthG;draw,er;a2d,ep;i2ke,nGrn;d0t;aGie;li9Bni8ry;nGplift;cov0dHear7GlGplug,tie,ve82;ea8o3J;erGo;go,sta9Dval93whelm;aPeNhKoJrG;aGemb4;ffi3Emp4nsG;aCpi7;pp4ugh5;aHiHrGwaD;eat5i2;nk;aGll,m8Z;ch,se;ck4ilor,keGmp0r7K;! paD;a0Gc0Fe0Dh09i07l05m04n03o01pWquVtOuJwG;all6YeeHiG;m,ng;p,t5;bIccumb,ffHggeBmm8Zp2DrG;mouFvi2;er,i3;li7Wmer9siGveD;de,st;aKe7PiIrG;ang4eGi2;ng1Zw;fGnW;f5le;gg0rG;t4ve;a3Pi8;awn,eJiIlHoGri68;il,of;ay,it;ll,t;ak,nd;lGot6Iw;icEve;eak,i0K;a8ugg4;aGiA;m,y;ft,nGt;g,k;aIi5CoHriGun;nk,v5O;ot,rt5;ke,rp5tt0ve;eGll,nd,que7Hv0w;!k,m;aven9ul7V;dd5tis16y;att4eHip5oG;am,ut;a05b03c01d00fXgroup,heaWiVlTmSnRpPq2YsLtJvG;amp,eHiGo2N;sEve;l,rt;i7rG;ie2ofE;eFiItGurfa3;aDo1TrG;a5QiCuctu7;de,gn,st;el,hra1lGreseF;a3e63;d0ew,o02;a5Le2To2;a6eFiGoad,y;e2nq3Dve;mbur1nf2M;r1t;inHleCocus,re8uG;el,rbi8;an3e;aCu3;ei2k7Dla3GoGyc4;gni54nci4up,v0;oot,uG;ff;ct,d,liG;se,ze;a8en5Kit,o6;aUerSiRlumm0SoQrIuG;b3Hke,ni8rGt;poDs6R;eKoG;cId,fe31hibEnoHpo1sp0truAvG;e,iAo4P;un3;la32u7;a5Bc1LdHf0ocSsup0CvG;a5GeF;etermi3ZiC;a58rt4Q;er3npoiF;cei2fo39i8mea6plex,sGvaA;eve7iB;mp0n11rGtrol,ve,y;a5Mt5I;bser2cJpIutHverGwe;lap,s13tu64u1;gr4Jnu1Upa3;era6i3Ppo1;cupy;aKe06iHoGultiply;leBu5Z;micHnGspla3;ce,g4us;!k;im,ke,na9;aNeJiGo1u33;e,ke,ng0quGv5;eGi62;fy;aInG;d,gG;th5;rn,ve;ng1Zu18;eep,nG;e3Kow;o42uG;gg4xtaG;po1;gno7mUnG;cSdQfPgeBhOitia6ju7q0YsMtIun5PvG;eGo0N;nt,st;erHimi5MoxiOrG;odu3uA;aCn,prGru5M;et;iBpi7tGu7;il,ruC;abEibE;eBo25u1;iGul9;ca6;i6luA;b58mer1pG;aDer43ly,oHrG;is5Jo2;rt,se,veG;ri8;aIear,iGoiBuD;de,jaGnd0;ck;mp0ng,pp5ve;ath0et,i2le1PoIrG;aGow;b,pp4ze;!ve4P;ast5er3Ii55lOorJrHuG;lf3Qr3M;ee2YolG;ic;b3BeIfeEgGs49;eGi2;!t;clo1go,sGwa4H;had2W;ee,i2L;a0FdEl0Dm08nQquip,rPsOt3BvMxG;cKeDha4iJpHtG;ing0Pol;eGi7loEo1un9;ct,di6;st,t;luA;alua6oG;ke,l2;chew,pou1tab11;a1u4G;aWcTdRfQgOhan3joy,lNqMrLsuKtIvG;e0TisG;a9i4L;er,i3rG;a2Ien2WuB;e,re;i2Uol;ui7;ar9iB;a9eGra2ulf;nd0;or3;ang0oGu7;r1w;lo1ou0ArHuG;mb0;oa2Ky3Z;b4ct;bHer9pG;hasi1Wow0;a0Sody,rG;a3oiG;d0l;ap1eCuG;ci3Pde;rGt;ma0Mn;a0Me01iIo,rGwind4;aw,ed9oG;p,wn;agno1e,ff0g,mi28sJvG;eGul9;rGst;ge,t;ab4bTcNlod9mant4pLru3HsKtG;iGoDu2X;lHngG;ui8;!l;ol2uaA;eGla3o1ro2;n1r1;a2Oe2XlJoHuG;ss;uGv0;ra9;aGo1;im;a38ur1;af5bXcRduCep5fPliOmLnJpIra1Tta1NvG;eGol2;lop;aDiCoD;oGy;te,un3;eHoG;li8;an;mEv0;a3i03oGraud,y;rm;ei2iKoIrG;ee,yG;!pt;de,mGup4;missi2Upo1;de,ma6ph0;aHrief,uG;g,nk;rk;mp5rk5uF;a03ea1h01i00lZoHrGurta17;a2ea6ipp4;ales3eWhabEinciAllVmTnGrroA;cQdNfLju7no6qu0sJtIvG;eGin3;ne,r9;a0Hin25ribu6;er2iGoli27pi7titu6ult;d0st;iGroFu1;de,gu7rm;eHoG;ne;mn,n1;eGluA;al,i2;buBe,men3pG;e6ly;eCiAuA;r3xiB;ean1iQ;rcumveFte;eGoo1;ri8w;ncGre5t0ulk;el;aYeSiRlOoNrJuG;iHrGy;st,y;ld;aIeHiGoad5;ng;astfeJed;ke;il,l12mba0XrrMth0;aHeGow;ed;ze;de,nd;!come,gKha2liJnd,queaIstHtGwild0;ray;ow;th;e2tt4;in;bysEckfi7ff4tG;he;it;b15c0Td0Kff0Igr0Hl0Dm09n03ppZrXsQttNuLvIwaG;it,k5;en;eDoG;id;rt;gGto06;meF;aHeBraC;ct;ch;pi7sHtoG;ni8;aIeGi03u7;mb4rt;le;il;re;g0Hi1ou1rG;an9i2;eaIly,oiFrG;ai1o2;nt;r,se;aKiOnHtG;icipa6;eHoGul;un3y;al;ly1;aHu1;se;lgaGze;ma6;iIlG;e9oGuA;t,w;gn;ee;ix,oG;rd;aZjLmiIoHsoG;rb;pt,rn;niGt;st0;er;ouHuB;st;rn;cJhie2knowled9quiGtiva6;es3re;ce;ge;eMomIrHusG;e,tom;ue;moHpG;any,li8;da6;te;pt;andMet,iAoIsG;coIol2;ve;li8rt,uG;nd;sh;de;on", | ||
"Participle": "true¦f4g3h2less6s1w0;ors5ritt5;e4h5;ast3e2;iv2one;l2r0;ight0;en;own", | ||
"Modal": "true¦c5lets,m4ought3sh1w0;ill,o5;a0o4;ll,nt;! to,a;ight,ust;an,o0;uld", | ||
"Participle": "true¦f4g3h2less6s1w0;ors5ritt5;e4h5;ast3e2;iv2one;l2r0;ight0;en;own", | ||
"Adj|Gerund": "true¦0:2C;1:2E;2:22;3:20;4:1X;5:24;a1Zb1Uc1Cd0Ze0Uf0Kg0Eh0Di07jud1Sl04m01oXpTrNsCt7up6veWw0Lyiel4;lif0sZ;aUe9hr7i3ouc22r6wis0;eZoub2us0yi1;ea0Ji6;l2vi1;l2mp0;atisf28creec1Xhoc0Bkyrocke0lo0ZoEpDt9u7we6;e0Yl2;pp1Gr6;gi1pri5roun4;a7ea1Zi6ri07un18;mula0r3;gge3r6;t2vi1;ark2ee4;a6ot1O;ki1ri1;aAe7ive0o6us1M;a3l2;defi0Zfres1Kig0ZlaCs0v6war4;ea2itali6ol0M;si1zi1;gi1ll1Smb2vi1;a1Rerple8ier19lun14r6un1F;e6o0X;ce4s5vai2;xi1;ffs8pKut7ver6wi1;arc1Blap0Dri4whel1H;goi1l1Lst0U;et0;eande3i7o0Bu6;mb2;s5tiga0;a7i6o08;fesa07mi0vi1;cHg0Rs0;mAn6rri08;c8s7te13vi6;go1Cti1;pi3ul0;orpo1Area5;po5;arrowi1ea2orrif17umilia0;lAr6;a0ipWo7uel6;i1li1;undbrea6wi1;ki1;a3ea0W;aEetc0Pit0lBo9r7ulf6;il2;ee0Vigh6ust0Z;te01;r6un4;ebo4th0E;a7o6;a0we3;mi1tte3;di1scina0;m9n7x6;ac0ci0is0plo4;ab2c6du3ga01sQ;han0oura00;barras5erZpowe3;aHeAi6;s6zz0K;appoin0gus0sen0t6;r6u0L;ac0es5;biliBcAfiKgra4m9pres5ser8v6;asAelo6;pi1;vi1;an4eaG;a0BliF;ta0;maMri1sYun0;aMhJlo5o6ripp2ut0;mCn6rrespon4;cerAf9spi3t6vinO;in7r6;as0ibu0ol2;ui1;lic0u5;ni1;fAm9p6;e7ro6;mi5;l2ti1;an4;or0;a6ea0il2;llen6rO;gi1;lMptiva0;e9in4lin4o7rui5u6;d4st2;i2oJri1un6;ci1;coH;bsoOcJgonHlarGmEppea2rCs6;pi3su3to6;n7un4;di1;is6;hi1;ri1;res0;li1;a9u5;si1;mi1;i6zi1;zi1;c6hi1;ele7ompan6;yi1;ra0;ti1;rbi1;ng", | ||
"Adj|Past": "true¦0:2T;1:2K;2:2N;3:23;a2Db28c1Qd1Ae14f0Zgift0h0Wi0Pj0Oknown,l0Lm0Gn0Eo0Bp04qua03rUsEtAu8v6w4;arp0ea4or6;kIth2N;a4e0V;ri0;ni4pd1s0;fi0t0;ar6hreatDr4wi2M;a4ou18;ck0in0pp0;get0ni1K;aHcaGeFhEimDm01oak0pBt7u4;bsid23gge2Hs4;pe4ta1O;ct0nd0;at0e6r4uV;ength4ip0;en0;am0reotyp0;eci4ik0ott0;al1Vfi0;pIul1;ar0ut;al0c1Fle2t1N;r0tt21;t4ut0;is3ur1;aBe4;c8duc0f19g7l1new0qu6s4;pe2t4;or0ri2;e1Yir0;ist1Tul1;eiv0o4;mme0Ard0v1R;lli0ti3;li3;arallel0l8o7r4ump0;e5o4;c0Ilo0Hnou1Ppos0te2;fe0Koc9pZ;i1Cli0P;a4e15;nn0;c5rgan17verlo4;ok0;cupi0;e4ot0;ed0gle2;a6e5ix0o4;di3t0E;as0Nlt0;n4rk0;ag0ufact0L;eft,i5o4;ad0st;cens0mit0st0;agg0us0K;mp9n4sol1;br0debt0f7t4volv0;e4ox0C;gr1n4re14;d0si3;e2oW;li0oMrov0;amm0We1o4;ok0r4;ri3;aNe7i6lavo06ocus0r4;a4i0;ct04g0Im0;niVx0;ar0;duc1n8quipp0stabliTx4;p4te6;a5e4;ct0rie0O;nd0;ha0MsW;aIeAi4;gni3miniMre2s4;a7c6grun01t4;o4rBurb0;rt0;iplPou05;bl0;cenTdMf8lay0pr7ra6t4velop0;a4ermM;il0;ng0;ess0;e5o4;rm0;rr0;mag0t0;alcul1eHharg0lGo9r6u4;lt4stomR;iv1;a5owd0u4;sh0;ck0mp0;d0lo9m6n4ok0vW;centr1s4troll0;idUolid1;b5pl4;ic1;in0;ur0;assi3os0;lebr1n6r4;ti3;fi0;tralB;a7i6o4urn0;il0r0t4und;tl0;as0;laJs0;bandon0cKdHffe2lEnCppAss8u4ward0;g5thor4;iz0;me4;nt0;o6u4;m0r0;li0re4;ci1;im1ticip1;at0;leg0t4;er0;ct0;ju5o7va4;nc0;st0;ce4knowledg0;pt0;ed", | ||
"Person|Verb": "true¦b2ch1drew,grant,ja3ma0ollie,pat,rob,sue,wade;ck,rk;ase,u1;ob,u0;ck", | ||
@@ -68,0 +68,0 @@ "Person|Place": "true¦a5darw6h3jordan,k2orlando,s0victo7;a0ydney;lvador,mara,ntiago;ent,obe;amil0ous0;ton;lexand1ust0;in;ria", |
@@ -61,2 +61,3 @@ //just some of the most common emoticons | ||
'<\\3', | ||
'=(' | ||
] |
@@ -81,4 +81,11 @@ //words that can't be compressed, for whatever reason | ||
no: ['Negative', 'Expression'] | ||
// support 'near', 'nears', 'nearing' | ||
nears: 'PresentTense', | ||
nearing: 'Gerund', | ||
neared: 'PastTense', | ||
no: ['Negative', 'Expression'], | ||
// there: 'There' | ||
} | ||
export default misc |
@@ -59,3 +59,3 @@ export default [ | ||
//number with unit | ||
[/^[0-9.]+([a-z]{1,4})$/, 'Value', '9km'], | ||
[/^[0-9.]+([a-z°]{1,4})$/, 'NumericValue', '9km'], | ||
] |
@@ -69,3 +69,7 @@ const anything = ['Noun', 'Verb', 'Adjective', 'Adverb', 'Value', 'QuestionWord'] | ||
not: ['Verb', 'Adjective', 'Noun', 'Value'], | ||
}, | ||
// existential 'there' | ||
There: { | ||
not: ['Verb', 'Adjective', 'Noun', 'Value', 'Conjunction', 'Preposition'], | ||
} | ||
} |
@@ -56,2 +56,6 @@ export default { | ||
}, | ||
// 'walked by' | ||
Passive: { | ||
is: 'Verb', | ||
}, | ||
} |
const matchVerb = function (m, lemma) { | ||
const conjugate = m.methods.two.transform.verbConjugate | ||
const conjugate = m.methods.two.transform.verb.conjugate | ||
let all = conjugate(lemma, m.model) | ||
@@ -4,0 +4,0 @@ if (m.has('#Gerund')) { |
@@ -6,3 +6,3 @@ import swapVerb from './swap-verb.js' | ||
if (m.has('#Plural')) { | ||
const toPlural = m.methods.two.transform.nounToPlural | ||
const toPlural = m.methods.two.transform.noun.toPlural | ||
str = toPlural(lemma, m.model) | ||
@@ -14,3 +14,3 @@ } | ||
const swapAdverb = function (m, lemma) { | ||
const toAdverb = m.methods.two.transform.adjToAdverb | ||
const { toAdverb } = m.methods.two.transform.adjective | ||
let str = lemma | ||
@@ -23,8 +23,8 @@ let adv = toAdverb(str) | ||
const swapAdjective = function (m, lemma) { | ||
const { adjToComparative, adjToSuperlative } = m.methods.two.transform | ||
const { toComparative, toSuperlative } = m.methods.two.transform.adjective | ||
let str = lemma | ||
if (m.has('#Comparative')) { | ||
str = adjToComparative(str, m.model) | ||
str = toComparative(str, m.model) | ||
} else if (m.has('#Superlative')) { | ||
str = adjToSuperlative(str, m.model) | ||
str = toSuperlative(str, m.model) | ||
} | ||
@@ -31,0 +31,0 @@ if (str) { |
@@ -0,36 +1,97 @@ | ||
const byComma = function (doc) { | ||
let commas = doc.match('@hasComma') | ||
// remove any non-clause uses | ||
commas = commas.filter(m => { | ||
// don't split the first word | ||
if (m.growLeft('.').wordCount() === 1) { | ||
return false | ||
} | ||
// don't split the last word | ||
if (m.growRight('. .').wordCount() === 1) { | ||
return false | ||
} | ||
let more = m.grow(".") // grow by 1 word in either direction | ||
more = more.ifNo('@hasComma @hasComma') //fun, cool... | ||
more = more.ifNo('@hasComma (and|or) .') //cool, and fun | ||
more = more.ifNo('(#City && @hasComma) #Country') //'toronto, canada' | ||
more = more.ifNo('(#WeekDay && @hasComma) #Date') //'tuesday, march 2nd' | ||
more = more.ifNo('(#Date+ && @hasComma) #Value') //'july 6, 1992' | ||
// more = more.ifNo('@hasComma (too|also)$') //at end of sentence | ||
return more.found | ||
}) | ||
return doc.splitAfter(commas) | ||
} | ||
// should we split-out a clause (in brackets)? | ||
const splitParentheses = function (doc) { | ||
let matches = doc.parentheses() | ||
matches = matches.filter(m => { | ||
return m.wordCount() >= 3 && m.has('#Verb') && m.has('#Noun') | ||
}) | ||
return doc.splitOn(matches) | ||
} | ||
// split-out a long quotion, but not 'inline quotes'. | ||
const splitQuotes = function (doc) { | ||
let matches = doc.quotations() | ||
matches = matches.filter(m => { | ||
return m.wordCount() >= 3 && m.has('#Verb') && m.has('#Noun') | ||
}) | ||
return doc.splitOn(matches) | ||
} | ||
const clauses = function (n) { | ||
// an awkward way to disambiguate a comma use | ||
let commas = this.if('@hasComma') | ||
.ifNo('@hasComma @hasComma') //fun, cool... | ||
.ifNo('@hasComma (and|or) .') //cool, and fun | ||
.ifNo('(#City && @hasComma) #Country') //'toronto, canada' | ||
.ifNo('(#WeekDay && @hasComma) #Date') //'tuesday, march 2nd' | ||
.ifNo('(#Date+ && @hasComma) #Value') //'july 6, 1992' | ||
.ifNo('@hasComma (too|also)$') //at end of sentence | ||
.match('@hasComma') | ||
let found = this.splitAfter(commas) | ||
let found = this | ||
// let quotes = found.quotations() | ||
// found = found.splitOn(quotes) | ||
found = splitParentheses(found) | ||
found = splitQuotes(found) | ||
// let parentheses = found.parentheses() | ||
// found = found.splitOn(parentheses) | ||
found = byComma(found) | ||
found = found.splitAfter('(@hasEllipses|@hasSemicolon|@hasDash|@hasColon)') | ||
// i said | ||
found = found.splitAfter('^#Pronoun (said|says)') | ||
// ... said John. | ||
found = found.splitBefore('(said|says) #ProperNoun$') | ||
// ... if it was | ||
found = found.splitBefore('. . if .{4}') | ||
// various conjunctions | ||
found = found.splitBefore('and while') | ||
found = found.splitBefore('now that') | ||
found = found.splitBefore('ever since') | ||
found = found.splitBefore('(supposing|although)') | ||
found = found.splitBefore('even (while|if|though)') | ||
found = found.splitBefore('(whereas|whose)') | ||
// found = found.splitBefore('as (far|long|much|soon) as') | ||
found = found.splitBefore('as (though|if)') | ||
found = found.splitBefore('(til|until)') | ||
// it is cool and it is .. | ||
let conjunctions = found.if('#Copula #Adjective #Conjunction (#Pronoun|#Determiner) #Verb').match('#Conjunction') | ||
found = found.splitBefore(conjunctions) | ||
// let conjunctions = found.if('#Copula #Adjective #Conjunction (#Pronoun|#Determiner) #Verb').match('#Conjunction') | ||
// found = found.splitBefore(conjunctions) | ||
// if it is this then that | ||
let condition = found.if('if .{2,9} then .').match('then') | ||
found = found.splitBefore(condition) | ||
// // if it is this then that | ||
// let condition = found.if('if .{2,9} then .').match('then') | ||
// found = found.splitBefore(condition) | ||
// misc clause partitions | ||
found = found.splitBefore('as well as .') | ||
found = found.splitBefore('such as .') | ||
found = found.splitBefore('in addition to .') | ||
// // misc clause partitions | ||
// found = found.splitBefore('as well as .') | ||
// found = found.splitBefore('such as .') | ||
// found = found.splitBefore('in addition to .') | ||
// semicolons, dashes | ||
found = found.splitAfter('@hasSemicolon') | ||
found = found.splitAfter('@hasDash') | ||
// // semicolons, dashes | ||
// found = found.splitAfter('@hasSemicolon') | ||
// found = found.splitAfter('@hasDash') | ||
// // | ||
// found = found.splitBefore('which (were|are|will)') | ||
// // he said [...] | ||
// found = found.splitAfter('#Noun (said|say|says)') | ||
// passive voice verb - '.. which was robbed is empty' | ||
@@ -47,8 +108,10 @@ // let passive = found.match('#Noun (which|that) (was|is) #Adverb? #PastTense #Adverb?') | ||
// does there appear to have relative/subordinate clause still? | ||
let tooLong = found.filter(d => d.wordCount() > 5 && d.match('#Verb+').length >= 2) | ||
if (tooLong.found) { | ||
let m = tooLong.splitAfter('#Noun .* #Verb .* #Noun+') | ||
found = found.splitOn(m.eq(0)) | ||
} | ||
// let tooLong = found.filter(d => d.wordCount() > 5 && d.match('#Verb+').length >= 2) | ||
// if (tooLong.found) { | ||
// // and after the .. | ||
// found = found.splitBefore('#Conjunction #Preposition') | ||
// // let m = tooLong.splitAfter('#Noun .* #Verb .* #Noun+') | ||
// // found = found.splitOn(m.eq(0)) | ||
// } | ||
if (typeof n === 'number') { | ||
@@ -55,0 +118,0 @@ found = found.get(n) |
@@ -37,2 +37,4 @@ const rules = [ | ||
// { match: '#Negative #Adverb ', chunk: 'Verb' }, | ||
// come and have a drink | ||
{ match: '#PresentTense and #PresentTense', chunk: 'Verb' }, | ||
// really not | ||
@@ -39,0 +41,0 @@ { match: '#Adverb #Negative', chunk: 'Verb' }, |
@@ -6,9 +6,9 @@ // return the nth elem of a doc | ||
const toRoot = function (adj) { | ||
const { adjFromComparative, adjFromSuperlative } = adj.methods.two.transform | ||
const { fromComparative, fromSuperlative } = adj.methods.two.transform.adjective | ||
let str = adj.text('normal') | ||
if (adj.has('#Comparative')) { | ||
return adjFromComparative(str, adj.model) | ||
return fromComparative(str, adj.model) | ||
} | ||
if (adj.has('#Superlative')) { | ||
return adjFromSuperlative(str, adj.model) | ||
return fromSuperlative(str, adj.model) | ||
} | ||
@@ -26,3 +26,3 @@ return str | ||
json(opts = {}) { | ||
const { adjToAdverb, adjToNoun, adjToSuperlative, adjToComparative } = this.methods.two.transform | ||
const { toAdverb, toNoun, toSuperlative, toComparative } = this.methods.two.transform.adjective | ||
opts.normal = true | ||
@@ -33,6 +33,6 @@ return this.map(m => { | ||
json.adjective = { | ||
adverb: adjToAdverb(str), | ||
noun: adjToNoun(str), | ||
superlative: adjToSuperlative(str, this.model), | ||
comparative: adjToComparative(str, this.model), | ||
adverb: toAdverb(str), | ||
noun: toNoun(str), | ||
superlative: toSuperlative(str, this.model), | ||
comparative: toComparative(str, this.model), | ||
} | ||
@@ -46,3 +46,3 @@ return json | ||
conjugate(n) { | ||
const { adjToComparative, adjToSuperlative, adjToNoun, adjToAdverb } = this.methods.two.transform | ||
const { toComparative, toSuperlative, toNoun, toAdverb } = this.methods.two.transform.adjective | ||
return getNth(this, n).map(adj => { | ||
@@ -52,6 +52,6 @@ let root = toRoot(adj) | ||
Adjective: root, | ||
Comparative: adjToComparative(root, this.model), | ||
Superlative: adjToSuperlative(root, this.model), | ||
Noun: adjToNoun(root, this.model), | ||
Adverb: adjToAdverb(root, this.model), | ||
Comparative: toComparative(root, this.model), | ||
Superlative: toSuperlative(root, this.model), | ||
Noun: toNoun(root, this.model), | ||
Adverb: toAdverb(root, this.model), | ||
} | ||
@@ -61,6 +61,6 @@ }, []) | ||
toComparative(n) { | ||
const { adjToComparative } = this.methods.two.transform | ||
const { toComparative } = this.methods.two.transform.adjective | ||
return getNth(this, n).map(adj => { | ||
let root = toRoot(adj) | ||
let str = adjToComparative(root, this.model) | ||
let str = toComparative(root, this.model) | ||
return adj.replaceWith(str) | ||
@@ -70,6 +70,6 @@ }) | ||
toSuperlative(n) { | ||
const { adjToSuperlative } = this.methods.two.transform | ||
const { toSuperlative } = this.methods.two.transform.adjective | ||
return getNth(this, n).map(adj => { | ||
let root = toRoot(adj) | ||
let str = adjToSuperlative(root, this.model) | ||
let str = toSuperlative(root, this.model) | ||
return adj.replaceWith(str) | ||
@@ -79,6 +79,6 @@ }) | ||
toAdverb(n) { | ||
const { adjToAdverb } = this.methods.two.transform | ||
const { toAdverb } = this.methods.two.transform.adjective | ||
return getNth(this, n).map(adj => { | ||
let root = toRoot(adj) | ||
let str = adjToAdverb(root, this.model) | ||
let str = toAdverb(root, this.model) | ||
return adj.replaceWith(str) | ||
@@ -88,6 +88,6 @@ }) | ||
toNoun(n) { | ||
const { adjToNoun } = this.methods.two.transform | ||
const { toNoun } = this.methods.two.transform.adjective | ||
return getNth(this, n).map(adj => { | ||
let root = toRoot(adj) | ||
let str = adjToNoun(root, this.model) | ||
let str = toNoun(root, this.model) | ||
return adj.replaceWith(str) | ||
@@ -94,0 +94,0 @@ }) |
@@ -12,3 +12,3 @@ // return the nth elem of a doc | ||
json(opts = {}) { | ||
const toAdj = this.methods.two.transform.advToAdjective | ||
const fromAdverb = this.methods.two.transform.adjective.fromAdverb | ||
opts.normal = true | ||
@@ -18,3 +18,3 @@ return this.map(m => { | ||
json.adverb = { | ||
adjective: toAdj(json.normal) | ||
adjective: fromAdverb(json.normal) | ||
} | ||
@@ -21,0 +21,0 @@ return json |
@@ -11,3 +11,3 @@ const keep = { tags: true } | ||
const toPlural = function (m, parsed) { | ||
const nounToPlural = function (m, parsed) { | ||
// already plural? | ||
@@ -22,6 +22,6 @@ if (parsed.isPlural === true) { | ||
const { methods, model } = m.world | ||
const { nounToPlural } = methods.two.transform | ||
const { toPlural } = methods.two.transform.noun | ||
// inflect the root noun | ||
let str = parsed.root.text('normal') | ||
let plural = nounToPlural(str, model) | ||
let plural = toPlural(str, model) | ||
m.match(parsed.root).replaceWith(plural, keep).tag('Plural', 'toPlural') | ||
@@ -35,2 +35,2 @@ // should we change the determiner/article? | ||
} | ||
export default toPlural | ||
export default nounToPlural |
const keep = { tags: true } | ||
const toSingular = function (m, parsed) { | ||
const nounToSingular = function (m, parsed) { | ||
// already singular? | ||
@@ -9,6 +9,6 @@ if (parsed.isPlural === false) { | ||
const { methods, model } = m.world | ||
const { nounToSingular } = methods.two.transform | ||
const { toSingular } = methods.two.transform.noun | ||
// inflect the root noun | ||
let str = parsed.root.text('normal') | ||
let single = nounToSingular(str, model) | ||
let single = toSingular(str, model) | ||
m.replace(parsed.root, single, keep).tag('Singular', 'toPlural') | ||
@@ -19,2 +19,2 @@ // should we change the determiner/article? | ||
} | ||
export default toSingular | ||
export default nounToSingular |
@@ -21,3 +21,3 @@ import isQuestion from './questions.js' | ||
let json = m.toView().json(opts)[0] || {} | ||
let { subj, verb, pred } = parse(m) | ||
let { subj, verb, pred, grammar } = parse(m) | ||
json.sentence = { | ||
@@ -27,2 +27,3 @@ subject: subj.text('normal'), | ||
predicate: pred.text('normal'), | ||
grammar | ||
} | ||
@@ -29,0 +30,0 @@ return json |
import findMain from './mainClause.js' | ||
const grammar = function (vb) { | ||
let tense = null | ||
if (vb.has('#PastTense')) { | ||
tense = 'PastTense' | ||
} else if (vb.has('#FutureTense')) { | ||
tense = 'FutureTense' | ||
} else if (vb.has('#PresentTense')) { | ||
tense = 'PresentTense' | ||
} | ||
return { | ||
tense | ||
} | ||
} | ||
const parse = function (s) { | ||
@@ -30,5 +44,6 @@ let clauses = s.clauses() | ||
verb, | ||
pred | ||
pred, | ||
grammar: grammar(verb) | ||
} | ||
} | ||
export default parse |
@@ -5,3 +5,3 @@ import { noop, getTense } from '../lib.js' | ||
const simple = (vb, parsed) => { | ||
const { verbToInfinitive } = vb.methods.two.transform | ||
const { toInfinitive } = vb.methods.two.transform.verb | ||
const { root, auxiliary } = parsed | ||
@@ -13,3 +13,3 @@ // 'i may' | ||
let str = root.text('normal') | ||
str = verbToInfinitive(str, vb.model, getTense(root)) | ||
str = toInfinitive(str, vb.model, getTense(root)) | ||
if (str) { | ||
@@ -26,8 +26,8 @@ vb = vb.replace(root, str, keep) | ||
const progressive = (vb, parsed) => { | ||
const { verbConjugate, verbToInfinitive } = vb.methods.two.transform | ||
const { conjugate, toInfinitive } = vb.methods.two.transform.verb | ||
const { root, auxiliary } = parsed | ||
let str = root.text('normal') | ||
str = verbToInfinitive(str, vb.model, getTense(root)) | ||
str = toInfinitive(str, vb.model, getTense(root)) | ||
if (str) { | ||
str = verbConjugate(str, vb.model).Gerund | ||
str = conjugate(str, vb.model).Gerund | ||
vb.replace(root, str, keep) | ||
@@ -34,0 +34,0 @@ vb.not('#Particle').tag('PresentTense') |
@@ -7,3 +7,3 @@ import { getTense, isAreAm } from '../lib.js' | ||
// console.log(form) | ||
const { verbToInfinitive, verbConjugate } = vb.methods.two.transform | ||
const { toInfinitive, conjugate } = vb.methods.two.transform.verb | ||
const { root, auxiliary } = parsed | ||
@@ -16,9 +16,7 @@ if (vb.has('#Gerund')) { | ||
let str = root.text('normal') | ||
str = verbToInfinitive(str, vb.model, getTense(root)) | ||
let gerund = verbConjugate(str, vb.model).Gerund | ||
str = toInfinitive(str, vb.model, getTense(root)) | ||
let gerund = conjugate(str, vb.model).Gerund | ||
// 'are walking', 'is walking' | ||
if (gerund) { | ||
gerund = `${isAreAm(vb, parsed)} ${gerund}` | ||
// console.log(root, gerund) | ||
// vb.match(root).debug() | ||
vb.replace(root, gerund, keep) | ||
@@ -25,0 +23,0 @@ } |
@@ -5,8 +5,8 @@ import { doDoes, getTense } from '../lib.js' | ||
// all verb forms are the same | ||
const toInfinitive = function (vb, parsed) { | ||
const { verbToInfinitive } = vb.methods.two.transform | ||
const toInf = function (vb, parsed) { | ||
const { toInfinitive } = vb.methods.two.transform.verb | ||
const { root, auxiliary } = parsed | ||
let aux = auxiliary.terms().harden() | ||
let str = root.text('normal') | ||
str = verbToInfinitive(str, vb.model, getTense(root)) | ||
str = toInfinitive(str, vb.model, getTense(root)) | ||
if (str) { | ||
@@ -31,2 +31,2 @@ vb.replace(root, str, keep).tag('Verb').firstTerm().tag('Infinitive') | ||
} | ||
export default toInfinitive | ||
export default toInf |
@@ -15,3 +15,3 @@ import { noop, getTense, wasWere, noWill } from '../lib.js' | ||
simple: (vb, parsed) => { | ||
const { verbConjugate, verbToInfinitive } = vb.methods.two.transform | ||
const { conjugate, toInfinitive } = vb.methods.two.transform.verb | ||
const root = parsed.root | ||
@@ -23,4 +23,4 @@ // 'i may' | ||
let str = root.text({ keepPunct: false }) | ||
str = verbToInfinitive(str, vb.model, getTense(root)) | ||
let all = verbConjugate(str, vb.model) | ||
str = toInfinitive(str, vb.model, getTense(root)) | ||
let all = conjugate(str, vb.model) | ||
// 'driven' || 'drove' | ||
@@ -60,7 +60,7 @@ str = all.PastTense | ||
hasParticiple: (vb, parsed) => { | ||
const { verbConjugate, verbToInfinitive } = vb.methods.two.transform | ||
const { conjugate, toInfinitive } = vb.methods.two.transform.verb | ||
const root = parsed.root | ||
let str = root.text('normal') | ||
str = verbToInfinitive(str, vb.model, getTense(root)) | ||
return verbConjugate(str, vb.model).Participle | ||
str = toInfinitive(str, vb.model, getTense(root)) | ||
return conjugate(str, vb.model).Participle | ||
}, | ||
@@ -67,0 +67,0 @@ |
@@ -6,9 +6,9 @@ import { noop, isPlural, isAreAm, doDoes, getSubject, toInf, getTense } from '../lib.js' | ||
const simple = (vb, parsed) => { | ||
const { verbConjugate, verbToInfinitive } = vb.methods.two.transform | ||
const { conjugate, toInfinitive } = vb.methods.two.transform.verb | ||
const root = parsed.root | ||
let str = root.text('normal') | ||
str = verbToInfinitive(str, vb.model, getTense(root)) | ||
str = toInfinitive(str, vb.model, getTense(root)) | ||
// 'i walk' vs 'he walks' | ||
if (isPlural(vb, parsed) === false) { | ||
str = verbConjugate(str, vb.model).PresentTense | ||
str = conjugate(str, vb.model).PresentTense | ||
} | ||
@@ -28,9 +28,9 @@ // handle copula | ||
const toGerund = (vb, parsed) => { | ||
const { verbConjugate, verbToInfinitive } = vb.methods.two.transform | ||
const { conjugate, toInfinitive } = vb.methods.two.transform.verb | ||
const root = parsed.root | ||
let str = root.text('normal') | ||
str = verbToInfinitive(str, vb.model, getTense(root)) | ||
str = toInfinitive(str, vb.model, getTense(root)) | ||
// 'i walk' vs 'he walks' | ||
if (isPlural(vb, parsed) === false) { | ||
str = verbConjugate(str, vb.model).Gerund | ||
str = conjugate(str, vb.model).Gerund | ||
} | ||
@@ -44,7 +44,7 @@ if (str) { | ||
const toInfinitive = (vb, parsed) => { | ||
const { verbToInfinitive } = vb.methods.two.transform | ||
const vbToInf = (vb, parsed) => { | ||
const { toInfinitive } = vb.methods.two.transform.verb | ||
const root = parsed.root | ||
let str = parsed.root.text('normal') | ||
str = verbToInfinitive(str, vb.model, getTense(root)) | ||
str = toInfinitive(str, vb.model, getTense(root)) | ||
if (str) { | ||
@@ -63,3 +63,3 @@ vb = vb.replace(parsed.root, str, keep) | ||
'simple-present': (vb, parsed) => { | ||
const { verbConjugate } = vb.methods.two.transform | ||
const { conjugate } = vb.methods.two.transform.verb | ||
let { root } = parsed | ||
@@ -75,3 +75,3 @@ // is it *only* a infinitive? - 'we buy' etc | ||
let str = root.text('normal') | ||
let pres = verbConjugate(str, vb.model).PresentTense | ||
let pres = conjugate(str, vb.model).PresentTense | ||
if (str !== pres) { | ||
@@ -207,3 +207,3 @@ vb.replace(root, pres, keep) | ||
'modal-past': (vb, parsed) => { | ||
toInfinitive(vb, parsed) | ||
vbToInf(vb, parsed) | ||
return vb.remove('have') | ||
@@ -210,0 +210,0 @@ }, |
@@ -73,5 +73,5 @@ import getSubject from './parse/getSubject.js' | ||
const toInf = function (vb, parsed) { | ||
const { verbToInfinitive } = vb.methods.two.transform | ||
const { toInfinitive } = vb.methods.two.transform.verb | ||
let str = parsed.root.text({ keepPunct: false }) | ||
str = verbToInfinitive(str, vb.model, getTense(vb)) | ||
str = toInfinitive(str, vb.model, getTense(vb)) | ||
if (str) { | ||
@@ -78,0 +78,0 @@ vb.replace(parsed.root, str) |
@@ -109,21 +109,21 @@ const present = { tense: 'PresentTense' } | ||
// got walked, was walked, were walked | ||
['(got|were|was) (#PastTense|#Participle)', [past, passive]], | ||
['(got|were|was) #Passive', [past, passive]], | ||
// was being walked | ||
['^(was|were) being (#PastTense|#Participle)', [past, passive]], | ||
['^(was|were) being #Passive', [past, passive]], | ||
// had been walked, have been eaten | ||
['^(had|have) been (#PastTense|#Participle)', [past, passive]], | ||
['^(had|have) been #Passive', [past, passive]], | ||
], | ||
'passive-present': [ | ||
// is walked, are stolen | ||
['^(is|are|am) (#PastTense|#Participle)', [present, passive]], | ||
['^(is|are|am) #Passive', [present, passive]], | ||
// is being walked | ||
['^(is|are|am) being (#PastTense|#Participle)', [present, passive]], | ||
['^(is|are|am) being #Passive', [present, passive]], | ||
// has been cleaned | ||
['^has been (#PastTense|#Participle)', [present, passive]], | ||
['^has been #Passive', [present, passive]], | ||
], | ||
'passive-future': [ | ||
// will have been walked | ||
['will have been (#PastTense|#Participle)', [future, passive, conditional]], | ||
['will have been #Passive', [future, passive, conditional]], | ||
// will be cleaned | ||
['will be being? (#PastTense|#Participle)', [future, passive, conditional]], | ||
['will be being? #Passive', [future, passive, conditional]], | ||
], | ||
@@ -130,0 +130,0 @@ |
@@ -20,6 +20,6 @@ import parseVerb from './parse/index.js' | ||
const toInfinitive = function (root) { | ||
const { verbToInfinitive } = root.methods.two.transform | ||
const toInf = function (root) { | ||
const { toInfinitive } = root.methods.two.transform.verb | ||
let str = root.text('normal') | ||
return verbToInfinitive(str, root.model, getTense(root)) | ||
return toInfinitive(str, root.model, getTense(root)) | ||
} | ||
@@ -38,3 +38,3 @@ | ||
prefix: toText(parsed.prefix), | ||
infinitive: toInfinitive(parsed.root), | ||
infinitive: toInf(parsed.root), | ||
grammar: info, | ||
@@ -41,0 +41,0 @@ } |
const findVerbs = function (doc) { | ||
let m = doc.match('<Verb>') | ||
// want to see | ||
m = m.not('(#Conjunction && !to)') | ||
// by walking | ||
m = m.not('#Preposition') | ||
m = m.splitAfter('@hasComma') | ||
@@ -26,9 +31,5 @@ | ||
// professes love | ||
let toVerbs = m.match('(#PresentTense|#PastTense) #Infinitive') | ||
if (toVerbs.found && !toVerbs.has('^go')) { | ||
m = m.splitBefore('(#PresentTense|#PastTense) [#Infinitive]', 0) | ||
} | ||
// 'allow yourself' | ||
m = m.not('#Reflexive$') | ||
//ensure there's actually a verb | ||
@@ -38,4 +39,9 @@ m = m.if('#Verb') | ||
// ensure it's not two verbs | ||
// held annually is called | ||
if (m.has('(#Verb && !#Auxiliary) #Adverb+? #Copula')) { | ||
m = m.splitBefore('#Copula') | ||
} | ||
return m | ||
} | ||
export default findVerbs |
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
2245377
11
434
25358