Socket
Socket
Sign inDemoInstall

compromise

Package Overview
Dependencies
Maintainers
3
Versions
169
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

compromise - npm Package Compare versions

Comparing version 14.9.0 to 14.10.0

22

package.json

@@ -5,3 +5,4 @@ {

"description": "modest natural language processing",
"version": "14.9.0",
"version": "14.10.0",
"module": "./src/three.js",
"main": "./src/three.js",

@@ -67,3 +68,3 @@ "unpkg": "./builds/compromise.js",

"test": "tape \"./tests/**/*.test.js\" | tap-dancer",
"testb": "npm run test:smoke && TESTENV=prod npm run test",
"testb": "npm run test:smoke && cross-env TESTENV=prod npm run test",
"test:one": "tape \"./tests/one/**/*.test.js\" | tap-dancer",

@@ -106,13 +107,14 @@ "test:two": "tape \"./tests/two/**/*.test.js\" | tap-dancer",

"devDependencies": {
"@rollup/plugin-node-resolve": "15.0.1",
"@rollup/plugin-node-resolve": "15.1.0",
"@rollup/plugin-terser": "0.4.3",
"amble": "1.3.0",
"eslint": "8.39.0",
"eslint-plugin-regexp": "1.14.0",
"cross-env": "^7.0.3",
"eslint": "8.46.0",
"eslint-plugin-regexp": "1.15.0",
"nlp-corpus": "4.4.0",
"rollup": "3.7.4",
"rollup-plugin-filesize-check": "0.0.2",
"rollup-plugin-terser": "7.0.2",
"rollup": "3.28.0",
"rollup-plugin-filesize-check": "^0.0.2",
"shelljs": "0.8.5",
"tap-dancer": "0.3.4",
"tape": "5.6.3"
"tape": "5.6.6"
},

@@ -126,2 +128,2 @@ "eslintIgnore": [

"license": "MIT"
}
}

@@ -662,3 +662,3 @@ <div align="center">

- **[.sentences().json()](https://observablehq.com/@spencermountain/compromise-sentences)** - overloaded output with sentence metadata
- **[.sentences().subjects()](https://observablehq.com/@spencermountain/compromise-sentences)** - return the main noun of each sentence
<!-- - **[.sentences().subjects()](https://observablehq.com/@spencermountain/compromise-sentences)** - return the main noun of each sentence -->
- **[.sentences().toPastTense()](https://observablehq.com/@spencermountain/compromise-sentences)** - `he walks` -> `he walked`

@@ -811,3 +811,3 @@ - **[.sentences().toPresentTense()](https://observablehq.com/@spencermountain/compromise-sentences)** - `he walked` -> `he walks`

| [Internals](https://observablehq.com/@spencermountain/compromise-internals) | [Json](https://observablehq.com/@spencermountain/compromise-json) | [Html](https://observablehq.com/@spencermountain/compromise-html) |
| [Justification](https://observablehq.com/@spencermountain/compromise-justification) | [Lists](https://observablehq.com/@spencermountain/compromise-lists) | [Keypress](https://observablehq.com/@spencermountain/compromise-keypress) |
| [Justification](https://observablehq.com/@spencermountain/compromise-justification) | [Character Offsets](https://observablehq.com/@spencermountain/compromise-offsets) | [Keypress](https://observablehq.com/@spencermountain/compromise-keypress) |
| [Lexicon](https://observablehq.com/@spencermountain/compromise-lexicon) | [Loops](https://observablehq.com/@spencermountain/compromise-loops) | [Ngrams](https://observablehq.com/@spencermountain/compromise-ngram) |

@@ -825,3 +825,3 @@ | [Match-syntax](https://observablehq.com/@spencermountain/compromise-match-syntax) | [Match](https://observablehq.com/@spencermountain/compromise-match) | [Numbers](https://observablehq.com/@spencermountain/compromise-values) |

| [Fuzzy-matching](https://observablehq.com/@spencermountain/compromise-fuzzy-matching) | [Typescript](https://observablehq.com/@spencermountain/compromise-typescript) | [Mutation](https://observablehq.com/@spencermountain/compromise-mutation) |
| [Root-forms](https://observablehq.com/@spencermountain/compromise-root) | [Character Offsets](https://observablehq.com/@spencermountain/compromise-offsets) | |
| [Root-forms](https://observablehq.com/@spencermountain/compromise-root) |

@@ -828,0 +828,0 @@

@@ -1,1 +0,1 @@

export default '14.9.0'
export default '14.10.0'

@@ -55,3 +55,3 @@ import splice from './_splice.js'

// look for before-match (l' -> [le, _])
else if (before !== null && before === o.before) {
else if (before !== null && before === o.before && after && after.length > 2) {
return o.out.concat(after)

@@ -58,0 +58,0 @@ // return [o.out, after] //typeof o.out === 'string' ? [o.out, after] : o.out(terms, i)

@@ -8,6 +8,3 @@ export default [

{ word: 'cannot', out: ['can', 'not'] },
{ word: 'cant', out: ['can', 'not'] },
{ word: 'dont', out: ['do', 'not'] },
{ word: 'dun', out: ['do', 'not'] },
{ word: 'wont', out: ['will', 'not'] },
{ word: "can't", out: ['can', 'not'] },

@@ -37,7 +34,2 @@ { word: "shan't", out: ['should', 'not'] },

{ word: `c'mon`, out: ['come', 'on'] },
// apostrophe d
{ word: 'howd', out: ['how', 'did'] },
{ word: 'whatd', out: ['what', 'did'] },
{ word: 'whend', out: ['when', 'did'] },
{ word: 'whered', out: ['where', 'did'] },
// shoulda, coulda

@@ -49,3 +41,2 @@ { word: 'shoulda', out: ['should', 'have'] },

// { after: `cause`, out: ['because'] },
{ word: "tis", out: ['it', 'is'] },

@@ -68,2 +59,18 @@ { word: "twas", out: ['it', 'was'] },

{ before: 't', out: ['tu'] }, // t'aime
// missing apostrophes
{ word: 'shouldnt', out: ['should', 'not'] },
{ word: 'couldnt', out: ['could', 'not'] },
{ word: 'wouldnt', out: ['would', 'not'] },
{ word: 'hasnt', out: ['has', 'not'] },
{ word: 'wasnt', out: ['was', 'not'] },
{ word: 'isnt', out: ['is', 'not'] },
{ word: 'cant', out: ['can', 'not'] },
{ word: 'dont', out: ['do', 'not'] },
{ word: 'wont', out: ['will', 'not'] },
// apostrophe d
{ word: 'howd', out: ['how', 'did'] },
{ word: 'whatd', out: ['what', 'did'] },
{ word: 'whend', out: ['when', 'did'] },
{ word: 'whered', out: ['where', 'did'] },
]

@@ -19,3 +19,2 @@ const prefix = /^(under|over|mis|re|un|dis|semi|pre|post)-?/

setTag([t], tag, world, false, '1-lexicon')
// fastTag(t, tag, '1-lexicon')
return true

@@ -29,3 +28,2 @@ }

setTag([t], tag, world, false, '1-lexicon-alias')
// fastTag(t, tag, '1-lexicon-alias')
return true

@@ -42,3 +40,2 @@ }

setTag([t], lexicon[stem], world, false, '1-lexicon-prefix')
// fastTag(t, lexicon[stem], '1-lexicon-prefix')
return true

@@ -45,0 +42,0 @@ }

@@ -34,14 +34,1 @@ export const relPointer = function (ptrs, parent) {

export const isNet = val => val && isObject(val) && val.isNet === true
// is the pointer the full sentence?
// export const isFull = function (ptr, document) {
// let [n, start, end] = ptr
// if (start !== 0) {
// return false
// }
// if (document[n] && document[n][end - 1] && !document[n][end]) {
// return true
// }
// return false
// }

@@ -53,2 +53,15 @@ const combine = function (left, right) {

let all = splitAll(this.fullPointer, splits)
// repair matches to favor [match, after]
// - instead of [before, match]
for (let i = 0; i < all.length; i += 1) {
// move a before to a preceding after
if (!all[i].after && all[i + 1] && all[i + 1].before) {
// ensure it's from the same original sentence
if (all[i].match && all[i].match[0] === all[i + 1].before[0]) {
all[i].after = all[i + 1].before
delete all[i + 1].before
}
}
}
let res = []

@@ -58,8 +71,8 @@ all.forEach(o => {

res.push(o.before)
// a, [x, b]
if (o.match && o.after) {
// console.log(combine(o.match, o.after))
res.push(combine(o.match, o.after))
} else {
// a, [x], b
res.push(o.match)
res.push(o.after)
}

@@ -66,0 +79,0 @@ })

@@ -48,2 +48,6 @@ const hasMinMax = /\{([0-9]+)?(, *[0-9]*)?\}/

}
if (end(w) === '?') {
obj.optional = true
w = stripEnd(w)
}
//capture group (this one can span multiple-terms)

@@ -78,6 +82,2 @@ if (start(w) === '[' || end(w) === ']') {

}
if (end(w) === '?') {
obj.optional = true
w = stripEnd(w)
}
if (start(w) === '!') {

@@ -84,0 +84,0 @@ obj.negative = true

@@ -81,3 +81,3 @@ const trimEnd = /[,:;)\]*.?~!\u0022\uFF02\u201D\u2019\u00BB\u203A\u2032\u2033\u2034\u301E\u00B4—-]+$/

}
if (opts.keepPunct === false) {
if (opts.keepEndPunct === false) {
// don't remove ':)' etc

@@ -87,2 +87,3 @@ if (!docs[0][0].tags.has('Emoticon')) {

}
// remove ending periods
let last = docs[docs.length - 1]

@@ -89,0 +90,0 @@ if (!last[last.length - 1].tags.has('Emoticon')) {

@@ -17,11 +17,12 @@ import { textFromDoc } from './lib/_text.js'

}
if (opts.keepSpace === undefined && this.pointer) {
// is it a full document?
if (opts.keepSpace === undefined && !this.isFull()) { //
opts.keepSpace = false
}
if (opts.keepPunct === undefined && this.pointer) {
if (opts.keepEndPunct === undefined && this.pointer) {
let ptr = this.pointer[0]
if (ptr && ptr[1]) {
opts.keepPunct = false
opts.keepEndPunct = false
} else {
opts.keepPunct = true
opts.keepEndPunct = true
}

@@ -28,0 +29,0 @@ }

@@ -69,3 +69,2 @@ //all punctuation marks, from https://en.wikipedia.org/wiki/Punctuation

}
str = chars.join('')

@@ -72,0 +71,0 @@ //we went too far..

@@ -21,3 +21,3 @@ const titleCase = /^\p{Lu}[\p{Ll}'’]/u //upercase, then lowercase

terms.forEach((t, i) => {
t.text = t.implicit
t.text = t.implicit || ''
delete t.implicit

@@ -24,0 +24,0 @@ //add whitespace

@@ -50,3 +50,5 @@ // order matters

{ match: 'guess who', tag: '#Infinitive #QuestionWord', reason: 'guess-who' },
// swear words
{ match: '[fucking] !#Verb', group: 0, tag: '#Gerund', reason: 'f-as-gerund' },
]
export default matches
const adverbAdj = `(dark|bright|flat|light|soft|pale|dead|dim|faux|little|wee|sheer|most|near|good|extra|all)`
const noLy = '(hard|fast|late|early|high|right|deep|close|direct)'
export default [

@@ -11,2 +13,8 @@ // kinda sparkly

{ match: `#Copula [still] (in|#Gerund|#Adjective)`, group: 0, tag: 'Adverb', reason: 'was-still-walking' },
// studies hard
{ match: `#Plural ${noLy}`, tag: '#PresentTense #Adverb', reason: 'studies-hard' },
// shops direct
{ match: `#Verb [${noLy}] !#Noun?`, group: 0, notIf: '(#Copula|get|got|getting|become|became|becoming|feel|feels|feeling)', tag: 'Adverb', reason: 'shops-direct' },
// studies a lot
{ match: `[#Plural] a lot`, tag: 'PresentTense', reason: 'studies-a-lot' },
]
// Gerund-Adjectives - 'amusing, annoying'
export default [
//a staggering cost
{ match: '(a|an) [#Gerund]', group: 0, tag: 'Adjective', reason: 'a|an' },
// { match: '(a|an) [#Gerund]', group: 0, tag: 'Adjective', reason: 'a|an' },
//as amusing as

@@ -17,2 +17,10 @@ { match: 'as [#Gerund] as', group: 0, tag: 'Adjective', reason: 'as-gerund-as' },

{ match: '#Gerund [#Gerund]', group: 0, tag: 'Adjective', notIf: '(impersonating|practicing|considering|assuming)', reason: 'looking-annoying' },
// looked amazing
{ match: '(looked|look|looks) #Adverb? [%Adj|Gerund%]', group: 0, tag: 'Adjective', notIf: '(impersonating|practicing|considering|assuming)', reason: 'looked-amazing' },
// were really amazing
// { match: '(looked|look|looks) #Adverb [%Adj|Gerund%]', group: 0, tag: 'Adjective', notIf: '(impersonating|practicing|considering|assuming)', reason: 'looked-amazing' },
// developing a
{ match: '[%Adj|Gerund%] #Determiner', group: 0, tag: 'Gerund', reason: 'developing-a' },
// world's leading manufacturer
{ match: '#Possessive [%Adj|Gerund%] #Noun', group: 0, tag: 'Adjective', reason: 'leading-manufacturer' },
]

@@ -46,3 +46,8 @@ export default [

{ match: 'or [#PastTense] #Noun', group: 0, tag: 'Adjective', notIf: '(#Copula|#Pronoun)', reason: 'or-heightened-emotion' },
// became involved
{ match: '(become|became|becoming|becomes) [#Verb]', group: 0, tag: 'Adjective', reason: 'become-verb' },
// their declared intentions
{ match: '#Possessive [#PastTense] #Noun', group: 0, tag: 'Adjective', reason: 'declared-intentions' },
// is he cool
{ match: '#Copula #Pronoun [%Adj|Present%]', group: 0, tag: 'Adjective', reason: 'is-he-cool' },
]

@@ -32,3 +32,3 @@ // const adverbAdj = '(dark|bright|flat|light|soft|pale|dead|dim|faux|little|wee|sheer|most|near|good|extra|all)'

{
match: '#PresentTense [(hard|quick|long|bright|slow|fast|backwards|forwards)]',
match: '#PresentTense [(hard|quick|bright|slow|fast|backwards|forwards)]',
notIf: '#Copula',

@@ -54,3 +54,3 @@ group: 0,

//walking close
{ match: '#Gerund #Adverb? [close]', group: 0, tag: 'Adverb', reason: 'being-close' },
{ match: '#Gerund #Adverb? [close]', group: 0, tag: 'Adverb', notIf: '(getting|becoming|feeling)', reason: 'being-close' },
// a blown motor

@@ -64,2 +64,6 @@ { match: '(the|those|these|a|an) [#Participle] #Noun', group: 0, tag: 'Adjective', reason: 'blown-motor' },

{ match: '[later] #PresentTense', group: 0, tag: 'Adverb', reason: 'later-say' },
// the well
{ match: '#Determiner [well] !#PastTense?', group: 0, tag: 'Noun', reason: 'the-well' },
// high enough
{ match: '#Adjective [enough]', group: 0, tag: 'Adverb', reason: 'high-enough' },
]

@@ -20,3 +20,3 @@ export default [

//this march
{ match: `(this|next|last) (march|may) !#Infinitive`, tag: '#Date #Month', reason: 'this-month' },
{ match: `(this|next|last) (march|may) !#Infinitive?`, tag: '#Date #Month', reason: 'this-month' },
// march 5th

@@ -23,0 +23,0 @@ { match: `(march|may) the? #Value`, tag: '#Month #Date #Date', reason: 'march-5th' },

@@ -73,3 +73,3 @@ const infNouns =

// dance coach
{ match: `#Noun+ (coach|chef|king|engineer|fellow|personality|boy|girl|man|woman)`, tag: 'Actor', reason: 'dance-coach' },
{ match: `#Noun+ (coach|chef|king|engineer|fellow|personality|boy|girl|man|woman|master)`, tag: 'Actor', reason: 'dance-coach' },
// chief design officer

@@ -82,3 +82,2 @@ { match: `chief . officer`, tag: 'Actor', reason: 'chief-x-officer' },

// ==== Singular ====

@@ -131,3 +130,19 @@ //the sun

{ match: '[#PresentTense] (music|class|lesson|night|party|festival|league|ceremony)', group: 0, tag: 'Noun', reason: 'dance-music' },
// wit it
{ match: '[wit] (me|it)', group: 0, tag: 'Presposition', reason: 'wit-me' },
//left-her-boots, shoved her hand
{ match: '#PastTense #Possessive [#Verb]', group: 0, tag: 'Noun', notIf: '(saw|made)', reason: 'left-her-boots' },
//35 signs
{ match: '#Value [%Plural|Verb%]', group: 0, tag: 'Plural', notIf: '(one|1|a|an)', reason: '35-signs' },
//had time
{ match: 'had [#PresentTense]', group: 0, tag: 'Noun', notIf: '(#Gerund|come|become)', reason: 'had-time' },
//instant access
{ match: '%Adj|Noun% %Noun|Verb%', tag: '#Adjective #Noun', notIf: '#ProperNoun #Noun', reason: 'instant-access' },
// a representative to
{ match: '#Determiner [%Adj|Noun%] #Conjunction', group: 0, tag: 'Noun', reason: 'a-rep-to' },
// near death experiences, ambitious sales targets
{ match: '#Adjective #Noun [%Plural|Verb%]$', group: 0, tag: 'Plural', notIf: '#Pronoun', reason: 'near-death-experiences' },
// your guild colors
{ match: '#Possessive #Noun [%Plural|Verb%]$', group: 0, tag: 'Plural', reason: 'your-guild-colors' },
]

@@ -6,3 +6,6 @@ export default [

// maybe currencies
{ match: '#Value (mark|rand|won|rub|ore)', tag: '#Money #Currency', reason: '4 mark' },
{ match: '#Value (mark|rand|won|rub|ore)', tag: '#Money #Currency', reason: '4-mark' },
// 3 pounds
{ match: 'a pound', tag: '#Money #Unit', reason: 'a-pound' },
{ match: '#Value (pound|pounds)', tag: '#Money #Unit', reason: '4-pounds' },
]

@@ -34,2 +34,4 @@ // this is really hard to do

{ match: '^[(shut|close|open|start|stop|end|keep)] #Determiner #Noun', group: 0, tag: 'Imperative', reason: 'shut-the-door' },
// turn off the light
{ match: '^[#PhrasalVerb #Particle] #Determiner #Noun', group: 0, tag: 'Imperative', reason: 'turn-off-the-light' },
// go to toronto

@@ -70,3 +72,5 @@ { match: '^[go] to .', group: 0, tag: 'Imperative', reason: 'go-to-toronto' },

{ match: 'do not (forget|omit|neglect) to [#Infinitive]', group: 0, tag: 'Imperative', reason: 'do-not-forget' },
// pay attention
{ match: '^[(ask|wear|pay|look|help|show|watch|act|fix|kill|stop|start|turn|try|win)] #Noun', group: 0, tag: 'Imperative', reason: 'pay-attention' },
]

@@ -23,2 +23,4 @@ export default [

{ match: 'help [(stop|end|make|start)]', group: 0, tag: 'Infinitive', reason: 'help-stop' },
// work in the office
{ match: '#PhrasalVerb (in && #Particle) #Determiner', tag: '#Verb #Preposition #Determiner', unTag: 'PhrasalVerb', reason: 'work-in-the' },
// start listening

@@ -25,0 +27,0 @@ { match: '[(stop|start|finish|help)] #Gerund', group: 0, tag: 'Infinitive', reason: 'start-listening' },

@@ -21,3 +21,3 @@ export default [

//a close watch on
{ match: '(a|an) #Adjective? #Noun [#Infinitive] (#Preposition|#Noun)', group: 0, tag: 'Noun', reason: 'a-noun-inf' },
{ match: '(a|an) #Adjective? #Noun [#Infinitive] (#Preposition|#Noun)', group: 0, notIf: 'from', tag: 'Noun', reason: 'a-noun-inf' },
//a tv show

@@ -32,3 +32,3 @@ { match: '(a|an) #Noun [#Infinitive]$', group: 0, tag: 'Noun', reason: 'a-noun-inf2' },

// running to work
{ match: '#Gerund #Adjective to [#Infinitive]', group: 0, tag: 'Noun', reason: 'running-to' },
// { match: '#Gerund #Adjective to [#Infinitive]', group: 0, tag: 'Noun', reason: 'running-to' },
// about love

@@ -60,3 +60,7 @@ { match: 'about [#Infinitive]', group: 0, tag: 'Singular', reason: 'about-love' },

//this rocks
{ match: '(this|that) [#Plural]', group: 0, tag: 'PresentTense', notIf: '#Preposition', reason: 'this-verbs' },
{ match: 'this [#Plural]', group: 0, tag: 'PresentTense', notIf: '(#Preposition|#Date)', reason: 'this-verbs' },
//voice that rocks
{ match: '#Noun that [#Plural]', group: 0, tag: 'PresentTense', notIf: '(#Preposition|#Pronoun|way)', reason: 'voice-that-rocks' },
//that leads to
{ match: 'that [#Plural] to', group: 0, tag: 'PresentTense', notIf: '#Preposition', reason: 'that-leads-to' },
//let him glue

@@ -172,2 +176,6 @@ {

{ match: 'to #Infinitive [#PresentTense]', group: 0, tag: 'Noun', notIf: '(#Gerund|#Copula|help)', reason: 'to-give-thanks' },
// kills me
{ match: '[#Noun] me', group: 0, tag: 'Verb', reason: 'kills-me' },
// removes wrinkles
{ match: '%Plural|Verb% %Plural|Verb%', tag: '#PresentTense #Plural', reason: 'removes-wrinkles' },
]

@@ -57,4 +57,2 @@ export default [

{ match: `[(look|looks)] #Adjective`, group: 0, tag: 'PresentTense', reason: 'looks-good' },
// needs to learn
{ match: `[(need|needs)] to #Infinitive`, group: 0, tag: 'PresentTense', reason: 'need-to-learn' },
// stops thinking

@@ -89,3 +87,6 @@ { match: `[(start|starts|stop|stops|begin|begins)] #Gerund`, group: 0, tag: 'Verb', reason: 'starts-thinking' },

{ match: '[%Adj|Past%] and #PastTense', group: 0, tag: 'PastTense', reason: 'dressed-and-left' },
// is he stoked
{ match: '#Copula #Pronoun [%Adj|Past%]', group: 0, tag: 'Adjective', reason: 'is-he-stoked' },
// to dream of
{ match: 'to [%Noun|Verb%] #Preposition', group: 0, tag: 'Infinitive', reason: 'to-dream-of' },
]

@@ -36,6 +36,6 @@ import colons from './1st-pass/01-colons.js'

for (let i = 0; i < terms.length; i += 1) {
// hard-nosed, faith-based
// hyphens(terms, i, model, world)
}
// for (let i = 0; i < terms.length; i += 1) {
// hard-nosed, faith-based
// hyphens(terms, i, model, world)
// }
})

@@ -42,0 +42,0 @@ }

@@ -27,7 +27,7 @@ // import { toPast, toPresent, toGerund, toParticiple } from '../../../../model/models/index.js'

let found = {
Infinitive: inf,
Infinitive: str,
PastTense: convert(str, toPast),
PresentTense: convert(str, toPresent),
Gerund: convert(str, toGerund),
FutureTense: 'will ' + inf
FutureTense: 'will ' + str
}

@@ -34,0 +34,0 @@ // add past-participle if it's interesting

@@ -63,3 +63,5 @@ const jj = 'Adjective'

or: jj, //insulting or
enough: jj, //cool enough
about: jj, //cool about
},
}

@@ -58,2 +58,3 @@ const g = 'Gerund'

him: g, //
his: g, //
them: g, //

@@ -67,3 +68,5 @@ their: g, // fighting their

for: g, // paying for
up: g, //speeding up
down: g, //
},
}

@@ -81,2 +81,8 @@ const n = 'Singular'

one: n,//one flood
let: n,//let fear
her: n,//her boots
his: n,//
their: n,//
our: n,//
us: n,//served us drinks
},

@@ -100,5 +106,8 @@ afterWords: {

is: n,
did: n,
do: n,
can: n,//parents can
wise: n,//service-wise
// they: n,//snakes they
},
}

@@ -78,3 +78,5 @@ const v = 'Infinitive'

her: v, //
his: v, //
them: v, //
they: v, //
it: v, //hope it

@@ -120,3 +122,4 @@ himself: v,

there: v,//
away: v,//float away
},
}

@@ -11,2 +11,5 @@ import adj from './_adj.js'

PhrasalVerb: 'Adjective'//starts out fine
},
afterTags: {
// Pronoun: 'Noun'//as an adult i
}

@@ -16,3 +19,3 @@ }

beforeTags: Object.assign({}, adj.beforeTags, noun.beforeTags, misc.beforeTags),
afterTags: Object.assign({}, adj.afterTags, noun.afterTags),
afterTags: Object.assign({}, adj.afterTags, noun.afterTags, misc.afterTags),
beforeWords: Object.assign({}, adj.beforeWords, noun.beforeWords, {

@@ -19,0 +22,0 @@ // are representative

@@ -57,2 +57,6 @@ import adj from './_adj.js'

them: past,//charged us
his: past,//shared his
her: past,//
their: past,//
our: past,//
me: past,//

@@ -59,0 +63,0 @@ },

@@ -6,2 +6,3 @@ import person from './_person.js'

const m = 'Month'
const p = 'Person'
const month = {

@@ -33,2 +34,4 @@ beforeTags: {

following: m,
with: p,
// for: p,
},

@@ -35,0 +38,0 @@ afterWords: {

@@ -10,6 +10,6 @@ // generated in ./lib/pairs

"Gerund": {
"fwd": "1:nning,tting,rring,pping,eing,mming,gging,dding,bbing,kking¦2:eking,oling,eling,eming¦3:velling,siting,uiting,fiting,loting,geting,ialing¦4:graming",
"both": "1:iing,fing,xing,ying,oing,hing,wing¦2:tzing,rping,izzing,bting,mning,sping,wling,rling,wding,rbing,uping,lming,wning,mping,oning,lting,mbing,lking,fting,hting,sking,gning,pting,cking,ening,nking,iling,eping,ering,rting,rming,cting,lping,ssing,nting,nding,lding,sting,rning,rding,rking¦3:yaking,uaking,oaning,auling,valing,aiding,naping,euring,tolling,uzzing,ganing,haning,ualing,halling,iasing,auding,ieting,ceting,ouling,voring,ralling,ooding,garing,joring,ooping,oaking,roring,oaming,uelling,nelling,eaping,eeting,ooting,ooming,xiting,keting,ooking,ulling,airing,oaring,biting,outing,oiting,eeding,naling,eaming,oading,earing,delling,ouring,eaking,aiming,illing,oining,eaning,onging,ealing,aining,eading¦4:melling,aboring,ivoting,weating,dfilling,onoring,eriting,imiting,heating,tialling,rgining,otoring,linging,winging,lleting,louding,spelling,looring,mpelling,xcelling,feating,opelling,choring,welling,ymaking,ctoring,calling,peating,iloring,laiting,utoring,uditing,nmaking,mmaking,loating,iciting,waiting,mbating,voiding,otalling,nsoring,nselling,ocusing,itoring,eloping¦5:rselling,umpeting,atrolling,treating,tselling,rpreting,pringing,ummeting,ossoming,elmaking,eselling,rediting,defining,totyping,rfeiting,ntrolling¦5e:chmaking,orsaking,severing,erouting,ecreting,ephoning,uthoring,reathing,pediting,erfering,eotyping,fringing,entoring,ombining,ompeting¦4e:emaking,eething,dmiring,chuting,xciting,rseding,scoping,edoring,pinging,lunging,agining,craping,pleting,eleting,nciting,nfining,ncoding,tponing,ecoding,writing,esaling,gnoring,evoting,mpeding,dhering,mpiling,storing,nviting,ploring¦3e:tining,wining,nuring,ruling,haling,ceding,xuding,rining,nuting,caring,miling,riding,hoking,piring,lading,laking,curing,uading,noting,taping,futing,paring,raking,vening,loding,siring,guring,vading,voking,niting,laning,coring,caping,luting,muting,ruding,ciding,juring,laming,caling,hining,uoting,liding,ciling,duling,tuting,puting,cuting,laring,uiding,tiring,turing,siding,rading,enging,haping,buting,lining,taking,anging,haring,uiring,coming,mining,moting,suring,viding,luding¦2e:tring,zling,uging,oging,gling,iging,vring,fling,lging,iping,obing,psing,pling,ubing,cling,dling,wsing,iking,rsing,dging,kling,ysing,tling,rging,eging,nsing,uning,osing,uming,using,ibing,bling,aging,ising,asing,ating¦2ie:rlying¦1e:zing,uing,cing,ving",
"rev": "ying:ie¦1ing:se,ke,te,we,ne,re,de,pe,me,le,c,he¦2ing:ll,ng,dd,ee,ye,oe,or,rg,us¦2ning:un¦2ging:og,ag,ug,ig,eg¦2ming:um¦2ping:ip¦2bing:ub,ab,eb,ob¦3ning:lan,can,hin,pin,win¦3ring:cur,lur,tir,tar,pur,car¦3ing:eat,dit,ool,eel,oat,eem,lel¦3ping:rop,rap,wap,hop,lap,cap¦3ming:tem,wim,rim,kim¦3ting:mat,cut,pot,lit,nit,hat,set,pit,rot¦3ding:hed,bed,bid,red¦3king:rek¦3bing:rib¦3ling:pel¦4ning:egin¦4ing:isit,ruit,ilot,nsit,dget,rkel,rcel¦4ring:efer,nfer¦4ling:abel,evel,ncil,ivel¦4ting:rmit,mmit,ysit,dmit,emit,bmit,tfit,gret,llot¦5ing:arget,posit,rofit¦5ring:nsfer¦5ting:nsmit,orget,cquit¦5ling:ancel,istil",
"ex": "3:adding,eating,aiming,aiding,airing,outing,gassing,setting,getting,putting,cutting,winning,sitting,betting,mapping,tapping,letting,bidding,hitting,tanning,netting,popping,fitting,capping,lapping,barring,banning,vetting,topping,rotting,potting,wetting,pitting,budding,hemming,pinning,jetting,kidding,padding,podding,wedding,bedding,donning,warring,penning,gutting,cueing,wadding,petting,napping,matting,tinning¦4:selling,falling,calling,waiting,editing,telling,rolling,heating,boating,hanging,beating,coating,singing,mooring,tolling,felling,polling,discing,seating,voiding,gelling,yelling,seeking,stopping,spanning,stepping,emitting,quitting,dialing,omitting,plotting,clotting,shutting,skinning,slotting,abutting,cramming¦5:bringing,treating,labelling,spelling,stalling,trolling,expelling,wringing,deterring,singeing,befitting,refitting¦6:enrolling,cancelling,distilling,scrolling,strolling,caucusing,travelling¦7:installing,stencilling,recharging,overeating,benefiting,unraveling,programing¦9:reprogramming¦is:being¦2e:using,aging,owing¦3e:making,taking,coming,noting,hiring,filing,coding,citing,doping,baking,coping,hoping,lading,caring,naming,voting,riding,mining,curing,lining,ruling,typing,boring,dining,firing,hiding,piling,taping,waning,baling,boning,faring,honing,luring,timing,wading,fading,biting,zoning,daring,waking,gaming,raking,ceding,tiring,coking,wining,joking,paring,gaping,poking,pining,coring,liming,toting,roping,wiring,aching¦4e:writing,storing,eroding,framing,smoking,tasting,wasting,phoning,shaking,shading,abiding,pasting,priming,shoring,sloping,withing¦5e:defining,refining,enduring,renaming,swathing,fringing,reciting¦1ie:dying,tying,lying,vying¦7e:sunbathing¦10e:recordkeeping"
"fwd": "1:nning,tting,rring,pping,eing,mming,gging,dding,bbing,kking¦2:eking,oling,eling,eming¦3:velling,siting,uiting,fiting,loting,geting,ialing,celling¦4:graming",
"both": "1:aing,iing,fing,xing,ying,oing,hing,wing¦2:tzing,rping,izzing,bting,mning,sping,wling,rling,wding,rbing,uping,lming,wning,mping,oning,lting,mbing,lking,fting,hting,sking,gning,pting,cking,ening,nking,iling,eping,ering,rting,rming,cting,lping,ssing,nting,nding,lding,sting,rning,rding,rking¦3:belling,siping,toming,yaking,uaking,oaning,auling,ooping,aiding,naping,euring,tolling,uzzing,ganing,haning,ualing,halling,iasing,auding,ieting,ceting,ouling,voring,ralling,garing,joring,oaming,oaking,roring,nelling,ooring,uelling,eaming,ooding,eaping,eeting,ooting,ooming,xiting,keting,ooking,ulling,airing,oaring,biting,outing,oiting,earing,naling,oading,eeding,ouring,eaking,aiming,illing,oining,eaning,onging,ealing,aining,eading¦4:thoming,melling,aboring,ivoting,weating,dfilling,onoring,eriting,imiting,tialling,rgining,otoring,linging,winging,lleting,louding,spelling,mpelling,heating,feating,opelling,choring,welling,ymaking,ctoring,calling,peating,iloring,laiting,utoring,uditing,mmaking,loating,iciting,waiting,mbating,voiding,otalling,nsoring,nselling,ocusing,itoring,eloping¦5:rselling,umpeting,atrolling,treating,tselling,rpreting,pringing,ummeting,ossoming,elmaking,eselling,rediting,totyping,onmaking,rfeiting,ntrolling¦5e:chmaking,dkeeping,severing,erouting,ecreting,ephoning,uthoring,ravening,reathing,pediting,erfering,eotyping,fringing,entoring,ombining,ompeting¦4e:emaking,eething,twining,rruling,chuting,xciting,rseding,scoping,edoring,pinging,lunging,agining,craping,pleting,eleting,nciting,nfining,ncoding,tponing,ecoding,writing,esaling,nvening,gnoring,evoting,mpeding,rvening,dhering,mpiling,storing,nviting,ploring¦3e:tining,nuring,saking,miring,haling,ceding,xuding,rining,nuting,laring,caring,miling,riding,hoking,piring,lading,curing,uading,noting,taping,futing,paring,hading,loding,siring,guring,vading,voking,during,niting,laning,caping,luting,muting,ruding,ciding,juring,laming,caling,hining,uoting,liding,ciling,duling,tuting,puting,cuting,coring,uiding,tiring,turing,siding,rading,enging,haping,buting,lining,taking,anging,haring,uiring,coming,mining,moting,suring,viding,luding¦2e:tring,zling,uging,oging,gling,iging,vring,fling,lging,obing,psing,pling,ubing,cling,dling,wsing,iking,rsing,dging,kling,ysing,tling,rging,eging,nsing,uning,osing,uming,using,ibing,bling,aging,ising,asing,ating¦2ie:rlying¦1e:zing,uing,cing,ving",
"rev": "ying:ie¦1ing:se,ke,te,we,ne,re,de,pe,me,le,c,he¦2ing:ll,ng,dd,ee,ye,oe,rg,us¦2ning:un¦2ging:og,ag,ug,ig,eg¦2ming:um¦2bing:ub,ab,eb,ob¦3ning:lan,can,hin,pin,win¦3ring:cur,lur,tir,tar,pur,car¦3ing:ait,del,eel,fin,eat,oat,eem,lel,ool,ein,uin¦3ping:rop,rap,top,uip,wap,hip,hop,lap,rip,cap¦3ming:tem,wim,rim,kim,lim¦3ting:mat,cut,pot,lit,lot,hat,set,pit,put¦3ding:hed,bed,bid¦3king:rek¦3ling:cil,pel¦3bing:rib¦4ning:egin¦4ing:isit,ruit,ilot,nsit,dget,rkel,ival,rcel¦4ring:efer,nfer¦4ting:rmit,mmit,ysit,dmit,emit,bmit,tfit,gret¦4ling:evel,xcel,ivel¦4ding:hred¦5ing:arget,posit,rofit¦5ring:nsfer¦5ting:nsmit,orget,cquit¦5ling:ancel,istil",
"ex": "3:adding,eating,aiming,aiding,airing,outing,gassing,setting,getting,putting,cutting,winning,sitting,betting,mapping,tapping,letting,bidding,hitting,tanning,netting,popping,fitting,capping,lapping,barring,banning,vetting,topping,rotting,tipping,potting,wetting,pitting,dipping,budding,hemming,pinning,jetting,kidding,padding,podding,sipping,wedding,bedding,donning,warring,penning,gutting,cueing,wadding,petting,ripping,napping,matting,tinning,binning,dimming,hopping,mopping,nodding,panning,rapping,ridding,sinning¦4:selling,falling,calling,waiting,editing,telling,rolling,heating,boating,hanging,beating,coating,singing,tolling,felling,polling,discing,seating,voiding,gelling,yelling,baiting,reining,ruining,seeking,spanning,stepping,knitting,emitting,slipping,quitting,dialing,omitting,clipping,shutting,skinning,abutting,flipping,trotting,cramming,fretting,suiting¦5:bringing,treating,spelling,stalling,trolling,expelling,rivaling,wringing,deterring,singeing,befitting,refitting¦6:enrolling,distilling,scrolling,strolling,caucusing,travelling¦7:installing,redefining,stencilling,recharging,overeating,benefiting,unraveling,programing¦9:reprogramming¦is:being¦2e:using,aging,owing¦3e:making,taking,coming,noting,hiring,filing,coding,citing,doping,baking,coping,hoping,lading,caring,naming,voting,riding,mining,curing,lining,ruling,typing,boring,dining,firing,hiding,piling,taping,waning,baling,boning,faring,honing,wiping,luring,timing,wading,piping,fading,biting,zoning,daring,waking,gaming,raking,ceding,tiring,coking,wining,joking,paring,gaping,poking,pining,coring,liming,toting,roping,wiring,aching¦4e:writing,storing,eroding,framing,smoking,tasting,wasting,phoning,shaking,abiding,braking,flaking,pasting,priming,shoring,sloping,withing,hinging¦5e:defining,refining,renaming,swathing,fringing,reciting¦1ie:dying,tying,lying,vying¦7e:sunbathing"
},

@@ -23,11 +23,11 @@ "Participle": {

"PastTense": {
"fwd": "1:tted,wed,gged,nned,een,rred,pped,yed,bbed,oed,dded,rd,s,wn,mmed¦2:eed,nded,et,hted,st,oled,ut,emed,eled,lded,ken,rt,nked,apt,ant,eped,eked¦3:eared,eat,eaded,nelled,ealt,eeded,ooted,eaked,eaned,eeted,mited,bid,uit,ead,uited,ealed,geted,velled¦4:ebuted,hined,taked,comed¦y:ied¦ome:ame¦ear:ore¦ind:ound¦ep:pt¦ink:ank,unk¦all:ell¦ee:aw¦ive:ave¦eeze:oze¦old:eld¦ave:ft¦ake:ook¦ing:ang¦ell:old¦ite:ote¦ide:ode¦ine:one¦in:un,on¦eal:ole¦im:am¦ie:ay¦and:ood¦1ise:rose¦1eak:roke¦1ing:rought,rung¦1ive:rove¦1id:bade¦1et:got¦1y:aid¦3e:lid¦3d:pent",
"both": "1:fed,xed,hed¦2:rped,lked,kied,lmed,lped,uped,bted,rbed,rked,wned,rled,mped,fted,mned,mbed,zzed,ened,cked,gned,lted,sked,ued,zed,nted,ered,rted,rmed,ced,sted,rned,ssed,rded,pted,ved,cted¦3:oomed,iped,oided,eiled,yped,taled,moned,yled,lit,kled,oaked,gled,naled,fled,outed,uined,oared,valled,koned,soned,aided,obed,ibed,meted,nicked,rored,micked,keted,vred,ooped,oaded,rited,aired,auled,filled,ouled,ooded,ceted,tolled,oited,bited,tled,vored,dled,eamed,nsed,rsed,sited,owded,pled,sored,rged,osed,oured,psed,oated,loned,aimed,illed,eured,tred,ioned,celled,bled,wsed,ooked,oiled,itzed,iked,iased,onged,ased,ailed,uned,umed,ained,auded,nulled,ysed,eged,ised,aged,oined,ated,used,dged,doned¦4:honed,tuted,pited,naked,miled,helled,haped,cored,caled,tired,peated,futed,ciled,called,tined,moted,filed,sided,poned,iloted,uaded,lleted,huted,ruled,cured,named,preted,voked,vaded,sured,pired,haled,peded,gined,nited,uided,ramed,feited,laked,gured,ctored,unged,loded,xpelled,cuted,caped,eloped,ralled,rined,coded,icited,vided,spelled,voted,mined,sired,noted,lined,nselled,luted,vened,jured,fided,puted,piled,pared,olored,cided,hoked,enged,tured,geoned,cotted,lamed,uiled,waited,udited,anged,luded,mired,uired,raded¦5:umpeted,ailored,rseded,quared,treated,eduled,ecited,rammed,eceded,atrolled,nitored,basted,nvited,rfered,itialled,ncited,gnored,truded,xcited,nrolled,namelled,plored,clared,redited,nfined,pleted,ompelled,llided,ircled,lcined,eathed,nefited,ibuted,lloted,dhered,cceded¦2aw:drew¦2ot:hot¦2ke:made¦2ow:hrew,grew¦2ose:hose¦2d:ilt¦2in:egan¦1go:rwent¦1ink:hought¦1ick:tuck¦1ike:ruck¦1eak:poke,nuck¦1it:pat¦1o:did¦1ow:new¦1el:elt¦1ing:lung¦1ake:woke¦ig:ug",
"rev": "3:rst,urt,set,ous,hed,hut,cut¦4:tbid¦5:dcast,eread,pread,erbid¦ought:uy,eek¦ung:ang¦1ied:ny,ly,dy,ry,fy,py,vy,by¦1pt:eep¦1ank:rink¦1ore:bear,wear¦1ave:give¦1oze:reeze¦1ound:rind¦1ook:take,hake¦1aw:see¦1old:sell¦1ote:rite¦1ole:teal¦1unk:tink¦1am:wim¦1ay:lie¦1ood:tand¦1eld:hold¦2d:he,ge,re,le,leed,ne,reed,be,ye,lee,pe¦2ed:dd,oy,or,ey,ho,gg,rr¦2ame:ecome,rcome¦2ped:ip¦2ged:ag,og,ug¦2bed:ub,ab,ib,ob¦2id:pay¦2ang:pring¦2ove:trive¦2med:um¦3ted:mit,hat,mat,lat,pot¦3ed:low,tow,und,ool,ond,eem,lay,dow,xit,eld,cus,ald,iew,bel,oan,del,uld,law,lel,eat,ray,ull,ank,fin,oam,oll,how,iek,tay,haw,ait¦3d:ste,ede,ode,ete,ree,ame,tee,oke,ote,ime¦3red:lur,cur,pur¦3ped:hop,rop,tep,top,rap¦3ded:bed,rod,kid¦3ade:orbid¦3led:uel¦3ned:lan,can,kin,pan,tun¦3med:rim¦4ted:quit,llot¦4ed:peal,cend,lend,rrow,rand,lean,mand,ceal,tend,fend,pear,anel,pand,reet,link,evel,imit,lead,mend,enew,cind,crew,head,pell,tall,well,rend,mell¦4led:nnel,qual¦4n:sake,trew¦4red:nfer,efer,sfer¦4ded:hred¦4ned:rpin¦5ed:ppend,light,epend,ndear,xceed,xpend,oceed,cruit,emind,cceed,spend,arget,hread,eight¦5led:ntrol,ravel¦5ped:erlap",
"ex": "2:been,upped¦3:added,aged,aided,aimed,aired,bid,died,dyed,egged,erred,eyed,fit,gassed,hit,lied,owed,pent,pied,tied,used,vied,banned,barred,bet,canned,capped,cut,donned,ended,feed,inked,jarred,let,manned,mapped,mowed,napped,netted,padded,panned,pitted,popped,potted,put,set,sewn,sowed,tanned,tapped,topped,vowed,weed¦4:ached,baked,baled,boned,bored,called,caned,cared,ceded,cited,coded,cored,cubed,cured,dared,dined,edited,exited,faked,fared,filed,fined,fired,fuelled,gamed,gelled,hired,hoped,joked,lined,loaned,mined,named,noted,piled,poked,polled,pored,pulled,reaped,roamed,rolled,ruled,seated,shed,sided,taped,timed,tolled,toned,voted,waited,walled,waned,winged,wired,zoned,banded,beat,brewed,cast,cost,dealt,feared,folded,footed,handed,headed,heard,knitted,landed,leaked,leapt,linked,meant,minded,molded,neared,needed,peaked,plodded,plotted,quit,read,rooted,sealed,seeded,seeped,shunned,skimmed,slammed,sparred,stemmed,stirred,suited,tended,thinned,twinned¦5:basted,cheated,equalled,eroded,exiled,focused,opined,pleated,primed,quoted,shared,shored,sloped,smoked,spelled,stalled,stored,swelled,tasted,treated,wasted,smelled,breaded,cleared,debuted,deterred,freaked,rebutted,speeded,staked¦6:anchored,defeated,defined,endured,impaled,propelled,refined,revered,strolled,recast,regretted,revealed,thrust,unfolded¦7:authored,combined,competed,conceded,controlled,entwined,excreted,installed,redefined,restored,welcomed¦8:expedited,infringed¦9:persevered,copyrighted¦10:intertwined¦eat:ate¦is:was¦go:went¦are:were¦3d:bent,lent,rent,sent¦3e:bit,fled,hid,lost¦3ed:bled,bred¦2ow:blew,grew¦1uy:bought¦2tch:caught¦1o:did¦1ive:dove,gave¦2aw:drew¦2ed:fed¦2y:flew,laid,paid,said¦1ight:fought¦1et:got¦2ve:had¦1ang:hung¦2ad:led¦2ght:lit¦2ke:made¦2et:met¦1un:ran¦1ise:rose¦1it:sat¦1eek:sought¦1each:taught¦1ake:woke,took¦1eave:wove¦2ise:arose¦1ear:bore,tore,wore¦1ind:bound,found,wound¦2eak:broke¦2ing:brought,wrung¦1ome:came¦2ive:drove¦1all:fell¦4et:forgot¦1old:held¦2ave:left¦1ing:rang,sang¦1ide:rode¦1ink:sank¦1ee:saw¦2ine:shone¦4e:slid¦1ell:sold,told¦4d:spent¦2in:spun¦1in:won"
"fwd": "1:tted,wed,gged,nned,een,rred,pped,yed,bbed,oed,dded,rd,wn,mmed¦2:eed,nded,et,hted,st,oled,ut,emed,eled,lded,ken,rt,nked,apt,ant,eped,eked¦3:eared,eat,eaded,nelled,ealt,eeded,ooted,eaked,eaned,eeted,mited,bid,uit,ead,uited,ealed,geted,velled,ialed,belled¦4:ebuted,hined,comed¦y:ied¦ome:ame¦ear:ore¦ind:ound¦ing:ung,ang¦ep:pt¦ink:ank,unk¦ig:ug¦all:ell¦ee:aw¦ive:ave¦eeze:oze¦old:eld¦ave:ft¦ake:ook¦ell:old¦ite:ote¦ide:ode¦ine:one¦in:un,on¦eal:ole¦im:am¦ie:ay¦and:ood¦1ise:rose¦1eak:roke¦1ing:rought¦1ive:rove¦1el:elt¦1id:bade¦1et:got¦1y:aid¦1it:sat¦3e:lid¦3d:pent",
"both": "1:aed,fed,xed,hed¦2:sged,xted,wled,rped,lked,kied,lmed,lped,uped,bted,rbed,rked,wned,rled,mped,fted,mned,mbed,zzed,omed,ened,cked,gned,lted,sked,ued,zed,nted,ered,rted,rmed,ced,sted,rned,ssed,rded,pted,ved,cted¦3:cled,eined,siped,ooned,uked,ymed,jored,ouded,ioted,oaned,lged,asped,iged,mured,oided,eiled,yped,taled,moned,yled,lit,kled,oaked,gled,naled,fled,uined,oared,valled,koned,soned,aided,obed,ibed,meted,nicked,rored,micked,keted,vred,ooped,oaded,rited,aired,auled,filled,ouled,ooded,ceted,tolled,oited,bited,aped,tled,vored,dled,eamed,nsed,rsed,sited,owded,pled,sored,rged,osed,pelled,oured,psed,oated,loned,aimed,illed,eured,tred,ioned,celled,bled,wsed,ooked,oiled,itzed,iked,iased,onged,ased,ailed,uned,umed,ained,auded,nulled,ysed,eged,ised,aged,oined,ated,used,dged,doned¦4:ntied,efited,uaked,caded,fired,roped,halled,roked,himed,culed,tared,lared,tuted,uared,routed,pited,naked,miled,houted,helled,hared,cored,caled,tired,peated,futed,ciled,called,tined,moted,filed,sided,poned,iloted,honed,lleted,huted,ruled,cured,named,preted,vaded,sured,talled,haled,peded,gined,nited,uided,ramed,feited,laked,gured,ctored,unged,pired,cuted,voked,eloped,ralled,rined,coded,icited,vided,uaded,voted,mined,sired,noted,lined,nselled,luted,jured,fided,puted,piled,pared,olored,cided,hoked,enged,tured,geoned,cotted,lamed,uiled,waited,udited,anged,luded,mired,uired,raded¦5:modelled,izzled,eleted,umpeted,ailored,rseded,treated,eduled,ecited,rammed,eceded,atrolled,nitored,basted,twined,itialled,ncited,gnored,ploded,xcited,nrolled,namelled,plored,efeated,redited,ntrolled,nfined,pleted,llided,lcined,eathed,ibuted,lloted,dhered,cceded¦3ad:sled¦2aw:drew¦2ot:hot¦2ke:made¦2ow:hrew,grew¦2ose:hose¦2d:ilt¦2in:egan¦1un:ran¦1ink:hought¦1ick:tuck¦1ike:ruck¦1eak:poke,nuck¦1it:pat¦1o:did¦1ow:new¦1ake:woke¦go:went",
"rev": "3:rst,hed,hut,cut,set¦4:tbid¦5:dcast,eread,pread,erbid¦ought:uy,eek¦1ied:ny,ly,dy,ry,fy,py,vy,by,ty,cy¦1ung:ling,ting,wing¦1pt:eep¦1ank:rink¦1ore:bear,wear¦1ave:give¦1oze:reeze¦1ound:rind,wind¦1ook:take,hake¦1aw:see¦1old:sell¦1ote:rite¦1ole:teal¦1unk:tink¦1am:wim¦1ay:lie¦1ood:tand¦1eld:hold¦2d:he,ge,re,le,leed,ne,reed,be,ye,lee,pe,we¦2ed:dd,oy,or,ey,gg,rr,us,ew,to¦2ame:ecome,rcome¦2ped:ap¦2ged:ag,og,ug,eg¦2bed:ub,ab,ib,ob¦2lt:neel¦2id:pay¦2ang:pring¦2ove:trive¦2med:um¦2ode:rride¦2at:ysit¦3ted:mit,hat,mat,lat,pot,rot,bat¦3ed:low,end,tow,und,ond,eem,lay,cho,dow,xit,eld,ald,uld,law,lel,eat,oll,ray,ank,fin,oam,out,how,iek,tay,haw,ait,vet,say,cay,bow¦3d:ste,ede,ode,ete,ree,ude,ame,oke,ote,ime,ute,ade¦3red:lur,cur,pur,car¦3ped:hop,rop,uip,rip,lip,tep,top¦3ded:bed,rod,kid¦3ade:orbid¦3led:uel¦3ned:lan,can,kin,pan,tun¦3med:rim,lim¦4ted:quit,llot¦4ed:pear,rrow,rand,lean,mand,anel,pand,reet,link,abel,evel,imit,ceed,ruit,mind,peal,veal,hool,head,pell,well,mell,uell,band,hear,weak¦4led:nnel,qual,ebel,ivel¦4red:nfer,efer,sfer¦4n:sake,trew¦4d:ntee¦4ded:hred¦4ned:rpin¦5ed:light,nceal,right,ndear,arget,hread,eight,rtial,eboot¦5d:edite,nvite¦5ted:egret¦5led:ravel",
"ex": "2:been,upped¦3:added,aged,aided,aimed,aired,bid,died,dyed,egged,erred,eyed,fit,gassed,hit,lied,owed,pent,pied,tied,used,vied,oiled,outed,banned,barred,bet,canned,cut,dipped,donned,ended,feed,inked,jarred,let,manned,mowed,netted,padded,panned,pitted,popped,potted,put,set,sewn,sowed,tanned,tipped,topped,vowed,weed,bowed,jammed,binned,dimmed,hopped,mopped,nodded,pinned,rigged,sinned,towed,vetted¦4:ached,baked,baled,boned,bored,called,caned,cared,ceded,cited,coded,cored,cubed,cured,dared,dined,edited,exited,faked,fared,filed,fined,fired,fuelled,gamed,gelled,hired,hoped,joked,lined,mined,named,noted,piled,poked,polled,pored,pulled,reaped,roamed,rolled,ruled,seated,shed,sided,timed,tolled,toned,voted,waited,walled,waned,winged,wiped,wired,zoned,yelled,tamed,lubed,roped,faded,mired,caked,honed,banged,culled,heated,raked,welled,banded,beat,cast,cooled,cost,dealt,feared,folded,footed,handed,headed,heard,hurt,knitted,landed,leaked,leapt,linked,meant,minded,molded,neared,needed,peaked,plodded,plotted,pooled,quit,read,rooted,sealed,seeded,seeped,shipped,shunned,skimmed,slammed,sparred,stemmed,stirred,suited,thinned,twinned,swayed,winked,dialed,abutted,blotted,fretted,healed,heeded,peeled,reeled¦5:basted,cheated,equalled,eroded,exiled,focused,opined,pleated,primed,quoted,scouted,shored,sloped,smoked,sniped,spelled,spouted,routed,staked,stored,swelled,tasted,treated,wasted,smelled,dwelled,honored,prided,quelled,eloped,scared,coveted,sweated,breaded,cleared,debuted,deterred,freaked,modeled,pleaded,rebutted,speeded¦6:anchored,defined,endured,impaled,invited,refined,revered,strolled,cringed,recast,thrust,unfolded¦7:authored,combined,competed,conceded,convened,excreted,extruded,redefined,restored,secreted,rescinded,welcomed¦8:expedited,infringed¦9:interfered,intervened,persevered¦10:contravened¦eat:ate¦is:was¦go:went¦are:were¦3d:bent,lent,rent,sent¦3e:bit,fled,hid,lost¦3ed:bled,bred¦2ow:blew,grew¦1uy:bought¦2tch:caught¦1o:did¦1ive:dove,gave¦2aw:drew¦2ed:fed¦2y:flew,laid,paid,said¦1ight:fought¦1et:got¦2ve:had¦1ang:hung¦2ad:led¦2ght:lit¦2ke:made¦2et:met¦1un:ran¦1ise:rose¦1it:sat¦1eek:sought¦1each:taught¦1ake:woke,took¦1eave:wove¦2ise:arose¦1ear:bore,tore,wore¦1ind:bound,found,wound¦2eak:broke¦2ing:brought,wrung¦1ome:came¦2ive:drove¦1ig:dug¦1all:fell¦2el:felt¦4et:forgot¦1old:held¦2ave:left¦1ing:rang,sang¦1ide:rode¦1ink:sank¦1ee:saw¦2ine:shone¦4e:slid¦1ell:sold,told¦4d:spent¦2in:spun¦1in:won"
},
"PresentTense": {
"fwd": "1:oes¦1ve:as",
"both": "1:xes¦2:zzes,ches,shes,sses¦2y:llies,plies¦1y:bies,ties,vies,nies,pies,dies,ries,fies¦:s",
"rev": "1ies:ly¦2es:us,go¦2ses:as¦3es:cho",
"both": "1:xes¦2:zzes,ches,shes,sses¦3:iases¦2y:llies,plies¦1y:cies,bies,ties,vies,nies,pies,dies,ries,fies¦:s",
"rev": "1ies:ly¦2es:us,go,do¦3es:cho,eto",
"ex": "2:does,goes¦3:gasses¦5:focuses¦is:are¦3y:relies¦2y:flies¦2ve:has"

@@ -34,0 +34,0 @@ },

@@ -21,2 +21,3 @@ //prefixes give very-little away, in general.

'un-': Verb,
'ex-': Noun,
},

@@ -23,0 +24,0 @@ {

@@ -69,2 +69,3 @@ //just a foolish lookup of known suffixes

ign: Inf,
oze: Inf,
ful: Adj,

@@ -92,2 +93,3 @@ bal: Adj,

ects: Pres,
iend: Sing,
ends: Vb,

@@ -94,0 +96,0 @@ enko: Last,

@@ -62,3 +62,3 @@ const anything = ['Noun', 'Verb', 'Adjective', 'Adverb', 'Value', 'QuestionWord']

Acronym: {
not: ['Plural', 'RomanNumeral'],
not: ['Plural', 'RomanNumeral', 'Pronoun'],
},

@@ -65,0 +65,0 @@ Negative: {

@@ -17,3 +17,3 @@ export default {

Imperative: {
is: 'Infinitive',
is: 'Verb',
not: ['PastTense', 'Gerund', 'Copula'],

@@ -20,0 +20,0 @@ },

@@ -21,20 +21,8 @@ const rules = [

// === Verb ===
// quickly run
// { match: '#Adverb+ {Verb}', chunk: 'Verb' },
// quickly and suddenly run
{ match: '#Adverb+ and #Adverb #Verb', chunk: 'Verb' },
// run quickly
// { match: '{Verb} #Adverb+', chunk: 'Verb' },
// sitting near
{ match: '#Gerund #Adjective', chunk: 'Verb' },
{ match: '#Gerund #Adjective$', chunk: 'Verb' },
// going to walk
{ match: '#Gerund to #Verb', chunk: 'Verb' },
// is no
// { match: '#Copula no', chunk: 'Verb' },
// had not
// { match: '#Verb #Negative', chunk: 'Verb' },
// not seen
// { match: '#Negative #Verb', chunk: 'Verb' },
// not really
// { match: '#Negative #Adverb ', chunk: 'Verb' },
// come and have a drink

@@ -49,3 +37,3 @@ { match: '#PresentTense and #PresentTense', chunk: 'Verb' },

// tell him the story
{ match: '#PresentTense [#Pronoun] #Determiner', group: 0, chunk: 'Verb' },
// { match: '#PresentTense [#Pronoun] #Determiner', group: 0, chunk: 'Verb' },
// tries to walk

@@ -52,0 +40,0 @@ { match: '#Verb [to] #Adverb? #Infinitive', group: 0, chunk: 'Verb' },

@@ -67,2 +67,5 @@ import find from '../find.js'

let info = getGrammar(vb, parsed)
if (info.isInfinitive) {
return vb
}
return toPresent(vb, parsed, info.form)

@@ -75,2 +78,5 @@ })

let info = getGrammar(vb, parsed)
if (info.isInfinitive) {
return vb
}
return toPast(vb, parsed, info.form)

@@ -83,2 +89,5 @@ })

let info = getGrammar(vb, parsed)
if (info.isInfinitive) {
return vb
}
return toFuture(vb, parsed, info.form)

@@ -91,2 +100,5 @@ })

let info = getGrammar(vb, parsed)
if (info.isInfinitive) {
return vb
}
return toGerund(vb, parsed, info.form)

@@ -99,2 +111,5 @@ })

let info = getGrammar(vb, parsed)
if (info.isInfinitive) {
return vb
}
return toParticiple(vb, parsed, info.form)

@@ -101,0 +116,0 @@ })

@@ -30,2 +30,13 @@ import forms from './forms.js'

// 'learned [to code]'
const isInfinitive = function (vb) {
if (vb.has('#Infinitive')) {
let m = vb.growLeft('to')
if (m.has('^to #Infinitive')) {
return true
}
}
return false
}
const getGrammar = function (vb, res) {

@@ -54,2 +65,4 @@ let grammar = {}

grammar.copula = res.root.has('#Copula')
// 'learn to code'
grammar.isInfinitive = isInfinitive(vb)
return grammar

@@ -56,0 +69,0 @@ }

const findVerbs = function (doc) {
let m = doc.match('<Verb>')
// want to see
m = m.not('(#Conjunction && !to)')
m = m.not('#Conjunction')
// by walking

@@ -30,5 +30,9 @@ m = m.not('#Preposition')

m = m.splitBefore('(#PresentTense|#PastTense) [will be]$', 0)
// directing had
m = m.splitBefore('(#PresentTense|#PastTense) [(had|has)]', 0)
// 'allow yourself'
m = m.not('#Reflexive$')
// sitting near
m = m.not('#Adjective')

@@ -52,3 +56,2 @@ // pastTense-pastTense

// ensure it's not two verbs
// held annually is called

@@ -55,0 +58,0 @@ if (m.has('(#Verb && !#Auxiliary) #Adverb+? #Copula')) {

@@ -120,15 +120,23 @@ const utils = {

}
let document = this.document
for (let i = 0; i < ptrs.length; i += 1) {
let [n, start, end] = ptrs[i]
// it's not the start
if (n !== i || start !== 0) {
return false
}
// it's too short
if (document[n].length > end) {
return false
}
// must start at beginning
if (ptrs.length === 0 || ptrs[0][0] !== 0) {
return false
}
return true
let wantTerms = 0
let haveTerms = 0
this.document.forEach(terms => wantTerms += terms.length)
this.docs.forEach(terms => haveTerms += terms.length)
return wantTerms === haveTerms
// for (let i = 0; i < ptrs.length; i += 1) {
// let [n, start, end] = ptrs[i]
// // it's not the start
// if (n !== i || start !== 0) {
// return false
// }
// // it's too short
// if (document[n].length > end) {
// return false
// }
// }
// return true
},

@@ -135,0 +143,0 @@

@@ -98,2 +98,11 @@ import type { Document, Pointer, Groups, JsonProps, outMethods, matchOptions, Term, Net } from '../misc.d.ts'

after: (match: string | View, group?: string | number, options?: matchOptions) => View
/** alias of .before() */
lookBehind: (match: string | View, group?: string | number, options?: matchOptions) => View
/** alias of .before() */
lookBefore: (match: string | View, group?: string | number, options?: matchOptions) => View
/** alias of .after() */
lookAhead: (match: string | View, group?: string | number, options?: matchOptions) => View
/** alias of .after() */
lookAfter: (match: string | View, group?: string | number, options?: matchOptions) => View
/** add any immediately-preceding matches to the view*/

@@ -100,0 +109,0 @@ growLeft: (match: string | View, group?: string | number, options?: matchOptions) => View

@@ -86,3 +86,3 @@ import type View from './two.d.ts'

// Nouns class
interface Nouns extends View {
export interface Nouns extends View {
/** grab the parsed noun-phrase */

@@ -100,3 +100,3 @@ parse: (n?: number) => object[]

interface Numbers extends View {
export interface Numbers extends View {
/** grab the parsed number */

@@ -142,3 +142,3 @@ parse: (n?: number) => object[]

interface Fractions extends View {
export interface Fractions extends View {
/** grab the parsed number */

@@ -161,3 +161,3 @@ parse: (n?: number) => object[]

// Sentences class
interface Sentences extends View {
export interface Sentences extends View {
/** grab the parsed sentence */

@@ -187,3 +187,3 @@ parse: (n?: number) => object[]

interface People extends View {
export interface People extends View {
/** get first/last/middle names */

@@ -194,3 +194,3 @@ parse: () => object[]

// Verbs class
interface Verbs extends View {
export interface Verbs extends View {
/** grab the parsed verb-phrase */

@@ -232,3 +232,3 @@ parse: (n?: number) => object[]

interface Acronyms extends View {
export interface Acronyms extends View {
/** 'F.B.I.' -> 'FBI' */

@@ -239,11 +239,11 @@ strip: () => View

}
interface Parentheses extends View {
export interface Parentheses extends View {
/** remove ( and ) punctuation */
strip: () => View
}
interface Possessives extends View {
export interface Possessives extends View {
/** "spencer's" -> "spencer" */
strip: () => View
}
interface Quotations extends View {
export interface Quotations extends View {
/** remove leading and trailing quotation marks */

@@ -253,3 +253,3 @@ strip: () => View

interface Adjectives extends View {
export interface Adjectives extends View {
/** get the words describing this adjective */

@@ -270,4 +270,4 @@ adverbs: () => View

// only overloads .json()
interface Adverbs extends View { }
export interface Adverbs extends View { }
export default Three

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

Sorry, the diff of this file is too big to display

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc