├── .editorconfig ├── .github └── workflows │ └── main.yml ├── .gitignore ├── .npmrc ├── .prettierignore ├── cli.js ├── funding.yml ├── index.js ├── license ├── package.json ├── problematic.js ├── readme.md ├── test ├── fixture.json └── index.js └── tsconfig.json /.editorconfig: -------------------------------------------------------------------------------- 1 | root = true 2 | 3 | [*] 4 | indent_style = space 5 | indent_size = 2 6 | end_of_line = lf 7 | charset = utf-8 8 | trim_trailing_whitespace = true 9 | insert_final_newline = true 10 | -------------------------------------------------------------------------------- /.github/workflows/main.yml: -------------------------------------------------------------------------------- 1 | name: main 2 | on: 3 | - pull_request 4 | - push 5 | jobs: 6 | main: 7 | name: ${{matrix.node}} 8 | runs-on: ubuntu-latest 9 | steps: 10 | - uses: actions/checkout@v3 11 | - uses: actions/setup-node@v3 12 | with: 13 | node-version: ${{matrix.node}} 14 | - run: npm install 15 | - run: npm test 16 | - uses: codecov/codecov-action@v1 17 | strategy: 18 | matrix: 19 | node: 20 | - lts/hydrogen 21 | - node 22 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | *.d.ts 3 | *.log 4 | coverage/ 5 | node_modules/ 6 | yarn.lock 7 | -------------------------------------------------------------------------------- /.npmrc: -------------------------------------------------------------------------------- 1 | package-lock=false 2 | -------------------------------------------------------------------------------- /.prettierignore: -------------------------------------------------------------------------------- 1 | coverage/ 2 | *.md 3 | -------------------------------------------------------------------------------- /cli.js: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env node 2 | import fs from 'node:fs' 3 | import process from 'node:process' 4 | import {URL} from 'node:url' 5 | import {syllable} from './index.js' 6 | 7 | /** @type {Record} */ 8 | const pack = JSON.parse( 9 | String(fs.readFileSync(new URL('package.json', import.meta.url))) 10 | ) 11 | 12 | const argv = process.argv.slice(2) 13 | 14 | const command = pack.name 15 | 16 | if (argv.includes('--help') || argv.includes('-h')) { 17 | console.log(help()) 18 | } else if (argv.includes('--version') || argv.includes('-v')) { 19 | console.log(pack.version) 20 | } else if (argv.length === 0) { 21 | process.stdin.resume() 22 | process.stdin.setEncoding('utf8') 23 | process.stdin.on('data', getSyllables) 24 | } else { 25 | getSyllables(argv.join(' ')) 26 | } 27 | 28 | /** 29 | * @param {string} value 30 | */ 31 | function getSyllables(value) { 32 | const values = value 33 | .split(/\s+/g) 34 | .map((/** @type {string} */ d) => d.trim()) 35 | .filter(Boolean) 36 | 37 | if (values.length === 0) { 38 | process.stderr.write(help()) 39 | process.exit(1) 40 | } else { 41 | console.log(syllables(values)) 42 | } 43 | } 44 | 45 | /** 46 | * @param {Array} values 47 | */ 48 | function syllables(values) { 49 | let sum = 0 50 | let index = -1 51 | 52 | while (++index < values.length) { 53 | sum += syllable(values[index]) 54 | } 55 | 56 | return sum 57 | } 58 | 59 | function help() { 60 | return ( 61 | [ 62 | '', 63 | 'Usage: ' + command + ' [options] ', 64 | '', 65 | pack.description, 66 | '', 67 | 'Options:', 68 | '', 69 | ' -h, --help output usage information', 70 | ' -v, --version output version number', 71 | '', 72 | 'Usage:', 73 | '', 74 | '# output syllables', 75 | '$ ' + command + ' syllable unicorn', 76 | '# ' + syllables(['syllable', 'unicorn']), 77 | '', 78 | '# output syllables from stdin', 79 | '$ echo "syllable unicorn banana" | ' + command, 80 | '# ' + syllables(['syllable', 'unicorn', 'banana']), 81 | '' 82 | ].join('\n ') + '\n' 83 | ) 84 | } 85 | -------------------------------------------------------------------------------- /funding.yml: -------------------------------------------------------------------------------- 1 | github: wooorm 2 | -------------------------------------------------------------------------------- /index.js: -------------------------------------------------------------------------------- 1 | import pluralize from 'pluralize' 2 | // @ts-ignore remove when typed. 3 | import normalize from 'normalize-strings' 4 | import {problematic} from './problematic.js' 5 | 6 | const own = {}.hasOwnProperty 7 | 8 | // Two expressions of occurrences which normally would be counted as two 9 | // syllables, but should be counted as one. 10 | const EXPRESSION_MONOSYLLABIC_ONE = new RegExp( 11 | [ 12 | 'awe($|d|so)', 13 | 'cia(?:l|$)', 14 | 'tia', 15 | 'cius', 16 | 'cious', 17 | '[^aeiou]giu', 18 | '[aeiouy][^aeiouy]ion', 19 | 'iou', 20 | 'sia$', 21 | 'eous$', 22 | '[oa]gue$', 23 | '.[^aeiuoycgltdb]{2,}ed$', 24 | '.ely$', 25 | '^jua', 26 | 'uai', 27 | 'eau', 28 | '^busi$', 29 | '(?:[aeiouy](?:' + 30 | [ 31 | '[bcfgklmnprsvwxyz]', 32 | 'ch', 33 | 'dg', 34 | 'g[hn]', 35 | 'lch', 36 | 'l[lv]', 37 | 'mm', 38 | 'nch', 39 | 'n[cgn]', 40 | 'r[bcnsv]', 41 | 'squ', 42 | 's[chkls]', 43 | 'th' 44 | ].join('|') + 45 | ')ed$)', 46 | '(?:[aeiouy](?:' + 47 | [ 48 | '[bdfklmnprstvy]', 49 | 'ch', 50 | 'g[hn]', 51 | 'lch', 52 | 'l[lv]', 53 | 'mm', 54 | 'nch', 55 | 'nn', 56 | 'r[nsv]', 57 | 'squ', 58 | 's[cklst]', 59 | 'th' 60 | ].join('|') + 61 | ')es$)' 62 | ].join('|'), 63 | 'g' 64 | ) 65 | 66 | const EXPRESSION_MONOSYLLABIC_TWO = new RegExp( 67 | '[aeiouy](?:' + 68 | [ 69 | '[bcdfgklmnprstvyz]', 70 | 'ch', 71 | 'dg', 72 | 'g[hn]', 73 | 'l[lv]', 74 | 'mm', 75 | 'n[cgns]', 76 | 'r[cnsv]', 77 | 'squ', 78 | 's[cklst]', 79 | 'th' 80 | ].join('|') + 81 | ')e$', 82 | 'g' 83 | ) 84 | 85 | // Four expression of occurrences which normally would be counted as one 86 | // syllable, but should be counted as two. 87 | const EXPRESSION_DOUBLE_SYLLABIC_ONE = new RegExp( 88 | '(?:' + 89 | [ 90 | '([^aeiouy])\\1l', 91 | '[^aeiouy]ie(?:r|s?t)', 92 | '[aeiouym]bl', 93 | 'eo', 94 | 'ism', 95 | 'asm', 96 | 'thm', 97 | 'dnt', 98 | 'snt', 99 | 'uity', 100 | 'dea', 101 | 'gean', 102 | 'oa', 103 | 'ua', 104 | 'react?', 105 | 'orbed', // Cancel `'.[^aeiuoycgltdb]{2,}ed$',` 106 | 'shred', // Cancel `'.[^aeiuoycgltdb]{2,}ed$',` 107 | 'eings?', 108 | '[aeiouy]sh?e[rs]' 109 | ].join('|') + 110 | ')$', 111 | 'g' 112 | ) 113 | 114 | const EXPRESSION_DOUBLE_SYLLABIC_TWO = new RegExp( 115 | [ 116 | 'creat(?!u)', 117 | '[^gq]ua[^auieo]', 118 | '[aeiou]{3}', 119 | '^(?:ia|mc|coa[dglx].)', 120 | '^re(app|es|im|us)', 121 | '(th|d)eist' 122 | ].join('|'), 123 | 'g' 124 | ) 125 | 126 | const EXPRESSION_DOUBLE_SYLLABIC_THREE = new RegExp( 127 | [ 128 | '[^aeiou]y[ae]', 129 | '[^l]lien', 130 | 'riet', 131 | 'dien', 132 | 'iu', 133 | 'io', 134 | 'ii', 135 | 'uen', 136 | '[aeilotu]real', 137 | 'real[aeilotu]', 138 | 'iell', 139 | 'eo[^aeiou]', 140 | '[aeiou]y[aeiou]' 141 | ].join('|'), 142 | 'g' 143 | ) 144 | 145 | const EXPRESSION_DOUBLE_SYLLABIC_FOUR = /[^s]ia/ 146 | 147 | // Expression to match single syllable pre- and suffixes. 148 | const EXPRESSION_SINGLE = new RegExp( 149 | [ 150 | '^(?:' + 151 | [ 152 | 'un', 153 | 'fore', 154 | 'ware', 155 | 'none?', 156 | 'out', 157 | 'post', 158 | 'sub', 159 | 'pre', 160 | 'pro', 161 | 'dis', 162 | 'side', 163 | 'some' 164 | ].join('|') + 165 | ')', 166 | '(?:' + 167 | [ 168 | 'ly', 169 | 'less', 170 | 'some', 171 | 'ful', 172 | 'ers?', 173 | 'ness', 174 | 'cians?', 175 | 'ments?', 176 | 'ettes?', 177 | 'villes?', 178 | 'ships?', 179 | 'sides?', 180 | 'ports?', 181 | 'shires?', 182 | '[gnst]ion(?:ed|s)?' 183 | ].join('|') + 184 | ')$' 185 | ].join('|'), 186 | 'g' 187 | ) 188 | 189 | // Expression to match double syllable pre- and suffixes. 190 | const EXPRESSION_DOUBLE = new RegExp( 191 | [ 192 | '^' + 193 | '(?:' + 194 | [ 195 | 'above', 196 | 'anti', 197 | 'ante', 198 | 'counter', 199 | 'hyper', 200 | 'afore', 201 | 'agri', 202 | 'infra', 203 | 'intra', 204 | 'inter', 205 | 'over', 206 | 'semi', 207 | 'ultra', 208 | 'under', 209 | 'extra', 210 | 'dia', 211 | 'micro', 212 | 'mega', 213 | 'kilo', 214 | 'pico', 215 | 'nano', 216 | 'macro', 217 | 'somer' 218 | ].join('|') + 219 | ')', 220 | '(?:fully|berry|woman|women|edly|union|((?:[bcdfghjklmnpqrstvwxz])|[aeiou])ye?ing)$' 221 | ].join('|'), 222 | 'g' 223 | ) 224 | 225 | // Expression to match triple syllable suffixes. 226 | const EXPRESSION_TRIPLE = /(creations?|ology|ologist|onomy|onomist)$/g 227 | 228 | /** 229 | * Count syllables in `value`. 230 | * 231 | * @param {string} value 232 | * Value to check. 233 | * @returns {number} 234 | * Syllables in `value`. 235 | */ 236 | export function syllable(value) { 237 | const values = normalize(String(value)) 238 | .toLowerCase() 239 | // Remove apostrophes. 240 | .replace(/['’]/g, '') 241 | // Split on word boundaries. 242 | .split(/\b/g) 243 | let index = -1 244 | let sum = 0 245 | 246 | while (++index < values.length) { 247 | // Remove non-alphabetic characters from a given value. 248 | sum += one(values[index].replace(/[^a-z]/g, '')) 249 | } 250 | 251 | return sum 252 | } 253 | 254 | /** 255 | * Get syllables in a word. 256 | * 257 | * @param {string} value 258 | * @returns {number} 259 | */ 260 | function one(value) { 261 | let count = 0 262 | 263 | if (value.length === 0) { 264 | return count 265 | } 266 | 267 | // Return early when possible. 268 | if (value.length < 3) { 269 | return 1 270 | } 271 | 272 | // If `value` is a hard to count, it might be in `problematic`. 273 | if (own.call(problematic, value)) { 274 | return problematic[value] 275 | } 276 | 277 | // Additionally, the singular word might be in `problematic`. 278 | const singular = pluralize(value, 1) 279 | 280 | if (own.call(problematic, singular)) { 281 | return problematic[singular] 282 | } 283 | 284 | const addOne = returnFactory(1) 285 | const subtractOne = returnFactory(-1) 286 | 287 | // Count some prefixes and suffixes, and remove their matched ranges. 288 | value = value 289 | .replace(EXPRESSION_TRIPLE, countFactory(3)) 290 | .replace(EXPRESSION_DOUBLE, countFactory(2)) 291 | .replace(EXPRESSION_SINGLE, countFactory(1)) 292 | 293 | // Count multiple consonants. 294 | const parts = value.split(/[^aeiouy]+/) 295 | let index = -1 296 | 297 | while (++index < parts.length) { 298 | if (parts[index] !== '') { 299 | count++ 300 | } 301 | } 302 | 303 | // Subtract one for occurrences which should be counted as one (but are 304 | // counted as two). 305 | value 306 | .replace(EXPRESSION_MONOSYLLABIC_ONE, subtractOne) 307 | .replace(EXPRESSION_MONOSYLLABIC_TWO, subtractOne) 308 | 309 | // Add one for occurrences which should be counted as two (but are counted as 310 | // one). 311 | value 312 | .replace(EXPRESSION_DOUBLE_SYLLABIC_ONE, addOne) 313 | .replace(EXPRESSION_DOUBLE_SYLLABIC_TWO, addOne) 314 | .replace(EXPRESSION_DOUBLE_SYLLABIC_THREE, addOne) 315 | .replace(EXPRESSION_DOUBLE_SYLLABIC_FOUR, addOne) 316 | 317 | // Make sure at least on is returned. 318 | return count || 1 319 | 320 | /** 321 | * Define scoped counters, to be used in `String#replace()` calls. 322 | * The scoped counter removes the matched value from the input. 323 | * 324 | * @param {number} addition 325 | */ 326 | function countFactory(addition) { 327 | return counter 328 | /** 329 | * @returns {string} 330 | */ 331 | function counter() { 332 | count += addition 333 | return '' 334 | } 335 | } 336 | 337 | /** 338 | * This scoped counter does not remove the matched value from the input. 339 | * 340 | * @param {number} addition 341 | */ 342 | function returnFactory(addition) { 343 | return returner 344 | /** 345 | * @param {string} $0 346 | * @returns {string} 347 | */ 348 | function returner($0) { 349 | count += addition 350 | return $0 351 | } 352 | } 353 | } 354 | -------------------------------------------------------------------------------- /license: -------------------------------------------------------------------------------- 1 | (The MIT License) 2 | 3 | Copyright (c) 2014 Titus Wormer 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in 13 | all copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 21 | THE SOFTWARE. 22 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "syllable", 3 | "version": "5.0.1", 4 | "description": "Count syllables in English words", 5 | "license": "MIT", 6 | "keywords": [ 7 | "detect", 8 | "syllables", 9 | "natural", 10 | "language", 11 | "cli", 12 | "bin" 13 | ], 14 | "homepage": "https://words.github.io/syllable/", 15 | "repository": "words/syllable", 16 | "funding": { 17 | "type": "github", 18 | "url": "https://github.com/sponsors/wooorm" 19 | }, 20 | "bugs": "https://github.com/words/syllable/issues", 21 | "author": "Titus Wormer (https://wooorm.com)", 22 | "contributors": [ 23 | "Titus Wormer (https://wooorm.com)" 24 | ], 25 | "sideEffects": false, 26 | "type": "module", 27 | "bin": "cli.js", 28 | "main": "index.js", 29 | "types": "index.d.ts", 30 | "files": [ 31 | "cli.js", 32 | "problematic.js", 33 | "index.d.ts", 34 | "index.js" 35 | ], 36 | "dependencies": { 37 | "@types/pluralize": "^0.0.29", 38 | "normalize-strings": "^1.1.0", 39 | "pluralize": "^8.0.0" 40 | }, 41 | "devDependencies": { 42 | "@types/node": "^18.0.0", 43 | "c8": "^7.0.0", 44 | "prettier": "^2.0.0", 45 | "remark-cli": "^11.0.0", 46 | "remark-preset-wooorm": "^9.0.0", 47 | "type-coverage": "^2.0.0", 48 | "typescript": "^4.0.0", 49 | "xo": "^0.52.0" 50 | }, 51 | "scripts": { 52 | "prepack": "npm run build && npm run format", 53 | "build": "tsc --build --clean && tsc --build && type-coverage", 54 | "format": "remark . -qfo && prettier . -w --loglevel warn && xo --fix", 55 | "test-api": "node --conditions development test/index.js", 56 | "test-coverage": "c8 --check-coverage --100 --reporter lcov npm run test-api", 57 | "test": "npm run build && npm run format && npm run test-coverage" 58 | }, 59 | "prettier": { 60 | "tabWidth": 2, 61 | "useTabs": false, 62 | "singleQuote": true, 63 | "bracketSpacing": false, 64 | "semi": false, 65 | "trailingComma": "none" 66 | }, 67 | "xo": { 68 | "prettier": true 69 | }, 70 | "remarkConfig": { 71 | "plugins": [ 72 | "preset-wooorm" 73 | ] 74 | }, 75 | "typeCoverage": { 76 | "atLeast": 100, 77 | "detail": true, 78 | "strict": true 79 | } 80 | } 81 | -------------------------------------------------------------------------------- /problematic.js: -------------------------------------------------------------------------------- 1 | /** @type {Record} */ 2 | export const problematic = { 3 | abalone: 4, 4 | abare: 3, 5 | abbruzzese: 4, 6 | abed: 2, 7 | aborigine: 5, 8 | abruzzese: 4, 9 | acreage: 3, 10 | adame: 3, 11 | adieu: 2, 12 | adobe: 3, 13 | anemone: 4, 14 | anyone: 3, 15 | apache: 3, 16 | aphrodite: 4, 17 | apostrophe: 4, 18 | ariadne: 4, 19 | cafe: 2, 20 | calliope: 4, 21 | catastrophe: 4, 22 | chile: 2, 23 | chloe: 2, 24 | circe: 2, 25 | coyote: 3, 26 | daphne: 2, 27 | epitome: 4, 28 | eurydice: 4, 29 | euterpe: 3, 30 | every: 2, 31 | everywhere: 3, 32 | forever: 3, 33 | gethsemane: 4, 34 | guacamole: 4, 35 | hermione: 4, 36 | hyperbole: 4, 37 | jesse: 2, 38 | jukebox: 2, 39 | karate: 3, 40 | machete: 3, 41 | maybe: 2, 42 | naive: 2, 43 | newlywed: 3, 44 | penelope: 4, 45 | people: 2, 46 | persephone: 4, 47 | phoebe: 2, 48 | pulse: 1, 49 | queue: 1, 50 | recipe: 3, 51 | riverbed: 3, 52 | sesame: 3, 53 | shoreline: 2, 54 | simile: 3, 55 | snuffleupagus: 5, 56 | sometimes: 2, 57 | syncope: 3, 58 | tamale: 3, 59 | waterbed: 3, 60 | wednesday: 2, 61 | yosemite: 4, 62 | zoe: 2 63 | } 64 | -------------------------------------------------------------------------------- /readme.md: -------------------------------------------------------------------------------- 1 | # syllable 2 | 3 | [![Build][build-badge]][build] 4 | [![Coverage][coverage-badge]][coverage] 5 | [![Downloads][downloads-badge]][downloads] 6 | [![Size][size-badge]][size] 7 | 8 | Count syllables in an English word. 9 | 10 | ## Contents 11 | 12 | * [What is this?](#what-is-this) 13 | * [When should I use this?](#when-should-i-use-this) 14 | * [Install](#install) 15 | * [Use](#use) 16 | * [API](#api) 17 | * [`syllable(value)`](#syllablevalue) 18 | * [CLI](#cli) 19 | * [Types](#types) 20 | * [Compatibility](#compatibility) 21 | * [Related](#related) 22 | * [Contribute](#contribute) 23 | * [Security](#security) 24 | * [Notice](#notice) 25 | * [License](#license) 26 | 27 | ## What is this? 28 | 29 | This package estimates how many syllables are in an English word. 30 | 31 | ## When should I use this? 32 | 33 | Use this when you want to do fun things with natural language, like rhyming, 34 | detecting reading ease, etc. 35 | 36 | ## Install 37 | 38 | This package is [ESM only][esm]. 39 | In Node.js (version 14.14+, 16.0+), install with [npm][]: 40 | 41 | ```sh 42 | npm install syllable 43 | ``` 44 | 45 | In Deno with [`esm.sh`][esmsh]: 46 | 47 | ```js 48 | import {syllable} from 'https://esm.sh/syllable@5' 49 | ``` 50 | 51 | In browsers with [`esm.sh`][esmsh]: 52 | 53 | ```html 54 | 57 | ``` 58 | 59 | ## Use 60 | 61 | ```js 62 | import {syllable} from 'syllable' 63 | 64 | syllable('syllable') // 3 65 | syllable('unicorn') // 3 66 | syllable('hi') // 1 67 | syllable('hihi') // 2 68 | syllable('mmmmmmmmmmmmmmmm') // 1 69 | syllable('wine') // 1 70 | syllable('bottle') // 2 71 | syllable('wine-bottle') // 3 72 | syllable('Åland') // 2 73 | ``` 74 | 75 | ## API 76 | 77 | This package exports the identifier `syllable`. 78 | There is no default export. 79 | 80 | ### `syllable(value)` 81 | 82 | Get the number of syllables in `value`. 83 | 84 | ###### `value` 85 | 86 | Value to check (`string`, required). 87 | 88 | ##### Returns 89 | 90 | Syllables in `value` (`number`). 91 | 92 | ## CLI 93 | 94 | ```txt 95 | Usage: syllable [options] 96 | 97 | Count syllables in English words 98 | 99 | Options: 100 | 101 | -h, --help output usage information 102 | -v, --version output version number 103 | 104 | Usage: 105 | 106 | # output syllables 107 | $ syllable syllable unicorn 108 | # 6 109 | 110 | # output syllables from stdin 111 | $ echo "syllable unicorn banana" | syllable 112 | # 9 113 | ``` 114 | 115 | ## Types 116 | 117 | This package is fully typed with [TypeScript][]. 118 | It exports no additional types. 119 | 120 | ## Compatibility 121 | 122 | This package is at least compatible with all maintained versions of Node.js. 123 | As of now, that is Node.js 14.14+ and 16.0+. 124 | It also works in Deno and modern browsers. 125 | 126 | ## Related 127 | 128 | * [`automated-readability`](https://github.com/words/automated-readability) 129 | — formula to detect ease of reading according to the Automated Readability 130 | Index (1967) 131 | * [`buzzwords`](https://github.com/words/buzzwords) 132 | — list of buzzwords 133 | * [`coleman-liau`](https://github.com/words/coleman-liau) 134 | — formula to detect the ease of reading a text according to the Coleman-Liau 135 | index (1975) 136 | * [`cuss`](https://github.com/words/cuss) 137 | — map of profane words to a rating of sureness 138 | * [`dale-chall`](https://github.com/words/dale-chall) 139 | — list of easy American-English words: The New Dale-Chall (1995) 140 | * [`dale-chall-formula`](https://github.com/words/dale-chall-formula) 141 | — formula to find the grade level according to the (revised) Dale–Chall 142 | Readability Formula (1995) 143 | * [`fillers`](https://github.com/words/fillers) 144 | — list of filler words 145 | * [`flesch`](https://github.com/words/flesch) 146 | — formula to detect the ease of reading a text according to Flesch Reading 147 | Ease (1975) 148 | * [`flesch-kincaid`](https://github.com/words/flesch-kincaid) 149 | — formula to detect the grade level of text according to Flesch–Kincaid 150 | Grade Level (1975) 151 | * [`gunning-fog`](https://github.com/words/gunning-fog) 152 | — formula to detect the ease of reading a text according to the Gunning fog 153 | index (1952) 154 | * [`hedges`](https://github.com/words/hedges) 155 | — list of hedge words 156 | * [`profanities`](https://github.com/words/profanities) 157 | — list of profane words 158 | * [`smog-formula`](https://github.com/words/smog-formula) 159 | — formula to detect the ease of reading a text according to the SMOG 160 | (Simple Measure of Gobbledygook) formula (1969) 161 | * [`spache`](https://github.com/words/spache) 162 | — list of familiar American-English words (1974) 163 | * [`spache-formula`](https://github.com/words/spache-formula) 164 | — uses a dictionary, suited for lower reading levels 165 | * [`weasels`](https://github.com/words/weasels) 166 | — formula to detect the grade level of text according to the (revised) 167 | Spache Readability Formula (1974) 168 | 169 | ## Contribute 170 | 171 | Yes please! 172 | See [How to Contribute to Open Source][contribute]. 173 | 174 | ## Security 175 | 176 | This package is safe. 177 | 178 | ## Notice 179 | 180 | Based on the syllable functionality found in [`Text-Statistics`][stats] (PHP), 181 | in turn inspired by [`Lingua::EN::Syllable`][lingua] (Perl). 182 | 183 | Support for word-breaks, non-ASCII characters, and many fixes added later. 184 | 185 | ## License 186 | 187 | [MIT][license] © [Titus Wormer][author] 188 | 189 | 190 | 191 | [build-badge]: https://github.com/words/syllable/workflows/main/badge.svg 192 | 193 | [build]: https://github.com/words/syllable/actions 194 | 195 | [coverage-badge]: https://img.shields.io/codecov/c/github/words/syllable.svg 196 | 197 | [coverage]: https://codecov.io/github/words/syllable 198 | 199 | [downloads-badge]: https://img.shields.io/npm/dm/syllable.svg 200 | 201 | [downloads]: https://www.npmjs.com/package/syllable 202 | 203 | [size-badge]: https://img.shields.io/bundlephobia/minzip/syllable.svg 204 | 205 | [size]: https://bundlephobia.com/result?p=syllable 206 | 207 | [npm]: https://docs.npmjs.com/cli/install 208 | 209 | [esm]: https://gist.github.com/sindresorhus/a39789f98801d908bbc7ff3ecc99d99c 210 | 211 | [esmsh]: https://esm.sh 212 | 213 | [typescript]: https://www.typescriptlang.org 214 | 215 | [contribute]: https://opensource.guide/how-to-contribute/ 216 | 217 | [license]: license 218 | 219 | [author]: https://wooorm.com 220 | 221 | [stats]: https://github.com/DaveChild/Text-Statistics 222 | 223 | [lingua]: https://metacpan.org/pod/Lingua::EN::Syllable 224 | -------------------------------------------------------------------------------- /test/fixture.json: -------------------------------------------------------------------------------- 1 | { 2 | "'tis": 1, 3 | "'twas": 1, 4 | "abalone": 4, 5 | "abare": 3, 6 | "abatement": 3, 7 | "abatements": 3, 8 | "abbatiello": 5, 9 | "abbruzzese": 4, 10 | "abed": 2, 11 | "abeyance": 3, 12 | "aborigine": 5, 13 | "aborigines": 5, 14 | "abounded": 3, 15 | "aboveboard": 3, 16 | "aboveground": 3, 17 | "abridged": 2, 18 | "abruzzese": 4, 19 | "absences": 3, 20 | "absoluteness": 4, 21 | "absolve": 2, 22 | "absolves": 2, 23 | "abuses": 3, 24 | "acacia": 3, 25 | "academically": 6, 26 | "academician": 5, 27 | "academicians": 5, 28 | "acceding": 3, 29 | "acceptances": 4, 30 | "accion": 3, 31 | "accompaniment": 5, 32 | "accompaniments": 5, 33 | "accomplice": 3, 34 | "accomplices": 4, 35 | "accorded": 3, 36 | "accordion": 4, 37 | "accuses": 3, 38 | "aces": 2, 39 | "achievement": 3, 40 | "achievements": 3, 41 | "achoa": 3, 42 | "acknowledged": 3, 43 | "acknowledgement": 4, 44 | "acknowledges": 4, 45 | "acoustically": 5, 46 | "acquaint": 2, 47 | "acquaintance": 3, 48 | "acquainted": 3, 49 | "acquiesced": 3, 50 | "acquire": 2, 51 | "acquired": 2, 52 | "acquirer": 3, 53 | "acquirers": 3, 54 | "acquires": 2, 55 | "acreage": 3, 56 | "acuteness": 3, 57 | "adabelle": 3, 58 | "adage": 2, 59 | "adame": 3, 60 | "added": 2, 61 | "addeo": 3, 62 | "addled": 2, 63 | "adelle": 2, 64 | "adieu": 2, 65 | "adjudged": 2, 66 | "admired": 2, 67 | "adorabelle": 4, 68 | "advanced": 2, 69 | "advancement": 3, 70 | "advancements": 3, 71 | "advances": 3, 72 | "advantage": 3, 73 | "advantaged": 3, 74 | "advantageous": 4, 75 | "advantages": 4, 76 | "adventuresome": 4, 77 | "advertisement": 4, 78 | "advertisements": 4, 79 | "advertises": 4, 80 | "advice": 2, 81 | "advisedly": 4, 82 | "advisement": 3, 83 | "advises": 3, 84 | "aegean": 3, 85 | "aerobically": 5, 86 | "aerodynamically": 7, 87 | "aerospace": 3, 88 | "aerospatiale": 4, 89 | "aesthetically": 5, 90 | "afanasyev": 5, 91 | "affixes": 3, 92 | "affluence": 3, 93 | "affluent": 3, 94 | "afforded": 3, 95 | "aforementioned": 4, 96 | "aforesaid": 3, 97 | "afterimage": 4, 98 | "aftertaste": 3, 99 | "aged": 1, 100 | "ageless": 2, 101 | "ages": 2, 102 | "aggrandizement": 4, 103 | "aggressiveness": 4, 104 | "agius": 3, 105 | "agne": 1, 106 | "agonizes": 4, 107 | "agreement": 3, 108 | "agribusiness": 4, 109 | "aguayo": 3, 110 | "aherne": 2, 111 | "aiguebelle": 3, 112 | "ain't": 1, 113 | "airborne": 2, 114 | "aircoa": 3, 115 | "airspace": 2, 116 | "aisle": 1, 117 | "aisles": 1, 118 | "akiyama": 4, 119 | "alarice": 3, 120 | "albertville": 3, 121 | "albion": 3, 122 | "alcoa": 3, 123 | "aldred": 2, 124 | "aleo": 3, 125 | "algeo": 3, 126 | "algorithm": 4, 127 | "aliases": 4, 128 | "alice": 2, 129 | "alicia": 3, 130 | "allderdice": 3, 131 | "allege": 2, 132 | "alleged": 2, 133 | "alleges": 3, 134 | "allegiances": 5, 135 | "alles": 1, 136 | "alliances": 4, 137 | "allowances": 4, 138 | "allspice": 2, 139 | "allwaste": 2, 140 | "alsace": 2, 141 | "altarpiece": 3, 142 | "altice": 2, 143 | "alusuisse": 3, 144 | "alveolar": 4, 145 | "alveoli": 4, 146 | "alyce": 2, 147 | "alyea": 3, 148 | "alyeska": 4, 149 | "amabelle": 3, 150 | "amadea": 4, 151 | "amadeo": 4, 152 | "amaryllises": 5, 153 | "amaya": 3, 154 | "amazement": 3, 155 | "amazes": 3, 156 | "ambled": 2, 157 | "ambrosial": 3, 158 | "ambrosian": 3, 159 | "ambulances": 4, 160 | "amended": 3, 161 | "amezcua": 4, 162 | "amityville": 4, 163 | "amorette": 3, 164 | "amperage": 3, 165 | "amusement": 3, 166 | "amusements": 3, 167 | "amuses": 3, 168 | "analyses": 4, 169 | "analyzes": 4, 170 | "anaya": 3, 171 | "anchorage": 3, 172 | "andalusian": 4, 173 | "andreoli": 4, 174 | "andreoni": 4, 175 | "andreotti": 4, 176 | "andreozzi": 4, 177 | "anette": 2, 178 | "angelle": 2, 179 | "angerer": 3, 180 | "angering": 3, 181 | "angled": 2, 182 | "anisette": 3, 183 | "annabelle": 3, 184 | "anne": 1, 185 | "annette": 2, 186 | "annexes": 3, 187 | "announced": 2, 188 | "announcement": 3, 189 | "announcements": 3, 190 | "announces": 3, 191 | "annoyance": 3, 192 | "annoyances": 4, 193 | "anstice": 2, 194 | "antaya": 3, 195 | "antiabortion": 5, 196 | "antiapartheid": 5, 197 | "antoinette": 3, 198 | "anyplace": 3, 199 | "anzaldua": 4, 200 | "aoyama": 3, 201 | "apace": 2, 202 | "apiece": 2, 203 | "apologizes": 5, 204 | "apotheosis": 5, 205 | "apparatuses": 5, 206 | "appearances": 4, 207 | "appeasement": 3, 208 | "appendage": 3, 209 | "appendages": 4, 210 | "appended": 3, 211 | "appendixes": 4, 212 | "applesauce": 3, 213 | "appleyard": 3, 214 | "appliances": 4, 215 | "appraises": 3, 216 | "apprehended": 4, 217 | "apprentice": 3, 218 | "apprenticed": 3, 219 | "apprentices": 4, 220 | "apprenticeship": 4, 221 | "approached": 2, 222 | "appropriateness": 5, 223 | "araya": 3, 224 | "arbed": 2, 225 | "arbitrage": 3, 226 | "arboreal": 4, 227 | "arceneaux": 3, 228 | "arceo": 3, 229 | "archambeau": 3, 230 | "archambeault": 3, 231 | "archeological": 6, 232 | "archeology": 5, 233 | "arches": 2, 234 | "ardelle": 2, 235 | "aren't": 2, 236 | "argonne": 2, 237 | "ariella": 4, 238 | "arises": 3, 239 | "arlette": 2, 240 | "armistice": 3, 241 | "armitage": 3, 242 | "arne": 1, 243 | "arnelle": 2, 244 | "arnette": 2, 245 | "arouses": 3, 246 | "arranged": 2, 247 | "arrangement": 3, 248 | "arrangements": 3, 249 | "arranges": 3, 250 | "arrearage": 3, 251 | "arrearages": 4, 252 | "arreola": 4, 253 | "arriortua": 5, 254 | "arroyo": 3, 255 | "arseneau": 3, 256 | "arseneault": 3, 257 | "artifice": 3, 258 | "aryan": 3, 259 | "ascended": 3, 260 | "asiain": 3, 261 | "asian": 2, 262 | "asians": 2, 263 | "asiaweek": 3, 264 | "assemblage": 3, 265 | "assembled": 3, 266 | "assertiveness": 4, 267 | "assurances": 4, 268 | "astonished": 3, 269 | "astounded": 3, 270 | "astuteness": 3, 271 | "atalaya": 4, 272 | "atlases": 3, 273 | "atonement": 3, 274 | "attached": 2, 275 | "attended": 3, 276 | "attentiveness": 4, 277 | "attractiveness": 4, 278 | "audette": 2, 279 | "audiences": 4, 280 | "auguste": 2, 281 | "auspices": 3, 282 | "authement": 2, 283 | "authorizes": 4, 284 | "auyeung": 2, 285 | "auzenne": 2, 286 | "avarice": 3, 287 | "avedisian": 4, 288 | "avenged": 2, 289 | "average": 3, 290 | "averette": 3, 291 | "avice": 2, 292 | "avowedly": 4, 293 | "awarded": 3, 294 | "awareness": 3, 295 | "AWOL": 2, 296 | "axes": 2, 297 | "ayacucho": 4, 298 | "ayala": 3, 299 | "ayars": 2, 300 | "ayatollah": 4, 301 | "ayatollahs": 4, 302 | "Ayatullah": 4, 303 | "ayerst": 2, 304 | "ayo": 2, 305 | "ayon": 2, 306 | "ayoub": 2, 307 | "ayuso": 3, 308 | "ayyad": 2, 309 | "azpurua": 4, 310 | "babbled": 2, 311 | "babette": 2, 312 | "babineau": 3, 313 | "babineaux": 3, 314 | "babyak": 3, 315 | "backhanded": 3, 316 | "backstage": 2, 317 | "badeau": 2, 318 | "badeaux": 2, 319 | "badgering": 3, 320 | "badges": 2, 321 | "baffled": 2, 322 | "baggage": 2, 323 | "baidoa": 3, 324 | "balanced": 2, 325 | "balances": 3, 326 | "balboa": 3, 327 | "baldrige": 2, 328 | "balle": 1, 329 | "balles": 1, 330 | "balliet": 3, 331 | "balyeat": 3, 332 | "bandage": 2, 333 | "bandaged": 2, 334 | "bandages": 3, 335 | "banded": 2, 336 | "banville": 2, 337 | "baptiste": 2, 338 | "barbeau": 2, 339 | "barbed": 1, 340 | "barbette": 2, 341 | "barcia": 2, 342 | "barges": 2, 343 | "baribeau": 3, 344 | "barlage": 2, 345 | "barnes": 1, 346 | "barnette": 2, 347 | "barrage": 2, 348 | "barraged": 2, 349 | "barrages": 3, 350 | "barrette": 2, 351 | "barrilleaux": 3, 352 | "barrineau": 3, 353 | "bartlesville": 3, 354 | "bartolomeo": 5, 355 | "basaldua": 4, 356 | "based": 1, 357 | "basement": 2, 358 | "basements": 2, 359 | "bases": 2, 360 | "baskerville": 3, 361 | "baskette": 2, 362 | "basque": 1, 363 | "basques": 1, 364 | "basse": 1, 365 | "bassette": 2, 366 | "bastille": 2, 367 | "bastogne": 2, 368 | "batches": 2, 369 | "batesville": 2, 370 | "bathe": 1, 371 | "bathed": 1, 372 | "bathes": 1, 373 | "battelle": 2, 374 | "batticaloa": 5, 375 | "bayard": 2, 376 | "bayog": 2, 377 | "bayonet": 3, 378 | "bayonets": 3, 379 | "bayou": 2, 380 | "bayous": 2, 381 | "bayuk": 2, 382 | "bayus": 2, 383 | "bearded": 2, 384 | "beau": 1, 385 | "beaubien": 2, 386 | "beauchaine": 2, 387 | "beauchamp": 2, 388 | "beauchemin": 3, 389 | "beauchene": 2, 390 | "beaudet": 2, 391 | "beaudette": 2, 392 | "beaudin": 2, 393 | "beaudoin": 2, 394 | "beaudreau": 2, 395 | "beaudry": 2, 396 | "beauford": 2, 397 | "beaufort": 2, 398 | "beaufrere": 2, 399 | "beaujolais": 3, 400 | "beaulac": 2, 401 | "beaumier": 3, 402 | "beaumont": 2, 403 | "beaupre": 2, 404 | "beauregard": 3, 405 | "beausoleil": 3, 406 | "beautician": 3, 407 | "beauties": 2, 408 | "beautiful": 3, 409 | "beautify": 3, 410 | "beauty": 2, 411 | "beauvais": 2, 412 | "beaux": 1, 413 | "bebeau": 2, 414 | "becherer": 3, 415 | "bedoya": 3, 416 | "bedraggled": 3, 417 | "bedrosian": 3, 418 | "Beetlejuice": 3, 419 | "befriended": 3, 420 | "befuddled": 3, 421 | "beidaihe": 3, 422 | "beiges": 2, 423 | "beirne": 1, 424 | "belge": 2, 425 | "beliveau": 3, 426 | "belle": 1, 427 | "belleau": 2, 428 | "bellefeuille": 4, 429 | "belles": 1, 430 | "belleville": 2, 431 | "belliveau": 3, 432 | "bellville": 2, 433 | "bellyache": 3, 434 | "belonged": 2, 435 | "beltsville": 2, 436 | "belville": 2, 437 | "belyea": 3, 438 | "belyeu": 3, 439 | "bemusement": 3, 440 | "bended": 2, 441 | "benne": 1, 442 | "bennette": 2, 443 | "bentonville": 3, 444 | "beowulf": 3, 445 | "bereavement": 3, 446 | "berges": 2, 447 | "berjaya": 3, 448 | "bernadette": 3, 449 | "berne": 1, 450 | "berneice": 2, 451 | "bernice": 2, 452 | "beseiged": 2, 453 | "besiege": 2, 454 | "besieged": 2, 455 | "beske": 1, 456 | "bespectacled": 4, 457 | "besse": 1, 458 | "bessette": 2, 459 | "beste": 1, 460 | "bethpage": 2, 461 | "betrayal": 3, 462 | "betrayals": 3, 463 | "beverage": 3, 464 | "beville": 2, 465 | "beyond": 2, 466 | "biases": 3, 467 | "bibeau": 2, 468 | "bibeault": 2, 469 | "bicycled": 3, 470 | "bierbusse": 2, 471 | "bille": 1, 472 | "billes": 1, 473 | "bilodeau": 3, 474 | "bilyeu": 3, 475 | "binette": 2, 476 | "binges": 2, 477 | "biondi": 3, 478 | "biondo": 3, 479 | "biondolillo": 5, 480 | "bionetics": 4, 481 | "birthplace": 2, 482 | "bisque": 1, 483 | "bissette": 2, 484 | "bissonette": 3, 485 | "bissonnette": 3, 486 | "bistodeau": 3, 487 | "bivalve": 2, 488 | "bivalves": 2, 489 | "blanchette": 2, 490 | "blaske": 1, 491 | "blazes": 2, 492 | "bleau": 1, 493 | "blended": 2, 494 | "blinded": 2, 495 | "blindfolded": 3, 496 | "blithe": 1, 497 | "blithely": 2, 498 | "blockage": 2, 499 | "blockages": 3, 500 | "blouses": 2, 501 | "blythe": 1, 502 | "boa": 2, 503 | "boarded": 2, 504 | "boardinghouses": 4, 505 | "bobbette": 2, 506 | "bobsled": 2, 507 | "boccia": 2, 508 | "bocian": 2, 509 | "boggled": 2, 510 | "boghosian": 3, 511 | "bogosian": 3, 512 | "boguslavskaya": 5, 513 | "boileau": 2, 514 | "boisseau": 2, 515 | "boissonneault": 3, 516 | "boldface": 2, 517 | "bolle": 1, 518 | "bolles": 1, 519 | "bombarded": 3, 520 | "bondage": 2, 521 | "bonded": 2, 522 | "bonne": 1, 523 | "bonneau": 2, 524 | "bonnes": 1, 525 | "bonnette": 2, 526 | "bonnibelle": 3, 527 | "bonuses": 3, 528 | "bonville": 2, 529 | "bookcases": 3, 530 | "bookshelves": 2, 531 | "boomeranged": 3, 532 | "boonville": 2, 533 | "boothe": 1, 534 | "bordeau": 2, 535 | "bordeaux": 2, 536 | "borealis": 4, 537 | "borges": 2, 538 | "borne": 1, 539 | "borneo": 3, 540 | "borosage": 3, 541 | "boscia": 2, 542 | "bosse": 1, 543 | "bothe": 1, 544 | "boudreau": 2, 545 | "boudreaux": 2, 546 | "bougainville": 3, 547 | "boulette": 2, 548 | "bounces": 2, 549 | "bounded": 2, 550 | "bourbeau": 2, 551 | "bourdeau": 2, 552 | "bourne": 1, 553 | "bournonville": 3, 554 | "boutelle": 2, 555 | "boxes": 2, 556 | "boyack": 2, 557 | "boyajian": 4, 558 | "boyan": 2, 559 | "boyar": 2, 560 | "boyett": 2, 561 | "boyington": 3, 562 | "boyish": 2, 563 | "boyum": 2, 564 | "braces": 2, 565 | "braille": 1, 566 | "brailles": 1, 567 | "bralorne": 2, 568 | "bramlage": 2, 569 | "bramlette": 2, 570 | "brancheau": 2, 571 | "branded": 2, 572 | "brasseaux": 2, 573 | "brazeau": 2, 574 | "brazzaville": 3, 575 | "breakage": 2, 576 | "breathe": 1, 577 | "breathed": 1, 578 | "breathes": 1, 579 | "breau": 1, 580 | "breault": 1, 581 | "breaux": 1, 582 | "breezes": 2, 583 | "breon": 2, 584 | "brescia": 2, 585 | "bresette": 2, 586 | "bresse": 1, 587 | "bressette": 2, 588 | "brideau": 2, 589 | "bridgeport": 2, 590 | "bridges": 2, 591 | "bridled": 2, 592 | "briefcases": 3, 593 | "brion": 2, 594 | "brissette": 2, 595 | "britches": 2, 596 | "brokerage": 3, 597 | "brokerages": 4, 598 | "brokering": 3, 599 | "brooksville": 2, 600 | "brosseau": 2, 601 | "brossette": 2, 602 | "brousseau": 2, 603 | "brownsville": 2, 604 | "bruegge": 2, 605 | "bruges": 2, 606 | "bruises": 2, 607 | "brundage": 2, 608 | "brundige": 2, 609 | "bruneau": 2, 610 | "brunelle": 2, 611 | "brunette": 2, 612 | "bruske": 1, 613 | "brusque": 1, 614 | "brusquely": 2, 615 | "brusseau": 2, 616 | "brutalizes": 4, 617 | "brutsche": 2, 618 | "bryan": 2, 619 | "bryans": 2, 620 | "bryant": 2, 621 | "bryars": 2, 622 | "brydges": 2, 623 | "bryen": 2, 624 | "bua": 2, 625 | "bubbled": 2, 626 | "Bubiyan": 3, 627 | "buckled": 2, 628 | "budreau": 2, 629 | "bulges": 2, 630 | "bundled": 2, 631 | "bungled": 2, 632 | "buoyancy": 3, 633 | "buoyant": 2, 634 | "burbage": 2, 635 | "burchette": 2, 636 | "burdette": 2, 637 | "bureau": 2, 638 | "bureaucracies": 4, 639 | "bureaucracy": 4, 640 | "bureaucrat": 3, 641 | "bureaucratic": 4, 642 | "bureaucrats": 3, 643 | "bureaus": 2, 644 | "burlesque": 2, 645 | "burne": 1, 646 | "burnes": 1, 647 | "burnette": 2, 648 | "burrage": 2, 649 | "buses": 2, 650 | "business": 2, 651 | "businesses": 3, 652 | "buske": 1, 653 | "busse": 1, 654 | "butchering": 3, 655 | "buteau": 2, 656 | "buttonville": 3, 657 | "buyout": 2, 658 | "buyouts": 2, 659 | "buysse": 1, 660 | "byam": 2, 661 | "byars": 2, 662 | "byas": 2, 663 | "byassee": 3, 664 | "byerley": 3, 665 | "byrne": 1, 666 | "byrnes": 1, 667 | "cabbage": 2, 668 | "cabbages": 3, 669 | "cabled": 2, 670 | "cableone": 3, 671 | "cabooses": 3, 672 | "cabotage": 3, 673 | "cacace": 2, 674 | "caccia": 2, 675 | "cadences": 3, 676 | "cadorette": 3, 677 | "cafe": 2, 678 | "cafes": 2, 679 | "cages": 2, 680 | "cairnes": 1, 681 | "caisse": 1, 682 | "calif": 2, 683 | "california": 5, 684 | "californian": 5, 685 | "californians": 5, 686 | "calle": 1, 687 | "calles": 1, 688 | "calves": 1, 689 | "cambridgeport": 3, 690 | "cambridgeside": 3, 691 | "cameo": 3, 692 | "cameos": 3, 693 | "camerer": 3, 694 | "camille": 2, 695 | "camouflage": 3, 696 | "camouflaged": 3, 697 | "campeau": 2, 698 | "campion": 3, 699 | "campuses": 3, 700 | "canadienne": 4, 701 | "candace": 2, 702 | "candice": 2, 703 | "cannes": 1, 704 | "cantrelle": 2, 705 | "canvases": 3, 706 | "capece": 2, 707 | "capelle": 2, 708 | "capitalizes": 5, 709 | "cappiello": 4, 710 | "caprice": 2, 711 | "capua": 3, 712 | "caravelle": 3, 713 | "caraveo": 4, 714 | "carbonneau": 3, 715 | "carcione": 3, 716 | "carded": 2, 717 | "cardiges": 3, 718 | "caresse": 2, 719 | "cariello": 4, 720 | "carlisle": 2, 721 | "carnage": 2, 722 | "carne": 1, 723 | "carnes": 1, 724 | "carreon": 3, 725 | "carrion": 3, 726 | "carriveau": 3, 727 | "cartaya": 3, 728 | "cartersville": 3, 729 | "carthage": 2, 730 | "cartilage": 3, 731 | "cartrette": 2, 732 | "cartridges": 3, 733 | "cartusciello": 5, 734 | "carves": 1, 735 | "carville": 2, 736 | "cases": 2, 737 | "cassette": 2, 738 | "cassettes": 2, 739 | "caste": 1, 740 | "castille": 2, 741 | "cataloged": 3, 742 | "cataloguing": 4, 743 | "catches": 2, 744 | "categorizes": 5, 745 | "cattaneo": 4, 746 | "caucasian": 3, 747 | "caucuses": 3, 748 | "causes": 2, 749 | "cawthorne": 2, 750 | "caya": 2, 751 | "cayuses": 3, 752 | "ceases": 2, 753 | "ceausescu": 3, 754 | "ceder": 2, 755 | "ceding": 2, 756 | "celaya": 3, 757 | "celeste": 2, 758 | "censuses": 3, 759 | "centerpiece": 3, 760 | "centrifuge": 3, 761 | "centrifuges": 4, 762 | "ceraceous": 3, 763 | "cereal": 3, 764 | "cereals": 3, 765 | "cezanne": 2, 766 | "chadbourne": 2, 767 | "challenged": 2, 768 | "challenges": 3, 769 | "chalmette": 2, 770 | "chameleon": 4, 771 | "champagne": 2, 772 | "champagnes": 2, 773 | "champeau": 2, 774 | "champion": 3, 775 | "championed": 3, 776 | "championing": 4, 777 | "champions": 3, 778 | "championship": 4, 779 | "championships": 4, 780 | "chances": 2, 781 | "changes": 2, 782 | "chapelle": 2, 783 | "chappelle": 2, 784 | "characterizes": 5, 785 | "charasse": 2, 786 | "charboneau": 3, 787 | "charbonneau": 3, 788 | "charette": 2, 789 | "charges": 2, 790 | "charlemagne": 3, 791 | "charmion": 3, 792 | "chases": 2, 793 | "chasm": 2, 794 | "chasse": 1, 795 | "chaste": 1, 796 | "chastises": 3, 797 | "chateau": 2, 798 | "chateaux": 2, 799 | "chausse": 1, 800 | "chechnya": 3, 801 | "chechnyan": 3, 802 | "cheeses": 2, 803 | "chelette": 2, 804 | "chenette": 2, 805 | "cheong": 2, 806 | "chequing": 2, 807 | "cherne": 1, 808 | "chevette": 2, 809 | "chevrette": 2, 810 | "chiyoda": 3, 811 | "choices": 2, 812 | "chooses": 2, 813 | "choreograph": 4, 814 | "choreographed": 4, 815 | "choreographer": 5, 816 | "choreographers": 5, 817 | "choreographic": 5, 818 | "choreography": 5, 819 | "choruses": 3, 820 | "christabelle": 3, 821 | "chronicled": 3, 822 | "chua": 2, 823 | "chuckled": 2, 824 | "chujitsuya": 4, 825 | "churches": 2, 826 | "cian": 1, 827 | "cigarette": 3, 828 | "cigarettes": 3, 829 | "cilicia": 3, 830 | "circled": 2, 831 | "circumstances": 4, 832 | "circuses": 3, 833 | "ciriello": 4, 834 | "cirincione": 4, 835 | "cirrincione": 4, 836 | "cistercian": 3, 837 | "cityplace": 3, 838 | "claiborne": 2, 839 | "clairvoyance": 3, 840 | "clarabelle": 3, 841 | "clarette": 2, 842 | "clarice": 2, 843 | "clarisse": 2, 844 | "clarksville": 2, 845 | "clarrisse": 2, 846 | "claudette": 2, 847 | "clauses": 2, 848 | "clavette": 2, 849 | "clayborne": 2, 850 | "claybourne": 2, 851 | "clayey": 2, 852 | "clearances": 3, 853 | "clearinghouses": 4, 854 | "cleavage": 2, 855 | "cleo": 2, 856 | "cleopatra": 4, 857 | "climaxes": 3, 858 | "clinician": 3, 859 | "clinicians": 3, 860 | "clodoveo": 4, 861 | "closeness": 2, 862 | "closes": 2, 863 | "clothe": 1, 864 | "clothed": 1, 865 | "clothes": 1, 866 | "clubhouses": 3, 867 | "clutches": 2, 868 | "clyatt": 2, 869 | "coalesced": 3, 870 | "coatesville": 2, 871 | "cobbled": 2, 872 | "coccia": 2, 873 | "coddled": 2, 874 | "coercion": 3, 875 | "cohesiveness": 4, 876 | "coinage": 2, 877 | "cointreau": 2, 878 | "colette": 2, 879 | "collage": 2, 880 | "collages": 3, 881 | "colle": 1, 882 | "college": 2, 883 | "colleges": 3, 884 | "collegeville": 3, 885 | "collette": 2, 886 | "colleville": 2, 887 | "cologne": 2, 888 | "colville": 2, 889 | "comanche": 3, 890 | "combativeness": 4, 891 | "comeau": 2, 892 | "comeaux": 2, 893 | "comedienne": 4, 894 | "commanded": 3, 895 | "commenced": 2, 896 | "commencement": 3, 897 | "commences": 3, 898 | "commended": 3, 899 | "commingled": 3, 900 | "commonplace": 3, 901 | "compeau": 2, 902 | "competitiveness": 5, 903 | "completeness": 3, 904 | "complexes": 3, 905 | "composes": 3, 906 | "compounded": 3, 907 | "comprehended": 4, 908 | "comprises": 3, 909 | "compromises": 4, 910 | "conceding": 3, 911 | "concepcion": 4, 912 | "concierge": 3, 913 | "concubinage": 4, 914 | "condolences": 4, 915 | "conferences": 4, 916 | "confidences": 4, 917 | "confinement": 3, 918 | "confluence": 3, 919 | "confounded": 3, 920 | "confucian": 3, 921 | "confuses": 3, 922 | "congruence": 3, 923 | "connely": 2, 924 | "consciences": 3, 925 | "constituencies": 5, 926 | "constituency": 5, 927 | "constituent": 4, 928 | "constituents": 4, 929 | "contended": 3, 930 | "continuances": 5, 931 | "contrivances": 4, 932 | "controversial": 4, 933 | "conveniences": 4, 934 | "conveyance": 3, 935 | "conveyor": 3, 936 | "conville": 2, 937 | "convinced": 2, 938 | "convinces": 3, 939 | "cooperage": 3, 940 | "coppage": 2, 941 | "corabelle": 3, 942 | "corded": 2, 943 | "corette": 2, 944 | "corinne": 2, 945 | "corne": 1, 946 | "cornelle": 2, 947 | "cornette": 2, 948 | "corresponded": 4, 949 | "corriveau": 3, 950 | "corsage": 2, 951 | "corvette": 2, 952 | "corvettes": 2, 953 | "coscia": 2, 954 | "cosette": 2, 955 | "cossette": 2, 956 | "coste": 1, 957 | "cotelle": 2, 958 | "cotroneo": 4, 959 | "cottage": 2, 960 | "cottages": 3, 961 | "couldn't": 2, 962 | "countenanced": 3, 963 | "countenances": 4, 964 | "counterbalanced": 4, 965 | "countercharges": 4, 966 | "counterespionage": 6, 967 | "coupled": 2, 968 | "courage": 2, 969 | "courageous": 3, 970 | "courageously": 4, 971 | "courteau": 2, 972 | "courthouses": 3, 973 | "courville": 2, 974 | "cousineau": 3, 975 | "coverage": 3, 976 | "coverages": 4, 977 | "covering": 3, 978 | "coverings": 3, 979 | "coviello": 4, 980 | "coville": 2, 981 | "cowardice": 3, 982 | "cowering": 3, 983 | "crackled": 2, 984 | "crawfordsville": 3, 985 | "crayon": 2, 986 | "crayons": 2, 987 | "creat": 2, 988 | "create": 2, 989 | "creation": 3, 990 | "creationism": 5, 991 | "creative": 3, 992 | "creativity": 5, 993 | "creature": 2, 994 | "creaturize": 3, 995 | "creole": 2, 996 | "creoles": 2, 997 | "creolized": 3, 998 | "creosote": 3, 999 | "crepeau": 2, 1000 | "crevice": 2, 1001 | "crevices": 3, 1002 | "cribbage": 2, 1003 | "cringes": 2, 1004 | "crippled": 2, 1005 | "criscione": 3, 1006 | "crises": 2, 1007 | "criticizes": 4, 1008 | "crocuses": 3, 1009 | "crosse": 1, 1010 | "crosspiece": 2, 1011 | "crosspieces": 3, 1012 | "croteau": 2, 1013 | "crotonville": 3, 1014 | "crotteau": 2, 1015 | "crowded": 2, 1016 | "cruces": 2, 1017 | "crucifixes": 4, 1018 | "cruises": 2, 1019 | "crumbled": 2, 1020 | "crumpled": 2, 1021 | "crutches": 2, 1022 | "cryan": 2, 1023 | "cubbage": 2, 1024 | "cuccia": 2, 1025 | "cuddled": 2, 1026 | "cuddling": 2, 1027 | "cuneo": 3, 1028 | "curtice": 2, 1029 | "curves": 1, 1030 | "cuteness": 2, 1031 | "cuyahoga": 4, 1032 | "cyacq": 2, 1033 | "cyanamid": 4, 1034 | "cyanazine": 4, 1035 | "cyanide": 3, 1036 | "cyanuric": 4, 1037 | "cyberspace": 3, 1038 | "cycled": 2, 1039 | "cytoplasm": 4, 1040 | "dabbled": 2, 1041 | "daigneault": 2, 1042 | "daleo": 3, 1043 | "damage": 2, 1044 | "damaged": 2, 1045 | "damages": 3, 1046 | "damme": 1, 1047 | "dances": 2, 1048 | "dandeneau": 3, 1049 | "danelle": 2, 1050 | "dangled": 2, 1051 | "daniello": 4, 1052 | "dansereau": 3, 1053 | "danville": 2, 1054 | "dapice": 2, 1055 | "darbonne": 2, 1056 | "darice": 2, 1057 | "darrelle": 2, 1058 | "darville": 2, 1059 | "databases": 4, 1060 | "daya": 2, 1061 | "dayan": 2, 1062 | "dazzled": 2, 1063 | "deathbed": 2, 1064 | "deatherage": 3, 1065 | "debasement": 3, 1066 | "debrosse": 2, 1067 | "decapua": 4, 1068 | "decelle": 2, 1069 | "decelles": 2, 1070 | "decisiveness": 4, 1071 | "decomposes": 4, 1072 | "decoteau": 3, 1073 | "decreases": 3, 1074 | "dedeaux": 2, 1075 | "deduce": 2, 1076 | "deduced": 2, 1077 | "defaced": 2, 1078 | "defarges": 3, 1079 | "defelice": 3, 1080 | "defended": 3, 1081 | "defensiveness": 4, 1082 | "defeo": 3, 1083 | "degaulle": 2, 1084 | "dehoyos": 3, 1085 | "dejarnette": 3, 1086 | "delage": 2, 1087 | "delbosque": 2, 1088 | "deleo": 3, 1089 | "deleon": 3, 1090 | "deleonardis": 5, 1091 | "delfosse": 2, 1092 | "delgiudice": 3, 1093 | "delguidice": 3, 1094 | "delicia": 3, 1095 | "delisle": 2, 1096 | "deliverers": 4, 1097 | "delivering": 4, 1098 | "delle": 1, 1099 | "delmed": 2, 1100 | "deluccia": 3, 1101 | "delucia": 3, 1102 | "deluge": 2, 1103 | "deluged": 2, 1104 | "delve": 1, 1105 | "delves": 1, 1106 | "demanded": 3, 1107 | "dematteo": 4, 1108 | "demayo": 3, 1109 | "demeo": 3, 1110 | "demilitarizes": 6, 1111 | "demme": 1, 1112 | "deneau": 2, 1113 | "deneault": 2, 1114 | "denice": 2, 1115 | "denne": 1, 1116 | "denomme": 2, 1117 | "denounced": 2, 1118 | "denounces": 3, 1119 | "deo": 2, 1120 | "deodorant": 4, 1121 | "deodorants": 4, 1122 | "deoliveira": 5, 1123 | "deon": 2, 1124 | "depended": 3, 1125 | "deployable": 4, 1126 | "deranged": 2, 1127 | "derousse": 2, 1128 | "descended": 3, 1129 | "descoteaux": 3, 1130 | "deserves": 2, 1131 | "desormeaux": 3, 1132 | "despises": 3, 1133 | "desselle": 2, 1134 | "detached": 2, 1135 | "deterioration": 6, 1136 | "detherage": 3, 1137 | "dettling": 2, 1138 | "deveau": 2, 1139 | "deveaux": 2, 1140 | "develle": 2, 1141 | "devereaux": 3, 1142 | "device": 2, 1143 | "devices": 3, 1144 | "deville": 2, 1145 | "devises": 3, 1146 | "deyo": 2, 1147 | "deyoe": 2, 1148 | "deyoung": 2, 1149 | "diagnoses": 4, 1150 | "dianthia": 4, 1151 | "diaphonia": 5, 1152 | "dibartolomeo": 6, 1153 | "dibbled": 2, 1154 | "diceon": 3, 1155 | "dideoxycytidine": 7, 1156 | "dieringer": 3, 1157 | "dieses": 2, 1158 | "diet": 2, 1159 | "dieters": 3, 1160 | "difelice": 3, 1161 | "differences": 4, 1162 | "diffuses": 3, 1163 | "dileo": 3, 1164 | "dileonardo": 5, 1165 | "dille": 1, 1166 | "dimatteo": 4, 1167 | "dimeo": 3, 1168 | "dimpled": 2, 1169 | "dinges": 2, 1170 | "dion": 2, 1171 | "diona": 3, 1172 | "dione": 2, 1173 | "dionysius": 5, 1174 | "disabled": 3, 1175 | "disadvantage": 4, 1176 | "disadvantaged": 4, 1177 | "disadvantageous": 5, 1178 | "disadvantages": 5, 1179 | "disallowances": 5, 1180 | "disappearances": 5, 1181 | "disassembled": 4, 1182 | "disbanded": 3, 1183 | "disbursement": 3, 1184 | "disbursements": 3, 1185 | "discarded": 3, 1186 | "discharges": 3, 1187 | "discloses": 3, 1188 | "discourage": 3, 1189 | "discouraged": 3, 1190 | "discouragement": 4, 1191 | "discourages": 4, 1192 | "discovering": 4, 1193 | "diseases": 3, 1194 | "disenfranchisement": 5, 1195 | "disengage": 3, 1196 | "disengaged": 3, 1197 | "disengagement": 4, 1198 | "disgrace": 2, 1199 | "disgraced": 2, 1200 | "disgraceful": 3, 1201 | "disguises": 3, 1202 | "diskette": 2, 1203 | "diskettes": 2, 1204 | "dislodged": 2, 1205 | "disloyal": 3, 1206 | "disloyalty": 4, 1207 | "disparage": 3, 1208 | "disparaged": 3, 1209 | "disparages": 4, 1210 | "dispatches": 3, 1211 | "displace": 2, 1212 | "displaced": 2, 1213 | "displacement": 3, 1214 | "displacements": 3, 1215 | "displaces": 3, 1216 | "disposes": 3, 1217 | "disregarded": 4, 1218 | "disservice": 3, 1219 | "dissolve": 2, 1220 | "dissolves": 2, 1221 | "distanced": 2, 1222 | "distances": 3, 1223 | "distaste": 2, 1224 | "distasteful": 3, 1225 | "distended": 3, 1226 | "distinctiveness": 4, 1227 | "distractions": 3, 1228 | "disturbances": 4, 1229 | "ditches": 2, 1230 | "divergences": 4, 1231 | "diverges": 3, 1232 | "divisiveness": 4, 1233 | "divorced": 2, 1234 | "divorces": 3, 1235 | "dodges": 2, 1236 | "doenges": 2, 1237 | "doggedly": 3, 1238 | "dolce": 2, 1239 | "dolle": 1, 1240 | "donne": 1, 1241 | "doralynne": 3, 1242 | "doraville": 3, 1243 | "dorette": 2, 1244 | "dorice": 2, 1245 | "dOrsay": 2, 1246 | "dosage": 2, 1247 | "dosages": 3, 1248 | "doses": 2, 1249 | "doubled": 2, 1250 | "doucette": 2, 1251 | "douville": 2, 1252 | "downstage": 2, 1253 | "doyal": 2, 1254 | "doyel": 2, 1255 | "doyen": 2, 1256 | "doyon": 2, 1257 | "drainage": 2, 1258 | "dralle": 1, 1259 | "dramatizes": 4, 1260 | "drapeau": 2, 1261 | "dredges": 2, 1262 | "dressage": 2, 1263 | "dribbled": 2, 1264 | "droste": 1, 1265 | "dubeau": 2, 1266 | "duchenne": 2, 1267 | "duchesneau": 3, 1268 | "dudayev": 3, 1269 | "duena": 3, 1270 | "duenas": 3, 1271 | "dukakises": 4, 1272 | "dulcibelle": 3, 1273 | "dulle": 1, 1274 | "dumbfounded": 3, 1275 | "dunne": 1, 1276 | "durette": 2, 1277 | "duryea": 3, 1278 | "dusseau": 2, 1279 | "dusseault": 2, 1280 | "dwelle": 1, 1281 | "dwindled": 2, 1282 | "dyad": 2, 1283 | "dyal": 2, 1284 | "dyana": 3, 1285 | "dyane": 2, 1286 | "dyansen": 3, 1287 | "dyar": 2, 1288 | "dyas": 2, 1289 | "dyatron": 3, 1290 | "dyazide": 3, 1291 | "dyess": 2, 1292 | "easement": 2, 1293 | "eases": 2, 1294 | "eastes": 1, 1295 | "eau": 1, 1296 | "eaux": 1, 1297 | "edges": 2, 1298 | "edifice": 3, 1299 | "edithe": 2, 1300 | "edythe": 2, 1301 | "effectiveness": 4, 1302 | "efficiences": 4, 1303 | "effluent": 3, 1304 | "egerer": 3, 1305 | "Ehud": 2, 1306 | "eldred": 2, 1307 | "electrician": 4, 1308 | "electricians": 4, 1309 | "electrospace": 4, 1310 | "elle": 1, 1311 | "ellesse": 2, 1312 | "ellette": 2, 1313 | "ellice": 2, 1314 | "elusiveness": 4, 1315 | "elves": 1, 1316 | "embed": 2, 1317 | "embedded": 3, 1318 | "embezzled": 3, 1319 | "embrace": 2, 1320 | "embraced": 2, 1321 | "embraces": 3, 1322 | "embryology": 5, 1323 | "emerges": 3, 1324 | "emeryville": 4, 1325 | "eminences": 4, 1326 | "emlynne": 2, 1327 | "emme": 1, 1328 | "emphases": 3, 1329 | "emphasizes": 4, 1330 | "emplacement": 3, 1331 | "employable": 4, 1332 | "employee": 3, 1333 | "employees": 3, 1334 | "empowering": 4, 1335 | "enabled": 3, 1336 | "encircled": 3, 1337 | "encourage": 3, 1338 | "encouraged": 3, 1339 | "encouragement": 4, 1340 | "encourages": 4, 1341 | "encroached": 2, 1342 | "endangering": 4, 1343 | "ended": 2, 1344 | "endorsement": 3, 1345 | "endorsements": 3, 1346 | "enfeebled": 3, 1347 | "enforced": 2, 1348 | "enforcement": 3, 1349 | "enforces": 3, 1350 | "enfranchises": 4, 1351 | "engage": 2, 1352 | "engaged": 2, 1353 | "engagement": 3, 1354 | "engagements": 3, 1355 | "engages": 3, 1356 | "enhanced": 2, 1357 | "enhancement": 3, 1358 | "enhancements": 3, 1359 | "enhances": 3, 1360 | "enjoyable": 4, 1361 | "enlarges": 3, 1362 | "ennes": 1, 1363 | "enrage": 2, 1364 | "enraged": 2, 1365 | "enriched": 2, 1366 | "ensconced": 2, 1367 | "enslavement": 3, 1368 | "entangled": 3, 1369 | "enterprises": 4, 1370 | "enthuses": 3, 1371 | "enthusiastically": 6, 1372 | "entice": 2, 1373 | "enticed": 2, 1374 | "enticement": 3, 1375 | "enticements": 3, 1376 | "entourage": 3, 1377 | "entranced": 2, 1378 | "entrances": 3, 1379 | "entrenched": 2, 1380 | "envisage": 3, 1381 | "envisaged": 3, 1382 | "envisages": 4, 1383 | "eocene": 3, 1384 | "eoff": 2, 1385 | "eohippus": 4, 1386 | "eolande": 4, 1387 | "eon": 2, 1388 | "eons": 2, 1389 | "epitomizes": 5, 1390 | "erases": 3, 1391 | "erne": 1, 1392 | "escapement": 3, 1393 | "espionage": 4, 1394 | "espouses": 3, 1395 | "essayist": 3, 1396 | "esse": 1, 1397 | "este": 1, 1398 | "estelle": 2, 1399 | "estranged": 2, 1400 | "estrangement": 3, 1401 | "etches": 2, 1402 | "ethereal": 4, 1403 | "ettlinger": 3, 1404 | "etzioni": 4, 1405 | "eudocia": 3, 1406 | "eunice": 2, 1407 | "eurasian": 3, 1408 | "europeenne": 3, 1409 | "euroyen": 3, 1410 | "eustace": 2, 1411 | "eustacia": 3, 1412 | "eustice": 2, 1413 | "evansville": 3, 1414 | "evenhanded": 4, 1415 | "evenhandedly": 5, 1416 | "everage": 3, 1417 | "everette": 3, 1418 | "every": 2, 1419 | "everywhere": 3, 1420 | "evidenced": 3, 1421 | "evidences": 4, 1422 | "evinced": 2, 1423 | "evolve": 2, 1424 | "evolves": 2, 1425 | "evonne": 2, 1426 | "exchanged": 2, 1427 | "exchanges": 3, 1428 | "excises": 3, 1429 | "excitement": 3, 1430 | "excoa": 3, 1431 | "excuses": 3, 1432 | "exercises": 4, 1433 | "exes": 2, 1434 | "expanded": 3, 1435 | "expended": 3, 1436 | "exposes": 3, 1437 | "expounded": 3, 1438 | "expunged": 2, 1439 | "extended": 3, 1440 | "extraordinaire": 5, 1441 | "eyerman": 3, 1442 | "ezelle": 2, 1443 | "fabled": 2, 1444 | "faceless": 2, 1445 | "faces": 2, 1446 | "facteau": 2, 1447 | "falardeau": 3, 1448 | "fangled": 2, 1449 | "fantasizes": 4, 1450 | "fariello": 4, 1451 | "farmhouses": 3, 1452 | "farnes": 1, 1453 | "faucette": 2, 1454 | "favreau": 2, 1455 | "faxes": 2, 1456 | "fayard": 2, 1457 | "fayez": 2, 1458 | "faymonville": 3, 1459 | "feces": 2, 1460 | "fecteau": 2, 1461 | "fejes": 2, 1462 | "felice": 2, 1463 | "felicia": 3, 1464 | "felrice": 2, 1465 | "femme": 1, 1466 | "fences": 2, 1467 | "fended": 2, 1468 | "feodor": 3, 1469 | "feodora": 4, 1470 | "feola": 3, 1471 | "fertilizes": 4, 1472 | "fetches": 2, 1473 | "fette": 1, 1474 | "fettes": 1, 1475 | "fetuses": 3, 1476 | "fiddled": 2, 1477 | "fiddling": 2, 1478 | "fielded": 2, 1479 | "figaroa": 4, 1480 | "figueroa": 4, 1481 | "filice": 2, 1482 | "filyaw": 3, 1483 | "financed": 2, 1484 | "financement": 3, 1485 | "finances": 3, 1486 | "finesse": 2, 1487 | "fingering": 3, 1488 | "finne": 1, 1489 | "fiona": 3, 1490 | "firehouses": 4, 1491 | "fireplace": 3, 1492 | "fireplaces": 4, 1493 | "fisette": 2, 1494 | "fishburne": 2, 1495 | "fiske": 1, 1496 | "fitzmaurice": 3, 1497 | "fixes": 2, 1498 | "fizzled": 2, 1499 | "flamboyance": 3, 1500 | "flamboyant": 3, 1501 | "flamboyantly": 4, 1502 | "flanges": 2, 1503 | "fleurette": 2, 1504 | "flexes": 2, 1505 | "flounces": 2, 1506 | "flowering": 3, 1507 | "fluency": 3, 1508 | "fluent": 2, 1509 | "flythe": 1, 1510 | "focuses": 3, 1511 | "folded": 2, 1512 | "follette": 2, 1513 | "fontenette": 3, 1514 | "fonville": 2, 1515 | "foodservice": 3, 1516 | "footage": 2, 1517 | "footrace": 2, 1518 | "forage": 2, 1519 | "forages": 3, 1520 | "forces": 2, 1521 | "fordyce": 2, 1522 | "forecloses": 3, 1523 | "foretaste": 2, 1524 | "forges": 2, 1525 | "forgette": 2, 1526 | "forgione": 3, 1527 | "forgiveness": 3, 1528 | "formalizes": 4, 1529 | "fornes": 1, 1530 | "forsythe": 2, 1531 | "forwarded": 3, 1532 | "fosse": 1, 1533 | "founded": 2, 1534 | "foxes": 2, 1535 | "fradette": 2, 1536 | "fragrances": 3, 1537 | "frances": 2, 1538 | "franchises": 3, 1539 | "francia": 2, 1540 | "francisville": 3, 1541 | "frazzled": 2, 1542 | "frechette": 2, 1543 | "freckled": 2, 1544 | "freezes": 2, 1545 | "fregeau": 2, 1546 | "frenette": 2, 1547 | "freon": 2, 1548 | "freons": 2, 1549 | "freya": 2, 1550 | "freyermuth": 3, 1551 | "fringes": 2, 1552 | "friona": 3, 1553 | "friscia": 2, 1554 | "friske": 1, 1555 | "fromme": 1, 1556 | "frontage": 2, 1557 | "fryar": 2, 1558 | "fuchsias": 2, 1559 | "fujiya": 3, 1560 | "fujiyama": 4, 1561 | "fukuyama": 4, 1562 | "fumbled": 2, 1563 | "funded": 2, 1564 | "furches": 2, 1565 | "furloughed": 2, 1566 | "furnace": 2, 1567 | "furnaces": 3, 1568 | "furuya": 3, 1569 | "fuselage": 3, 1570 | "fuselages": 4, 1571 | "fuses": 2, 1572 | "fuzes": 2, 1573 | "gabriella": 4, 1574 | "gabrielli": 4, 1575 | "gaccione": 3, 1576 | "gainesville": 2, 1577 | "galarneau": 3, 1578 | "galileo": 4, 1579 | "galipeau": 3, 1580 | "galle": 1, 1581 | "galleon": 3, 1582 | "galleons": 3, 1583 | "galles": 1, 1584 | "galyean": 3, 1585 | "galyen": 3, 1586 | "gamage": 2, 1587 | "gambled": 2, 1588 | "gamboa": 3, 1589 | "gammage": 2, 1590 | "ganglionic": 4, 1591 | "garage": 2, 1592 | "garages": 3, 1593 | "garbage": 2, 1594 | "garbled": 2, 1595 | "garceau": 2, 1596 | "garces": 2, 1597 | "gardea": 3, 1598 | "gareau": 2, 1599 | "garges": 2, 1600 | "garneau": 2, 1601 | "garnes": 1, 1602 | "garnette": 2, 1603 | "garrette": 2, 1604 | "gases": 2, 1605 | "gasque": 1, 1606 | "gastineau": 3, 1607 | "gaudette": 2, 1608 | "gaudreau": 2, 1609 | "gauges": 2, 1610 | "gaulle": 1, 1611 | "gauthreaux": 2, 1612 | "gautreau": 2, 1613 | "gautreaux": 2, 1614 | "gauvreau": 2, 1615 | "gazelle": 2, 1616 | "gazelles": 2, 1617 | "gazes": 2, 1618 | "gazette": 2, 1619 | "gearboxes": 3, 1620 | "gedeon": 3, 1621 | "geers": 2, 1622 | "gelette": 2, 1623 | "gelineau": 3, 1624 | "gelles": 1, 1625 | "gemayel": 3, 1626 | "gemme": 1, 1627 | "gendreau": 2, 1628 | "genoa": 3, 1629 | "geo": 2, 1630 | "geocentric": 4, 1631 | "geochemistry": 5, 1632 | "geodesic": 4, 1633 | "geodesy": 4, 1634 | "geodyne": 3, 1635 | "geoffrion": 4, 1636 | "geoffroy": 3, 1637 | "geographer": 4, 1638 | "geographic": 4, 1639 | "geographical": 5, 1640 | "geographically": 6, 1641 | "geography": 4, 1642 | "geologic": 4, 1643 | "geological": 5, 1644 | "geologist": 4, 1645 | "geologists": 4, 1646 | "geology": 4, 1647 | "geomagnetic": 5, 1648 | "geometric": 4, 1649 | "geometrical": 5, 1650 | "geometries": 4, 1651 | "geometry": 4, 1652 | "geomorphology": 6, 1653 | "geon": 2, 1654 | "geophysical": 5, 1655 | "geopolitical": 6, 1656 | "geopolitics": 5, 1657 | "geordie": 3, 1658 | "georg": 2, 1659 | "georgeson": 4, 1660 | "georgi": 3, 1661 | "georgiades": 4, 1662 | "geostrophic": 4, 1663 | "geosyncline": 4, 1664 | "geotaxis": 4, 1665 | "geotek": 3, 1666 | "geothermal": 4, 1667 | "geotropic": 4, 1668 | "geotropism": 5, 1669 | "gering": 2, 1670 | "geringer": 3, 1671 | "geske": 1, 1672 | "geyelin": 3, 1673 | "gibeau": 2, 1674 | "gibeault": 2, 1675 | "gideon": 3, 1676 | "gieske": 1, 1677 | "giggled": 2, 1678 | "gildea": 3, 1679 | "gilded": 2, 1680 | "gille": 1, 1681 | "gilles": 1, 1682 | "gillette": 2, 1683 | "gionet": 3, 1684 | "giselle": 2, 1685 | "giudice": 3, 1686 | "glances": 2, 1687 | "glanville": 2, 1688 | "glazes": 2, 1689 | "glenville": 2, 1690 | "glitches": 2, 1691 | "glowering": 3, 1692 | "goa": 2, 1693 | "gobbled": 2, 1694 | "goddeau": 2, 1695 | "godette": 2, 1696 | "goethe": 1, 1697 | "goldfeder": 3, 1698 | "golle": 1, 1699 | "goodreau": 2, 1700 | "gooseberry": 3, 1701 | "gordeyev": 3, 1702 | "gorgeous": 2, 1703 | "gorges": 2, 1704 | "gossage": 2, 1705 | "gosse": 1, 1706 | "goudeau": 2, 1707 | "goudreau": 2, 1708 | "goulette": 2, 1709 | "goya": 2, 1710 | "goyim": 2, 1711 | "graceful": 2, 1712 | "gracefully": 3, 1713 | "graceless": 2, 1714 | "graces": 2, 1715 | "gracia": 2, 1716 | "graffeo": 3, 1717 | "grambling": 2, 1718 | "granges": 2, 1719 | "granville": 2, 1720 | "grappled": 2, 1721 | "grappling": 2, 1722 | "grasse": 1, 1723 | "gravelle": 2, 1724 | "gravette": 2, 1725 | "grayish": 2, 1726 | "grecian": 2, 1727 | "greenhouses": 3, 1728 | "greenpeace": 2, 1729 | "greenville": 2, 1730 | "grelle": 1, 1731 | "grenouille": 3, 1732 | "grievances": 3, 1733 | "grille": 1, 1734 | "grimaced": 2, 1735 | "grimaces": 3, 1736 | "grimme": 1, 1737 | "grinage": 2, 1738 | "grizzled": 2, 1739 | "groleau": 2, 1740 | "grosse": 1, 1741 | "grotesque": 2, 1742 | "grotesquely": 3, 1743 | "grothe": 1, 1744 | "grotheer": 2, 1745 | "grounded": 2, 1746 | "groupement": 2, 1747 | "grouses": 2, 1748 | "grua": 2, 1749 | "grudges": 2, 1750 | "grumbled": 2, 1751 | "guarded": 2, 1752 | "guardedly": 3, 1753 | "guayabera": 4, 1754 | "guccione": 3, 1755 | "guerette": 2, 1756 | "guerrette": 2, 1757 | "guidice": 2, 1758 | "guilbeau": 2, 1759 | "guilbeault": 2, 1760 | "guilbeaux": 2, 1761 | "guillemette": 3, 1762 | "guillette": 2, 1763 | "guilmette": 2, 1764 | "guises": 2, 1765 | "gullette": 2, 1766 | "guste": 1, 1767 | "guyana": 3, 1768 | "guyett": 2, 1769 | "guyon": 2, 1770 | "guyot": 2, 1771 | "gvaryahu": 4, 1772 | "gwynne": 1, 1773 | "haberer": 3, 1774 | "hachette": 2, 1775 | "haggled": 2, 1776 | "halcion": 3, 1777 | "halle": 1, 1778 | "halve": 1, 1779 | "halves": 1, 1780 | "hamme": 1, 1781 | "hammes": 1, 1782 | "handed": 2, 1783 | "handedly": 3, 1784 | "handled": 2, 1785 | "hannes": 1, 1786 | "hansche": 2, 1787 | "haranguing": 3, 1788 | "hardage": 2, 1789 | "harleysville": 3, 1790 | "harnage": 2, 1791 | "harne": 1, 1792 | "harriette": 3, 1793 | "hartlage": 2, 1794 | "hartshorne": 2, 1795 | "harville": 2, 1796 | "haske": 1, 1797 | "hasse": 1, 1798 | "hassled": 2, 1799 | "haste": 1, 1800 | "hatches": 2, 1801 | "hathorne": 2, 1802 | "hauppauge": 2, 1803 | "hawthorne": 2, 1804 | "hayashi": 3, 1805 | "hayashida": 4, 1806 | "hayek": 2, 1807 | "hayen": 2, 1808 | "hayenga": 3, 1809 | "hearne": 1, 1810 | "heavyhanded": 4, 1811 | "heberer": 3, 1812 | "heckled": 2, 1813 | "hedges": 2, 1814 | "heidbreder": 3, 1815 | "heiges": 2, 1816 | "helice": 2, 1817 | "helle": 1, 1818 | "hemme": 1, 1819 | "hemocyanin": 5, 1820 | "hemorrhage": 3, 1821 | "hemorrhaged": 3, 1822 | "henne": 1, 1823 | "henneberry": 3, 1824 | "hennes": 1, 1825 | "henriette": 3, 1826 | "hentges": 2, 1827 | "henthorne": 2, 1828 | "heon": 2, 1829 | "heralded": 3, 1830 | "herbaceous": 3, 1831 | "herded": 2, 1832 | "heritage": 3, 1833 | "hermitage": 3, 1834 | "herne": 1, 1835 | "herriage": 3, 1836 | "herrlinger": 3, 1837 | "hesse": 1, 1838 | "hessian": 2, 1839 | "heterogeneous": 5, 1840 | "hicksville": 2, 1841 | "hideo": 3, 1842 | "hille": 1, 1843 | "himalayan": 4, 1844 | "himalayas": 4, 1845 | "hindrances": 3, 1846 | "hinges": 2, 1847 | "hirayama": 4, 1848 | "hiroyuki": 4, 1849 | "histrionic": 4, 1850 | "histrionics": 4, 1851 | "hitches": 2, 1852 | "hoarded": 2, 1853 | "hoarseness": 2, 1854 | "hoaxes": 2, 1855 | "hobbled": 2, 1856 | "hodges": 2, 1857 | "hoelle": 1, 1858 | "holle": 1, 1859 | "homage": 2, 1860 | "homeostasis": 5, 1861 | "homeostatic": 5, 1862 | "homme": 1, 1863 | "hommes": 1, 1864 | "horace": 2, 1865 | "horne": 1, 1866 | "hoses": 2, 1867 | "hospice": 2, 1868 | "hospices": 3, 1869 | "hostage": 2, 1870 | "hostages": 3, 1871 | "houdaille": 2, 1872 | "hounded": 2, 1873 | "houses": 2, 1874 | "hovering": 3, 1875 | "hoyos": 2, 1876 | "hua": 2, 1877 | "huddled": 2, 1878 | "hugely": 2, 1879 | "hugette": 2, 1880 | "hughette": 2, 1881 | "hulette": 2, 1882 | "humbled": 2, 1883 | "hundred": 2, 1884 | "hungering": 3, 1885 | "huntsville": 2, 1886 | "hurteau": 2, 1887 | "hutcheon": 3, 1888 | "huyett": 2, 1889 | "hyacinth": 3, 1890 | "hyacintha": 4, 1891 | "hyacinthia": 5, 1892 | "hyacinthie": 4, 1893 | "hyacinths": 3, 1894 | "hyaluronic": 5, 1895 | "hyams": 2, 1896 | "hyannis": 3, 1897 | "hyatt": 2, 1898 | "hyena": 3, 1899 | "hyenas": 3, 1900 | "hyperion": 4, 1901 | "hypotheses": 4, 1902 | "hyraxes": 3, 1903 | "I'd": 1, 1904 | "I'm": 1, 1905 | "I've": 1, 1906 | "ianniello": 5, 1907 | "ices": 2, 1908 | "iconoclasm": 5, 1909 | "idea": 3, 1910 | "ideological": 6, 1911 | "ideologies": 5, 1912 | "ideologists": 5, 1913 | "idette": 2, 1914 | "idled": 2, 1915 | "idolizes": 4, 1916 | "ierne": 1, 1917 | "ignace": 2, 1918 | "illes": 1, 1919 | "Ilyich": 2, 1920 | "image": 2, 1921 | "images": 3, 1922 | "imbalances": 4, 1923 | "imbedded": 3, 1924 | "immortalizes": 5, 1925 | "immunizes": 4, 1926 | "impasse": 2, 1927 | "impeached": 2, 1928 | "impeding": 3, 1929 | "imposes": 3, 1930 | "impounded": 3, 1931 | "improvement": 3, 1932 | "improvements": 3, 1933 | "inbred": 2, 1934 | "incidences": 4, 1935 | "inconvenienced": 4, 1936 | "inconveniences": 5, 1937 | "increases": 3, 1938 | "indecisiveness": 5, 1939 | "indexes": 3, 1940 | "indices": 3, 1941 | "indonesian": 4, 1942 | "induce": 2, 1943 | "induced": 2, 1944 | "inducement": 3, 1945 | "inducements": 3, 1946 | "induces": 3, 1947 | "indulgences": 4, 1948 | "indulges": 3, 1949 | "ineffectiveness": 5, 1950 | "inferences": 4, 1951 | "influence": 3, 1952 | "influenced": 3, 1953 | "influences": 4, 1954 | "influencing": 4, 1955 | "influential": 4, 1956 | "influenza": 4, 1957 | "infrared": 3, 1958 | "infringed": 2, 1959 | "infringement": 3, 1960 | "infringements": 3, 1961 | "infringes": 3, 1962 | "infuses": 3, 1963 | "injustice": 3, 1964 | "injustices": 4, 1965 | "innerspace": 3, 1966 | "innuendo": 4, 1967 | "innuendoes": 4, 1968 | "innuendos": 4, 1969 | "instances": 3, 1970 | "institutionalizes": 7, 1971 | "insurances": 4, 1972 | "intended": 3, 1973 | "interacciones": 5, 1974 | "interbred": 3, 1975 | "interceding": 4, 1976 | "interchanges": 4, 1977 | "interface": 3, 1978 | "interfaces": 4, 1979 | "interlaced": 3, 1980 | "intermingled": 4, 1981 | "interoffice": 4, 1982 | "intervoice": 3, 1983 | "intraocular": 5, 1984 | "intrauterine": 5, 1985 | "intriguing": 3, 1986 | "intriguingly": 4, 1987 | "introduce": 3, 1988 | "introduced": 3, 1989 | "introduces": 4, 1990 | "inveighed": 2, 1991 | "inventiveness": 4, 1992 | "invoice": 2, 1993 | "invoices": 3, 1994 | "involve": 2, 1995 | "involvement": 3, 1996 | "involves": 2, 1997 | "iodice": 3, 1998 | "ion": 2, 1999 | "iona": 3, 2000 | "ionic": 3, 2001 | "ionics": 3, 2002 | "ionization": 5, 2003 | "ionizers": 4, 2004 | "ionizing": 4, 2005 | "ionospheric": 5, 2006 | "ions": 2, 2007 | "irette": 2, 2008 | "irises": 3, 2009 | "ironizes": 4, 2010 | "irvette": 2, 2011 | "isabelle": 3, 2012 | "isle": 1, 2013 | "isles": 1, 2014 | "isocyanate": 5, 2015 | "Isozaki": 4, 2016 | "issuances": 4, 2017 | "itches": 2, 2018 | "jacksonville": 3, 2019 | "jandreau": 2, 2020 | "janelle": 2, 2021 | "janesville": 2, 2022 | "janette": 2, 2023 | "jangled": 2, 2024 | "janice": 2, 2025 | "jarreau": 2, 2026 | "jasmer": 3, 2027 | "jaundice": 2, 2028 | "jaundiced": 2, 2029 | "jawed": 1, 2030 | "jaya": 2, 2031 | "jayashankar": 4, 2032 | "jeanbaptiste": 3, 2033 | "jeanette": 2, 2034 | "jeanne": 1, 2035 | "jeannette": 2, 2036 | "jeansonne": 2, 2037 | "jenne": 1, 2038 | "jennette": 2, 2039 | "jenrette": 2, 2040 | "jeske": 1, 2041 | "jetborne": 2, 2042 | "jette": 1, 2043 | "jeyaretnam": 4, 2044 | "joffrion": 3, 2045 | "jolette": 2, 2046 | "joliet": 3, 2047 | "jolivette": 3, 2048 | "jopling": 2, 2049 | "jorge": 2, 2050 | "josette": 2, 2051 | "joshua": 3, 2052 | "jostes": 1, 2053 | "jostling": 2, 2054 | "joyal": 2, 2055 | "joyoni": 3, 2056 | "joyous": 2, 2057 | "juan": 1, 2058 | "juana": 2, 2059 | "juanita": 3, 2060 | "juarez": 2, 2061 | "judaism": 3, 2062 | "judea": 3, 2063 | "judeo": 3, 2064 | "judgement": 2, 2065 | "judgements": 2, 2066 | "judges": 2, 2067 | "judgeship": 2, 2068 | "judgeships": 2, 2069 | "judice": 2, 2070 | "juggled": 2, 2071 | "juices": 2, 2072 | "jukebox": 2, 2073 | "julia": 3, 2074 | "julianne": 3, 2075 | "juliet": 3, 2076 | "julius": 3, 2077 | "jumbled": 2, 2078 | "jumonville": 3, 2079 | "juneau": 2, 2080 | "junette": 2, 2081 | "junior": 3, 2082 | "juniors": 3, 2083 | "justice": 2, 2084 | "justices": 3, 2085 | "kageyama": 4, 2086 | "kamerer": 3, 2087 | "kanghua": 3, 2088 | "kanne": 1, 2089 | "karges": 2, 2090 | "karnes": 1, 2091 | "kasmer": 3, 2092 | "katayama": 4, 2093 | "kaya": 2, 2094 | "kayak": 2, 2095 | "kayaking": 3, 2096 | "kayaks": 2, 2097 | "kayo": 2, 2098 | "kemerer": 3, 2099 | "keo": 2, 2100 | "keogh": 2, 2101 | "keohane": 3, 2102 | "keown": 2, 2103 | "kerestes": 2, 2104 | "kernes": 1, 2105 | "kerrville": 2, 2106 | "keske": 1, 2107 | "keville": 2, 2108 | "keynesian": 3, 2109 | "kibodeaux": 3, 2110 | "kidded": 2, 2111 | "kiessling": 2, 2112 | "kilborne": 2, 2113 | "kilbourne": 2, 2114 | "kille": 1, 2115 | "kimche": 2, 2116 | "kindled": 2, 2117 | "kindred": 2, 2118 | "kingsville": 2, 2119 | "kinne": 1, 2120 | "kissling": 2, 2121 | "kitchenette": 3, 2122 | "kiyoshi": 3, 2123 | "kiyotaka": 4, 2124 | "klages": 2, 2125 | "kleinpaste": 2, 2126 | "klemme": 1, 2127 | "knicely": 2, 2128 | "knoxville": 2, 2129 | "kobayashi": 4, 2130 | "kocian": 2, 2131 | "koelle": 1, 2132 | "kolle": 1, 2133 | "Komsomolskaya": 5, 2134 | "korfhage": 2, 2135 | "kothe": 1, 2136 | "koyama": 3, 2137 | "koyo": 2, 2138 | "kramme": 1, 2139 | "krammes": 1, 2140 | "krasnoyarsk": 3, 2141 | "krausse": 1, 2142 | "kresge": 2, 2143 | "kresse": 1, 2144 | "krumme": 1, 2145 | "kuenheim": 3, 2146 | "kuenstler": 3, 2147 | "kuenzi": 3, 2148 | "kunayev": 3, 2149 | "kuske": 1, 2150 | "labeau": 2, 2151 | "labelle": 2, 2152 | "labranche": 3, 2153 | "lacayo": 3, 2154 | "laces": 2, 2155 | "lachapelle": 3, 2156 | "lacoste": 2, 2157 | "lacrosse": 2, 2158 | "ladled": 2, 2159 | "lafalce": 3, 2160 | "laflamme": 2, 2161 | "lafollette": 3, 2162 | "lafosse": 2, 2163 | "lagesse": 2, 2164 | "lajeunesse": 3, 2165 | "lakeside": 2, 2166 | "lamarche": 3, 2167 | "lambaste": 2, 2168 | "lambastes": 2, 2169 | "lamme": 1, 2170 | "lamontagne": 3, 2171 | "lamoreaux": 3, 2172 | "lamothe": 2, 2173 | "lamoureaux": 3, 2174 | "lanceolate": 4, 2175 | "lancia": 2, 2176 | "landed": 2, 2177 | "landreneau": 3, 2178 | "langhorne": 2, 2179 | "language": 2, 2180 | "languages": 3, 2181 | "lanouette": 3, 2182 | "lapage": 2, 2183 | "larche": 2, 2184 | "larded": 2, 2185 | "lareau": 2, 2186 | "largesse": 2, 2187 | "lariccia": 3, 2188 | "larochelle": 3, 2189 | "lasalle": 2, 2190 | "lashua": 3, 2191 | "laske": 1, 2192 | "lasseigne": 2, 2193 | "latches": 2, 2194 | "latendresse": 3, 2195 | "lateness": 2, 2196 | "latexes": 3, 2197 | "lathe": 1, 2198 | "lathes": 1, 2199 | "latourette": 3, 2200 | "lattice": 2, 2201 | "laurette": 2, 2202 | "laurice": 2, 2203 | "lausanne": 2, 2204 | "lavelle": 2, 2205 | "laverne": 2, 2206 | "lavette": 2, 2207 | "lavigne": 2, 2208 | "laviolette": 4, 2209 | "lawhorne": 2, 2210 | "lawrenceville": 3, 2211 | "layborne": 2, 2212 | "layered": 2, 2213 | "layering": 3, 2214 | "layoff": 2, 2215 | "layoffs": 2, 2216 | "layout": 2, 2217 | "layouts": 2, 2218 | "layover": 3, 2219 | "layovers": 3, 2220 | "leadville": 2, 2221 | "leakage": 2, 2222 | "leases": 2, 2223 | "leatrice": 2, 2224 | "leavelle": 2, 2225 | "lebeau": 2, 2226 | "ledges": 2, 2227 | "ledonne": 2, 2228 | "legette": 2, 2229 | "legged": 2, 2230 | "leggette": 2, 2231 | "legitimizes": 5, 2232 | "leifeste": 2, 2233 | "lemelle": 2, 2234 | "leo": 2, 2235 | "leoma": 3, 2236 | "leominster": 4, 2237 | "leon": 2, 2238 | "leona": 3, 2239 | "leonardo": 4, 2240 | "leone": 2, 2241 | "leonel": 3, 2242 | "leonerd": 3, 2243 | "leones": 2, 2244 | "leonhard": 3, 2245 | "leoni": 3, 2246 | "leonid": 3, 2247 | "leonora": 4, 2248 | "leonore": 3, 2249 | "leontine": 3, 2250 | "leopold": 3, 2251 | "leopoldine": 4, 2252 | "leopoldo": 4, 2253 | "leos": 2, 2254 | "leotard": 3, 2255 | "lepage": 2, 2256 | "lerette": 2, 2257 | "lesage": 2, 2258 | "leske": 1, 2259 | "lespinasse": 3, 2260 | "leticia": 3, 2261 | "letourneau": 3, 2262 | "lettice": 2, 2263 | "lettuce": 2, 2264 | "leveille": 2, 2265 | "leverage": 3, 2266 | "leveraged": 3, 2267 | "leverette": 3, 2268 | "levering": 3, 2269 | "levesque": 2, 2270 | "leya": 2, 2271 | "lianne": 2, 2272 | "liberace": 3, 2273 | "libya": 3, 2274 | "libyan": 3, 2275 | "libyans": 3, 2276 | "licences": 3, 2277 | "licorice": 3, 2278 | "lighthouses": 3, 2279 | "likeness": 2, 2280 | "likenesses": 3, 2281 | "lille": 1, 2282 | "lilyan": 3, 2283 | "limoges": 3, 2284 | "linage": 2, 2285 | "lineberry": 3, 2286 | "linette": 2, 2287 | "lingering": 3, 2288 | "linkage": 2, 2289 | "linkages": 3, 2290 | "linne": 1, 2291 | "linville": 2, 2292 | "lion": 2, 2293 | "lionberger": 4, 2294 | "lionel": 3, 2295 | "lionetti": 4, 2296 | "lionheart": 3, 2297 | "lionized": 3, 2298 | "lions": 2, 2299 | "lirette": 2, 2300 | "lisette": 2, 2301 | "liske": 1, 2302 | "literaturnaya": 6, 2303 | "lithe": 1, 2304 | "littlepage": 3, 2305 | "loathe": 1, 2306 | "loathed": 1, 2307 | "lodges": 2, 2308 | "loewe": 2, 2309 | "logarithm": 4, 2310 | "loges": 2, 2311 | "logician": 3, 2312 | "loguidice": 3, 2313 | "loiselle": 2, 2314 | "lonesome": 2, 2315 | "looses": 2, 2316 | "lorette": 2, 2317 | "lorne": 1, 2318 | "loses": 2, 2319 | "losoya": 3, 2320 | "louisville": 3, 2321 | "lounges": 2, 2322 | "lovage": 2, 2323 | "lovering": 3, 2324 | "lovette": 2, 2325 | "lowering": 3, 2326 | "loya": 2, 2327 | "loyal": 2, 2328 | "loyalist": 3, 2329 | "loyalists": 3, 2330 | "loyall": 2, 2331 | "loyally": 3, 2332 | "loyalties": 3, 2333 | "loyalty": 3, 2334 | "loyola": 3, 2335 | "lozeau": 2, 2336 | "lozenges": 3, 2337 | "lozoya": 3, 2338 | "lua": 2, 2339 | "lucerne": 2, 2340 | "lucette": 2, 2341 | "lucia": 2, 2342 | "lucian": 2, 2343 | "lucille": 2, 2344 | "lucrecia": 3, 2345 | "luelle": 1, 2346 | "luggage": 2, 2347 | "lunges": 2, 2348 | "lurches": 2, 2349 | "lurette": 2, 2350 | "lyall": 2, 2351 | "lyell": 2, 2352 | "lyerla": 3, 2353 | "lynette": 2, 2354 | "lynne": 1, 2355 | "mabelle": 2, 2356 | "macfadyen": 4, 2357 | "macioce": 3, 2358 | "macroeconomic": 6, 2359 | "macroeconomics": 6, 2360 | "macrophage": 3, 2361 | "macrophages": 4, 2362 | "madelle": 2, 2363 | "mademoiselle": 4, 2364 | "maffeo": 3, 2365 | "mages": 2, 2366 | "magician": 3, 2367 | "magicians": 3, 2368 | "mahayana": 4, 2369 | "mahe": 2, 2370 | "mailboxes": 3, 2371 | "maille": 1, 2372 | "mainville": 2, 2373 | "maione": 3, 2374 | "majette": 2, 2375 | "makeover": 4, 2376 | "makepeace": 3, 2377 | "malayan": 3, 2378 | "malaysian": 3, 2379 | "malaysians": 3, 2380 | "maleness": 2, 2381 | "malice": 2, 2382 | "malle": 1, 2383 | "mallette": 2, 2384 | "malpractice": 3, 2385 | "malveaux": 2, 2386 | "manage": 2, 2387 | "managed": 2, 2388 | "management": 3, 2389 | "managements": 3, 2390 | "manages": 3, 2391 | "mandeville": 3, 2392 | "manette": 2, 2393 | "maneuvering": 4, 2394 | "maneuverings": 4, 2395 | "manganiello": 5, 2396 | "mangement": 2, 2397 | "manges": 2, 2398 | "mangione": 3, 2399 | "mangled": 2, 2400 | "manhandled": 3, 2401 | "manne": 1, 2402 | "mannes": 1, 2403 | "manseau": 2, 2404 | "mantua": 3, 2405 | "manuevering": 4, 2406 | "manville": 2, 2407 | "marantette": 3, 2408 | "maranville": 3, 2409 | "marbled": 2, 2410 | "marceau": 2, 2411 | "marceaux": 2, 2412 | "marcelle": 2, 2413 | "marches": 2, 2414 | "marcia": 2, 2415 | "marcille": 2, 2416 | "marcoses": 3, 2417 | "marette": 2, 2418 | "margette": 2, 2419 | "marginalizes": 5, 2420 | "marianne": 3, 2421 | "marice": 2, 2422 | "mariette": 3, 2423 | "marineau": 3, 2424 | "marketplace": 3, 2425 | "marketplaces": 4, 2426 | "marlette": 2, 2427 | "marmion": 3, 2428 | "marseille": 2, 2429 | "martelle": 2, 2430 | "martineau": 3, 2431 | "maruyama": 4, 2432 | "maruyu": 3, 2433 | "marvelle": 2, 2434 | "maryann": 3, 2435 | "marysville": 3, 2436 | "maryville": 3, 2437 | "marzette": 2, 2438 | "masaya": 3, 2439 | "masayoshi": 4, 2440 | "masayuki": 4, 2441 | "mascia": 2, 2442 | "masiello": 4, 2443 | "maske": 1, 2444 | "massacred": 3, 2445 | "massage": 2, 2446 | "massaged": 2, 2447 | "massages": 3, 2448 | "masse": 1, 2449 | "masterminded": 4, 2450 | "masterpiece": 3, 2451 | "masterpieces": 4, 2452 | "mataya": 3, 2453 | "matches": 2, 2454 | "mateo": 3, 2455 | "materializes": 6, 2456 | "mathe": 1, 2457 | "mathematician": 5, 2458 | "mathematicians": 5, 2459 | "matherne": 2, 2460 | "matisse": 2, 2461 | "matteo": 3, 2462 | "mattice": 2, 2463 | "maurice": 2, 2464 | "mauriello": 4, 2465 | "mauthe": 1, 2466 | "maximizes": 4, 2467 | "maya": 2, 2468 | "mayall": 2, 2469 | "mayan": 2, 2470 | "maybelle": 2, 2471 | "mayeda": 3, 2472 | "mayernik": 3, 2473 | "mayerson": 3, 2474 | "mayeux": 2, 2475 | "mayo": 2, 2476 | "mayon": 2, 2477 | "mayonnaise": 3, 2478 | "mayor": 2, 2479 | "mayoral": 3, 2480 | "mayoralty": 4, 2481 | "mayorga": 3, 2482 | "mayors": 2, 2483 | "mayville": 2, 2484 | "mazes": 2, 2485 | "mazzeo": 3, 2486 | "mcbryar": 3, 2487 | "mccarville": 3, 2488 | "mcconville": 3, 2489 | "mcfadyen": 4, 2490 | "mcginnes": 2, 2491 | "mckeon": 3, 2492 | "mckeone": 3, 2493 | "mckeown": 3, 2494 | "mcneece": 2, 2495 | "mcneice": 2, 2496 | "mcquaid": 2, 2497 | "mcquaide": 2, 2498 | "mcquaig": 2, 2499 | "mcquain": 2, 2500 | "measurement": 3, 2501 | "measurements": 3, 2502 | "meaux": 1, 2503 | "medea": 3, 2504 | "megahouses": 4, 2505 | "mehitabelle": 4, 2506 | "meiyuh": 2, 2507 | "melanesian": 4, 2508 | "melbourne": 2, 2509 | "melded": 2, 2510 | "melisse": 2, 2511 | "melle": 1, 2512 | "melville": 2, 2513 | "menace": 2, 2514 | "menaced": 2, 2515 | "menaces": 3, 2516 | "mended": 2, 2517 | "meneses": 3, 2518 | "menezes": 3, 2519 | "menges": 2, 2520 | "menne": 1, 2521 | "meo": 2, 2522 | "meola": 3, 2523 | "meow": 2, 2524 | "mercedeses": 4, 2525 | "merdyce": 2, 2526 | "merges": 2, 2527 | "merhige": 2, 2528 | "mersereau": 3, 2529 | "mertice": 2, 2530 | "meske": 1, 2531 | "message": 2, 2532 | "messages": 3, 2533 | "messiaen": 3, 2534 | "messineo": 4, 2535 | "meteor": 3, 2536 | "meteoric": 4, 2537 | "meteorological": 7, 2538 | "meteorologist": 6, 2539 | "meteorologists": 6, 2540 | "meteorology": 6, 2541 | "mette": 1, 2542 | "meyerhoff": 3, 2543 | "meyering": 3, 2544 | "meyerman": 3, 2545 | "meyerowitz": 4, 2546 | "meyerson": 3, 2547 | "meyo": 2, 2548 | "meyohas": 3, 2549 | "micheaux": 2, 2550 | "michelle": 2, 2551 | "microage": 3, 2552 | "microamerica": 6, 2553 | "microeconomic": 6, 2554 | "microeconomics": 6, 2555 | "microelectronic": 6, 2556 | "microelectronics": 6, 2557 | "microelettronica": 7, 2558 | "micromanage": 4, 2559 | "micromanagement": 5, 2560 | "microorganism": 6, 2561 | "micropaleontology": 8, 2562 | "midges": 2, 2563 | "midgette": 2, 2564 | "midpriced": 2, 2565 | "miesse": 1, 2566 | "might've": 2, 2567 | "migneault": 2, 2568 | "milbourne": 2, 2569 | "mildred": 2, 2570 | "mileage": 2, 2571 | "millage": 2, 2572 | "mille": 1, 2573 | "millette": 2, 2574 | "milliet": 3, 2575 | "mimeograph": 4, 2576 | "minasian": 3, 2577 | "minassian": 3, 2578 | "minded": 2, 2579 | "mindedly": 3, 2580 | "mineau": 2, 2581 | "mineo": 3, 2582 | "mineola": 4, 2583 | "minette": 2, 2584 | "minges": 2, 2585 | "mingled": 2, 2586 | "minibuses": 4, 2587 | "minichiello": 5, 2588 | "minimizes": 4, 2589 | "mintage": 2, 2590 | "minuses": 3, 2591 | "mion": 2, 2592 | "mione": 2, 2593 | "mirabelle": 3, 2594 | "mirage": 2, 2595 | "mirelle": 2, 2596 | "miscayuna": 4, 2597 | "mischarges": 3, 2598 | "mises": 2, 2599 | "mishandled": 3, 2600 | "misjudged": 2, 2601 | "miske": 1, 2602 | "mismanaged": 3, 2603 | "mismanagement": 4, 2604 | "mismatches": 3, 2605 | "misplace": 2, 2606 | "misplaced": 2, 2607 | "mispriced": 2, 2608 | "misstatement": 3, 2609 | "misstatements": 3, 2610 | "misuses": 3, 2611 | "mixes": 2, 2612 | "miyagawa": 4, 2613 | "miyahara": 4, 2614 | "miyako": 3, 2615 | "miyamori": 4, 2616 | "miyamoto": 4, 2617 | "miyasaki": 4, 2618 | "miyasato": 4, 2619 | "miyashiro": 4, 2620 | "miyazaki": 4, 2621 | "miyazawa": 4, 2622 | "mizelle": 2, 2623 | "moccia": 2, 2624 | "modisette": 3, 2625 | "moises": 2, 2626 | "molded": 2, 2627 | "molineaux": 3, 2628 | "molle": 1, 2629 | "molyneaux": 3, 2630 | "momayez": 3, 2631 | "moncayo": 3, 2632 | "monceaux": 2, 2633 | "mondeo": 3, 2634 | "monette": 2, 2635 | "mongeau": 2, 2636 | "mongering": 3, 2637 | "mongooses": 3, 2638 | "monopolizes": 5, 2639 | "monroeville": 3, 2640 | "montage": 2, 2641 | "montagne": 2, 2642 | "montemayor": 4, 2643 | "montesdeoca": 5, 2644 | "montevideo": 5, 2645 | "montoya": 3, 2646 | "montreal": 3, 2647 | "montville": 2, 2648 | "moragne": 2, 2649 | "moreau": 2, 2650 | "morice": 2, 2651 | "morisette": 3, 2652 | "morissette": 3, 2653 | "moriya": 3, 2654 | "morneau": 2, 2655 | "morneault": 2, 2656 | "morreale": 3, 2657 | "morrisette": 3, 2658 | "morrissette": 3, 2659 | "morrisville": 3, 2660 | "mortage": 2, 2661 | "mortages": 3, 2662 | "mortgage": 2, 2663 | "mortgaged": 2, 2664 | "mortgages": 3, 2665 | "mortician": 3, 2666 | "moselle": 2, 2667 | "moses": 2, 2668 | "mosque": 1, 2669 | "mosques": 1, 2670 | "mousse": 1, 2671 | "mousseau": 2, 2672 | "mouthed": 1, 2673 | "mouthpiece": 2, 2674 | "mouthpieces": 3, 2675 | "movement": 2, 2676 | "movements": 2, 2677 | "moya": 2, 2678 | "mozelle": 2, 2679 | "Muammar": 3, 2680 | "muddled": 2, 2681 | "muffled": 2, 2682 | "mughniyeh": 3, 2683 | "mugniyah": 3, 2684 | "mullineaux": 3, 2685 | "multilayered": 4, 2686 | "multivalve": 3, 2687 | "multiyear": 3, 2688 | "mumbled": 2, 2689 | "mumme": 1, 2690 | "murayama": 4, 2691 | "muscled": 2, 2692 | "muses": 2, 2693 | "musician": 3, 2694 | "musicians": 3, 2695 | "muske": 1, 2696 | "mustached": 2, 2697 | "muzzled": 2, 2698 | "myatt": 2, 2699 | "myelin": 3, 2700 | "myreon": 3, 2701 | "myrtice": 2, 2702 | "nadeau": 2, 2703 | "nagoya": 3, 2704 | "nairne": 1, 2705 | "nakayama": 4, 2706 | "nanette": 2, 2707 | "naperville": 3, 2708 | "napoleon": 4, 2709 | "napoleonic": 5, 2710 | "narayan": 3, 2711 | "narayanan": 4, 2712 | "narcisse": 2, 2713 | "nardiello": 4, 2714 | "nashua": 3, 2715 | "nashville": 2, 2716 | "nathe": 1, 2717 | "navarette": 3, 2718 | "navarrette": 3, 2719 | "Nazarbayev": 4, 2720 | "neault": 1, 2721 | "nechayev": 3, 2722 | "necklace": 2, 2723 | "necklaces": 3, 2724 | "nedeau": 2, 2725 | "nederlandsche": 4, 2726 | "needled": 2, 2727 | "neises": 2, 2728 | "nelle": 1, 2729 | "nelles": 1, 2730 | "nellette": 2, 2731 | "neo": 2, 2732 | "neoclassic": 4, 2733 | "neoclassical": 5, 2734 | "neoconservative": 6, 2735 | "neoconservatives": 6, 2736 | "neola": 3, 2737 | "neoliberal": 5, 2738 | "neoliberals": 5, 2739 | "neoma": 3, 2740 | "neon": 2, 2741 | "neonatal": 4, 2742 | "neons": 2, 2743 | "neophyte": 3, 2744 | "neophytes": 3, 2745 | "neoplasm": 4, 2746 | "neoplatonic": 5, 2747 | "neoplatonist": 5, 2748 | "neoprene": 3, 2749 | "neoprobe": 3, 2750 | "neotenic": 4, 2751 | "neoteny": 4, 2752 | "nerice": 2, 2753 | "nerves": 1, 2754 | "neste": 1, 2755 | "netterville": 3, 2756 | "neuroses": 3, 2757 | "neutralizes": 4, 2758 | "neuville": 2, 2759 | "neveau": 2, 2760 | "neville": 2, 2761 | "newfangled": 3, 2762 | "newlywed": 3, 2763 | "newville": 2, 2764 | "nguyen": 2, 2765 | "nibbled": 2, 2766 | "nicely": 2, 2767 | "niceness": 2, 2768 | "nickelodeon": 5, 2769 | "nicolette": 3, 2770 | "nicolle": 2, 2771 | "nicorette": 3, 2772 | "nieces": 2, 2773 | "nietzsche": 2, 2774 | "nightstage": 2, 2775 | "nilges": 2, 2776 | "nilles": 1, 2777 | "ninette": 2, 2778 | "nishiyama": 4, 2779 | "nixes": 2, 2780 | "noa": 2, 2781 | "noblesse": 2, 2782 | "nobuyuki": 4, 2783 | "nodded": 2, 2784 | "noises": 2, 2785 | "nolette": 2, 2786 | "nonbusiness": 3, 2787 | "noncontroversial": 5, 2788 | "nonesuch": 2, 2789 | "nonetheless": 3, 2790 | "nonmanagement": 4, 2791 | "norcia": 2, 2792 | "norville": 2, 2793 | "noses": 2, 2794 | "notches": 2, 2795 | "notice": 2, 2796 | "noticed": 2, 2797 | "notices": 3, 2798 | "nottage": 2, 2799 | "nouveau": 2, 2800 | "nouvelle": 2, 2801 | "novice": 2, 2802 | "novices": 3, 2803 | "novoa": 3, 2804 | "noyola": 3, 2805 | "nuanced": 2, 2806 | "nuances": 3, 2807 | "nucleonics": 4, 2808 | "nucleotide": 4, 2809 | "nudges": 2, 2810 | "nuisances": 3, 2811 | "nureyev": 3, 2812 | "nyack": 2, 2813 | "nyenhuis": 3, 2814 | "nyerere": 3, 2815 | "oakville": 2, 2816 | "obeirne": 2, 2817 | "oblige": 2, 2818 | "obliged": 2, 2819 | "obliges": 3, 2820 | "obryan": 3, 2821 | "obryant": 3, 2822 | "observances": 4, 2823 | "observes": 2, 2824 | "obstetrician": 4, 2825 | "obstetricians": 4, 2826 | "obyrne": 2, 2827 | "occhoa": 3, 2828 | "occurrences": 4, 2829 | "ochoa": 3, 2830 | "odea": 3, 2831 | "odelette": 3, 2832 | "odeon": 3, 2833 | "odette": 2, 2834 | "oesterreichische": 5, 2835 | "offended": 3, 2836 | "office": 2, 2837 | "offices": 3, 2838 | "offstage": 2, 2839 | "ogled": 2, 2840 | "ohanesian": 4, 2841 | "OHara": 3, 2842 | "ohbayashi": 4, 2843 | "olayan": 3, 2844 | "oleo": 3, 2845 | "olivette": 3, 2846 | "omnibuses": 4, 2847 | "oneness": 2, 2848 | "oneok": 3, 2849 | "onstage": 2, 2850 | "oozes": 2, 2851 | "opposes": 3, 2852 | "opticians": 3, 2853 | "orabelle": 3, 2854 | "oranges": 3, 2855 | "ordinances": 4, 2856 | "oreffice": 3, 2857 | "orefice": 3, 2858 | "oreo": 3, 2859 | "organelles": 3, 2860 | "organizes": 4, 2861 | "orgasm": 3, 2862 | "orifices": 4, 2863 | "orne": 1, 2864 | "orphanage": 3, 2865 | "orphanages": 4, 2866 | "orville": 2, 2867 | "osage": 2, 2868 | "osages": 3, 2869 | "osborne": 2, 2870 | "osbourne": 2, 2871 | "osceola": 4, 2872 | "osteopathic": 5, 2873 | "osteoporosis": 6, 2874 | "osterreichische": 5, 2875 | "ouelette": 3, 2876 | "ouellette": 3, 2877 | "ounces": 2, 2878 | "outage": 2, 2879 | "outages": 3, 2880 | "outhouses": 3, 2881 | "outpace": 2, 2882 | "outpaced": 2, 2883 | "outpaces": 3, 2884 | "outplacement": 3, 2885 | "outrage": 2, 2886 | "outraged": 2, 2887 | "outrageous": 3, 2888 | "outrageously": 4, 2889 | "outrages": 3, 2890 | "outweighed": 2, 2891 | "ovalle": 2, 2892 | "overcharges": 4, 2893 | "overcrowded": 4, 2894 | "overdoses": 4, 2895 | "overextended": 5, 2896 | "overfunded": 4, 2897 | "overpriced": 3, 2898 | "overproduce": 4, 2899 | "overproduced": 4, 2900 | "overreached": 3, 2901 | "overseer": 4, 2902 | "overseers": 4, 2903 | "oversizes": 4, 2904 | "overstatement": 4, 2905 | "overstatements": 4, 2906 | "oyama": 3, 2907 | "oyen": 2, 2908 | "oyola": 3, 2909 | "ozanne": 2, 2910 | "ozelle": 2, 2911 | "paccione": 3, 2912 | "paces": 2, 2913 | "package": 2, 2914 | "packaged": 2, 2915 | "packages": 3, 2916 | "padded": 2, 2917 | "paddled": 2, 2918 | "padua": 3, 2919 | "pages": 2, 2920 | "pagette": 2, 2921 | "paille": 1, 2922 | "palace": 2, 2923 | "palaces": 3, 2924 | "paleobotany": 6, 2925 | "paleocene": 4, 2926 | "paleontology": 6, 2927 | "palette": 2, 2928 | "paniccia": 3, 2929 | "pantaleo": 4, 2930 | "pantheon": 3, 2931 | "panzhihua": 4, 2932 | "papaleo": 4, 2933 | "papaya": 3, 2934 | "papayas": 3, 2935 | "papering": 3, 2936 | "papineau": 3, 2937 | "papua": 3, 2938 | "paradoxes": 4, 2939 | "paraguayan": 4, 2940 | "paralyzes": 4, 2941 | "parazoa": 4, 2942 | "parcplace": 2, 2943 | "parentage": 3, 2944 | "parenteau": 3, 2945 | "parentheses": 4, 2946 | "pariseau": 3, 2947 | "parisian": 3, 2948 | "parizeau": 3, 2949 | "parlette": 2, 2950 | "parnes": 1, 2951 | "parsonage": 3, 2952 | "partridges": 3, 2953 | "pascua": 3, 2954 | "paseo": 3, 2955 | "paske": 1, 2956 | "pasquariello": 5, 2957 | "pasque": 1, 2958 | "passage": 2, 2959 | "passages": 3, 2960 | "paste": 1, 2961 | "pastes": 1, 2962 | "patches": 2, 2963 | "pathe": 1, 2964 | "patrice": 2, 2965 | "patricia": 3, 2966 | "patrician": 3, 2967 | "patricians": 3, 2968 | "patronage": 3, 2969 | "paulette": 2, 2970 | "pauses": 2, 2971 | "pavement": 2, 2972 | "pavements": 2, 2973 | "payable": 3, 2974 | "payables": 3, 2975 | "payan": 2, 2976 | "payeur": 2, 2977 | "payoff": 2, 2978 | "payoffs": 2, 2979 | "payola": 3, 2980 | "payout": 2, 2981 | "payouts": 2, 2982 | "peaceful": 2, 2983 | "peacefully": 3, 2984 | "pebereau": 3, 2985 | "peddled": 2, 2986 | "peerage": 2, 2987 | "peladeau": 3, 2988 | "pelayo": 3, 2989 | "pelle": 1, 2990 | "peloponnesian": 5, 2991 | "penalizes": 4, 2992 | "peon": 2, 2993 | "peonies": 3, 2994 | "peons": 2, 2995 | "peony": 3, 2996 | "peoria": 4, 2997 | "percentage": 3, 2998 | "percentages": 4, 2999 | "perches": 2, 3000 | "performances": 4, 3001 | "permissiveness": 4, 3002 | "pernice": 2, 3003 | "perplexes": 3, 3004 | "perreault": 2, 3005 | "perriello": 4, 3006 | "persian": 2, 3007 | "persians": 2, 3008 | "pervasiveness": 4, 3009 | "petroleos": 4, 3010 | "petrossian": 3, 3011 | "phalanges": 3, 3012 | "phantasm": 3, 3013 | "phases": 2, 3014 | "phileo": 3, 3015 | "phoenicia": 3, 3016 | "phoenician": 3, 3017 | "phoenicians": 3, 3018 | "phrases": 2, 3019 | "phua": 2, 3020 | "physician": 3, 3021 | "physicians": 3, 3022 | "phytogeography": 6, 3023 | "picariello": 5, 3024 | "picayune": 3, 3025 | "piccione": 3, 3026 | "pichette": 2, 3027 | "pickled": 2, 3028 | "picturesque": 3, 3029 | "pieces": 2, 3030 | "piet": 2, 3031 | "pilferage": 3, 3032 | "pilgrimage": 3, 3033 | "pilgrimages": 4, 3034 | "pillage": 2, 3035 | "pillaged": 2, 3036 | "pillages": 3, 3037 | "pille": 1, 3038 | "pincavage": 3, 3039 | "pineau": 2, 3040 | "pineo": 3, 3041 | "pinette": 2, 3042 | "pinneo": 3, 3043 | "pinsoneault": 3, 3044 | "pion": 2, 3045 | "pioneer": 3, 3046 | "pioneered": 3, 3047 | "pioneering": 4, 3048 | "pioneers": 3, 3049 | "piontek": 3, 3050 | "piontkowski": 4, 3051 | "pirouettes": 3, 3052 | "pitches": 2, 3053 | "placement": 2, 3054 | "placements": 2, 3055 | "placencia": 3, 3056 | "places": 2, 3057 | "plaguing": 2, 3058 | "plainclothes": 2, 3059 | "plascencia": 3, 3060 | "plasencia": 3, 3061 | "plasse": 1, 3062 | "plateau": 2, 3063 | "plateaued": 2, 3064 | "playa": 2, 3065 | "playoff": 2, 3066 | "playoffs": 2, 3067 | "pleasantville": 3, 3068 | "pleases": 2, 3069 | "pledges": 2, 3070 | "plisetskaya": 4, 3071 | "plodded": 2, 3072 | "plumage": 2, 3073 | "plumages": 3, 3074 | "plunges": 2, 3075 | "pluses": 2, 3076 | "police": 2, 3077 | "policed": 2, 3078 | "polices": 3, 3079 | "policewoman": 4, 3080 | "politeness": 3, 3081 | "politician": 4, 3082 | "politicians": 4, 3083 | "pollyanna": 4, 3084 | "polyacetylene": 6, 3085 | "polyak": 3, 3086 | "polyamide": 4, 3087 | "polyandrous": 4, 3088 | "polyandry": 4, 3089 | "polyester": 4, 3090 | "polyesters": 4, 3091 | "polyethylene": 5, 3092 | "polymerizes": 5, 3093 | "polynesian": 4, 3094 | "pomerleau": 3, 3095 | "pompeo": 3, 3096 | "ponsolle": 2, 3097 | "populace": 3, 3098 | "porches": 2, 3099 | "porges": 2, 3100 | "porpoises": 3, 3101 | "porsche": 2, 3102 | "porsches": 2, 3103 | "portage": 2, 3104 | "porterages": 4, 3105 | "portrayal": 3, 3106 | "portrayals": 3, 3107 | "poses": 2, 3108 | "postage": 2, 3109 | "postponement": 3, 3110 | "postponements": 3, 3111 | "postrelle": 2, 3112 | "poultices": 3, 3113 | "poundage": 2, 3114 | "pounded": 2, 3115 | "powerhouses": 4, 3116 | "powering": 3, 3117 | "practice": 2, 3118 | "practiced": 2, 3119 | "practices": 3, 3120 | "praises": 2, 3121 | "pralle": 1, 3122 | "prances": 2, 3123 | "prattville": 2, 3124 | "preaches": 2, 3125 | "preadolescent": 5, 3126 | "preamble": 3, 3127 | "prearranged": 3, 3128 | "preceding": 3, 3129 | "precipice": 3, 3130 | "predaceous": 3, 3131 | "preeminence": 4, 3132 | "preeminent": 4, 3133 | "preempt": 2, 3134 | "preempted": 3, 3135 | "preemption": 3, 3136 | "preemptive": 3, 3137 | "preexist": 3, 3138 | "preexisted": 4, 3139 | "preexisting": 4, 3140 | "preexists": 3, 3141 | "preface": 2, 3142 | "prefaced": 2, 3143 | "preferenced": 3, 3144 | "preferences": 4, 3145 | "preignition": 4, 3146 | "preinvasion": 4, 3147 | "preisler": 3, 3148 | "prejudged": 2, 3149 | "prejudice": 3, 3150 | "prejudiced": 3, 3151 | "prejudices": 4, 3152 | "premed": 2, 3153 | "premiering": 3, 3154 | "premises": 3, 3155 | "prentice": 2, 3156 | "preoccupation": 5, 3157 | "preoccupations": 5, 3158 | "preoccupied": 4, 3159 | "preoccupies": 4, 3160 | "preoccupy": 4, 3161 | "preordained": 3, 3162 | "prepackaged": 3, 3163 | "prerecorded": 4, 3164 | "presage": 2, 3165 | "presaged": 2, 3166 | "presages": 3, 3167 | "presences": 3, 3168 | "preserves": 2, 3169 | "prestage": 2, 3170 | "prestige": 2, 3171 | "presupposes": 4, 3172 | "pretended": 3, 3173 | "prevette": 2, 3174 | "priceless": 2, 3175 | "prices": 2, 3176 | "prideaux": 2, 3177 | "primeau": 2, 3178 | "primeaux": 2, 3179 | "primroses": 3, 3180 | "princes": 2, 3181 | "princeville": 2, 3182 | "principled": 3, 3183 | "prindiville": 3, 3184 | "prioleau": 3, 3185 | "prioritizes": 5, 3186 | "privette": 2, 3187 | "prizes": 2, 3188 | "proactive": 3, 3189 | "probusiness": 3, 3190 | "procurement": 3, 3191 | "procurements": 3, 3192 | "prodded": 2, 3193 | "produce": 2, 3194 | "produced": 2, 3195 | "produces": 3, 3196 | "prognoses": 3, 3197 | "programme": 2, 3198 | "prolonged": 2, 3199 | "prominences": 4, 3200 | "promises": 3, 3201 | "pronounced": 2, 3202 | "pronouncement": 3, 3203 | "pronouncements": 3, 3204 | "pronounces": 3, 3205 | "propionic": 4, 3206 | "proposes": 3, 3207 | "propounded": 3, 3208 | "proscia": 2, 3209 | "prospectuses": 4, 3210 | "prostheses": 3, 3211 | "proteges": 3, 3212 | "protozoa": 4, 3213 | "protuberances": 5, 3214 | "provideniya": 5, 3215 | "provinces": 3, 3216 | "prudhomme": 2, 3217 | "pruneau": 2, 3218 | "prussian": 2, 3219 | "puleo": 3, 3220 | "pulice": 2, 3221 | "pulse": 1, 3222 | "pumice": 2, 3223 | "purchases": 3, 3224 | "purges": 2, 3225 | "purposes": 3, 3226 | "purves": 1, 3227 | "purveyor": 3, 3228 | "purveyors": 3, 3229 | "puzzled": 2, 3230 | "pyatt": 2, 3231 | "pyeatt": 2, 3232 | "quadrupled": 3, 3233 | "quai": 1, 3234 | "quaid": 1, 3235 | "quail": 1, 3236 | "quails": 1, 3237 | "quain": 1, 3238 | "quaint": 1, 3239 | "quaintance": 2, 3240 | "quaintly": 2, 3241 | "quamme": 1, 3242 | "queau": 1, 3243 | "quebedeaux": 3, 3244 | "quellette": 2, 3245 | "quenneville": 3, 3246 | "queuing": 2, 3247 | "quintupled": 3, 3248 | "quivering": 3, 3249 | "rabideau": 3, 3250 | "racehorses": 3, 3251 | "races": 2, 3252 | "racette": 2, 3253 | "rachelle": 2, 3254 | "radborne": 2, 3255 | "radbourne": 2, 3256 | "radice": 2, 3257 | "rages": 2, 3258 | "ragged": 2, 3259 | "rahe": 2, 3260 | "rainville": 2, 3261 | "raises": 2, 3262 | "raleses": 3, 3263 | "ramage": 2, 3264 | "rambeau": 2, 3265 | "rambled": 2, 3266 | "rambling": 2, 3267 | "rameses": 3, 3268 | "rampage": 2, 3269 | "rampaged": 2, 3270 | "rampages": 3, 3271 | "ranges": 2, 3272 | "rankled": 2, 3273 | "rapprochement": 3, 3274 | "raske": 1, 3275 | "rathburne": 2, 3276 | "rathe": 1, 3277 | "rattling": 2, 3278 | "ravaged": 2, 3279 | "ravages": 3, 3280 | "raya": 2, 3281 | "rayon": 2, 3282 | "rayos": 2, 3283 | "rayovac": 3, 3284 | "raytheon": 3, 3285 | "reabsorbe": 3, 3286 | "reabsorbed": 3, 3287 | "react": 2, 3288 | "reactionaries": 5, 3289 | "reactionary": 5, 3290 | "reactions": 3, 3291 | "reaganesque": 3, 3292 | "realign": 3, 3293 | "realigned": 3, 3294 | "realigning": 4, 3295 | "realignment": 4, 3296 | "realignments": 4, 3297 | "realistic": 4, 3298 | "realities": 4, 3299 | "reality": 4, 3300 | "realizable": 5, 3301 | "realizes": 4, 3302 | "reallocate": 4, 3303 | "reallocated": 5, 3304 | "reallocating": 5, 3305 | "reallocation": 5, 3306 | "reallowance": 4, 3307 | "realtor": 3, 3308 | "realtors": 3, 3309 | "realty": 3, 3310 | "reappraise": 3, 3311 | "reappraised": 3, 3312 | "reaume": 1, 3313 | "reaux": 1, 3314 | "rebounded": 3, 3315 | "receding": 3, 3316 | "recognizes": 4, 3317 | "recommended": 4, 3318 | "recorded": 3, 3319 | "recovering": 4, 3320 | "recreate": 3, 3321 | "recreationism": 6, 3322 | "recycled": 3, 3323 | "redhanded": 3, 3324 | "rediscovering": 5, 3325 | "redoubled": 3, 3326 | "reduce": 2, 3327 | "reduced": 2, 3328 | "reduces": 3, 3329 | "reemerge": 3, 3330 | "reemerged": 3, 3331 | "reestablish": 4, 3332 | "reestablished": 4, 3333 | "referenced": 3, 3334 | "references": 4, 3335 | "refering": 3, 3336 | "refinanced": 3, 3337 | "refinances": 4, 3338 | "refinement": 3, 3339 | "refinements": 3, 3340 | "reflexes": 3, 3341 | "refocuses": 4, 3342 | "refuge": 2, 3343 | "refuges": 3, 3344 | "refunded": 3, 3345 | "refuses": 3, 3346 | "regarded": 3, 3347 | "reimpose": 3, 3348 | "reimposed": 3, 3349 | "rejiggering": 4, 3350 | "rejoice": 2, 3351 | "rejoiced": 2, 3352 | "rekindled": 3, 3353 | "relaunched": 2, 3354 | "relaxed": 2, 3355 | "relaxes": 3, 3356 | "releases": 3, 3357 | "remanded": 3, 3358 | "remembrances": 4, 3359 | "reminded": 3, 3360 | "reminisced": 3, 3361 | "reminiscences": 5, 3362 | "remittances": 4, 3363 | "remme": 1, 3364 | "remolded": 3, 3365 | "remoteness": 3, 3366 | "remoulded": 3, 3367 | "reneau": 2, 3368 | "renege": 2, 3369 | "reneged": 2, 3370 | "renne": 1, 3371 | "renounced": 2, 3372 | "reo": 2, 3373 | "reoffer": 3, 3374 | "reoffered": 3, 3375 | "reoffering": 4, 3376 | "reopen": 3, 3377 | "reopened": 3, 3378 | "reopening": 4, 3379 | "reopens": 3, 3380 | "reorder": 3, 3381 | "reordering": 4, 3382 | "reorganization": 6, 3383 | "reorganizations": 6, 3384 | "reorganize": 4, 3385 | "reorganized": 4, 3386 | "reorganizes": 5, 3387 | "reorganizing": 5, 3388 | "repackage": 3, 3389 | "repackaged": 3, 3390 | "repackages": 4, 3391 | "repayable": 4, 3392 | "replace": 2, 3393 | "replaced": 2, 3394 | "replacement": 3, 3395 | "replacements": 3, 3396 | "replaces": 3, 3397 | "reportage": 3, 3398 | "reprice": 2, 3399 | "repriced": 2, 3400 | "reprimanded": 4, 3401 | "reproduce": 3, 3402 | "reproduced": 3, 3403 | "reproduces": 4, 3404 | "repurchases": 4, 3405 | "requirement": 3, 3406 | "requirements": 3, 3407 | "rescinded": 3, 3408 | "researches": 3, 3409 | "resemblances": 4, 3410 | "resembled": 3, 3411 | "reserves": 2, 3412 | "reshuffled": 3, 3413 | "residences": 4, 3414 | "resistiveness": 4, 3415 | "reske": 1, 3416 | "resolve": 2, 3417 | "resolves": 2, 3418 | "resources": 3, 3419 | "responded": 3, 3420 | "responsiveness": 4, 3421 | "restaged": 2, 3422 | "restatement": 3, 3423 | "restatements": 3, 3424 | "restiveness": 3, 3425 | "restrictiveness": 4, 3426 | "resurface": 3, 3427 | "resurfaced": 3, 3428 | "retarded": 3, 3429 | "retirements": 3, 3430 | "retrace": 2, 3431 | "retraced": 2, 3432 | "retracement": 3, 3433 | "retrenched": 2, 3434 | "retroviruses": 5, 3435 | "reuse": 2, 3436 | "reused": 2, 3437 | "revelle": 2, 3438 | "revette": 2, 3439 | "reville": 2, 3440 | "revises": 3, 3441 | "revolve": 2, 3442 | "revolves": 2, 3443 | "rewarded": 3, 3444 | "rhapsodizes": 4, 3445 | "rheault": 1, 3446 | "rheaume": 1, 3447 | "rhetoricians": 4, 3448 | "rhodesian": 3, 3449 | "rhythm": 2, 3450 | "riddled": 2, 3451 | "rideau": 2, 3452 | "rideaux": 2, 3453 | "ridges": 2, 3454 | "riendeau": 2, 3455 | "rifled": 2, 3456 | "righteous": 2, 3457 | "righteously": 3, 3458 | "righteousness": 3, 3459 | "rillette": 2, 3460 | "rinne": 1, 3461 | "rion": 2, 3462 | "riposte": 2, 3463 | "ripostes": 2, 3464 | "rippeon": 3, 3465 | "rippled": 2, 3466 | "rises": 2, 3467 | "riske": 1, 3468 | "risse": 1, 3469 | "riverbed": 3, 3470 | "rivette": 2, 3471 | "riviello": 4, 3472 | "riyad": 2, 3473 | "riyadh": 2, 3474 | "riyals": 2, 3475 | "roa": 2, 3476 | "robicheaux": 3, 3477 | "robideau": 3, 3478 | "robinette": 3, 3479 | "robitaille": 3, 3480 | "rocheleau": 3, 3481 | "rochelle": 2, 3482 | "rochette": 2, 3483 | "rockville": 2, 3484 | "rodeo": 3, 3485 | "rodeos": 3, 3486 | "roebling": 2, 3487 | "roelle": 1, 3488 | "roeske": 1, 3489 | "rohleder": 3, 3490 | "rolle": 1, 3491 | "romances": 3, 3492 | "romanesque": 3, 3493 | "romaniello": 5, 3494 | "romelle": 2, 3495 | "romeo": 3, 3496 | "rondeau": 2, 3497 | "ronne": 1, 3498 | "rosabelle": 3, 3499 | "rosanne": 2, 3500 | "roseanne": 2, 3501 | "roseberry": 3, 3502 | "roses": 2, 3503 | "rosette": 2, 3504 | "rosettes": 2, 3505 | "roseville": 2, 3506 | "roske": 1, 3507 | "rosse": 1, 3508 | "rossiya": 3, 3509 | "rothe": 1, 3510 | "rototilles": 3, 3511 | "rougeau": 2, 3512 | "rouleau": 2, 3513 | "roulette": 2, 3514 | "roulettes": 2, 3515 | "rounded": 2, 3516 | "rounsaville": 3, 3517 | "rousse": 1, 3518 | "rousseau": 2, 3519 | "rousselle": 2, 3520 | "rowlette": 2, 3521 | "roxanne": 2, 3522 | "royal": 2, 3523 | "royale": 2, 3524 | "royalist": 3, 3525 | "royall": 2, 3526 | "royals": 2, 3527 | "royalties": 3, 3528 | "royalty": 3, 3529 | "royces": 2, 3530 | "royex": 2, 3531 | "rozelle": 2, 3532 | "rua": 2, 3533 | "rudelle": 2, 3534 | "rudeness": 2, 3535 | "ruffled": 2, 3536 | "rugged": 2, 3537 | "ruggedly": 3, 3538 | "rumage": 2, 3539 | "rumbled": 2, 3540 | "rummage": 2, 3541 | "rumpled": 2, 3542 | "ruses": 2, 3543 | "russe": 1, 3544 | "russellville": 3, 3545 | "russian": 2, 3546 | "russians": 2, 3547 | "ryal": 2, 3548 | "ryall": 2, 3549 | "ryals": 2, 3550 | "ryan": 2, 3551 | "ryanair": 3, 3552 | "ryans": 2, 3553 | "ryen": 2, 3554 | "sabotage": 3, 3555 | "sabotaged": 3, 3556 | "sackville": 2, 3557 | "sacred": 2, 3558 | "sacrifice": 3, 3559 | "sacrificed": 3, 3560 | "sacrifices": 4, 3561 | "sacrilege": 3, 3562 | "saddled": 2, 3563 | "sages": 2, 3564 | "salemme": 2, 3565 | "saleswoman": 3, 3566 | "saleswomen": 3, 3567 | "salle": 1, 3568 | "salvage": 2, 3569 | "salvaged": 2, 3570 | "salve": 1, 3571 | "salves": 1, 3572 | "samelle": 2, 3573 | "sameness": 2, 3574 | "samoa": 3, 3575 | "sampled": 2, 3576 | "sancia": 2, 3577 | "sandage": 2, 3578 | "sanded": 2, 3579 | "sandwiched": 2, 3580 | "sannes": 1, 3581 | "santaniello": 5, 3582 | "santayana": 4, 3583 | "santoyo": 3, 3584 | "sanville": 2, 3585 | "sapoa": 3, 3586 | "sarcasm": 3, 3587 | "sarette": 2, 3588 | "sarkisian": 3, 3589 | "sarkissian": 3, 3590 | "sasse": 1, 3591 | "satirizes": 4, 3592 | "sauces": 2, 3593 | "sausage": 2, 3594 | "sausages": 3, 3595 | "sauternes": 2, 3596 | "sauvage": 2, 3597 | "sauvageau": 3, 3598 | "savage": 2, 3599 | "savaged": 2, 3600 | "savagely": 3, 3601 | "savages": 3, 3602 | "saville": 2, 3603 | "sawaya": 3, 3604 | "sawtelle": 2, 3605 | "sayad": 2, 3606 | "sayegh": 2, 3607 | "scaccia": 2, 3608 | "scarface": 2, 3609 | "scarves": 1, 3610 | "scherer": 2, 3611 | "schering": 2, 3612 | "schiewe": 2, 3613 | "schnelle": 1, 3614 | "scholle": 1, 3615 | "sciascia": 2, 3616 | "scion": 2, 3617 | "scolded": 2, 3618 | "sconces": 2, 3619 | "scorpion": 3, 3620 | "scorpions": 3, 3621 | "scotches": 2, 3622 | "scourges": 2, 3623 | "scoville": 2, 3624 | "scrambled": 2, 3625 | "scratches": 2, 3626 | "scribbled": 2, 3627 | "scrimmage": 2, 3628 | "scrutinizes": 4, 3629 | "scuffled": 2, 3630 | "seaborne": 2, 3631 | "searches": 2, 3632 | "sebaceous": 3, 3633 | "seceding": 3, 3634 | "seconded": 3, 3635 | "secretiveness": 4, 3636 | "seduce": 2, 3637 | "seduced": 2, 3638 | "seepage": 2, 3639 | "seethe": 1, 3640 | "seigniorage": 4, 3641 | "seiyaku": 3, 3642 | "seiyu": 2, 3643 | "seizes": 2, 3644 | "selle": 1, 3645 | "selvage": 2, 3646 | "selves": 1, 3647 | "semiautomatic": 6, 3648 | "semionenkov": 5, 3649 | "semmes": 1, 3650 | "senne": 1, 3651 | "sensitiveness": 4, 3652 | "sentelle": 2, 3653 | "sentenced": 2, 3654 | "sentences": 3, 3655 | "seo": 2, 3656 | "seow": 2, 3657 | "separateness": 4, 3658 | "sequoyah": 3, 3659 | "serves": 1, 3660 | "service": 2, 3661 | "serviced": 2, 3662 | "services": 3, 3663 | "sette": 1, 3664 | "severing": 3, 3665 | "seville": 2, 3666 | "sewage": 2, 3667 | "sewerage": 3, 3668 | "sexes": 2, 3669 | "sfernice": 2, 3670 | "shackled": 2, 3671 | "shaquille": 2, 3672 | "sharpeville": 3, 3673 | "sheathe": 1, 3674 | "sheathed": 1, 3675 | "shelburne": 2, 3676 | "shelbyville": 3, 3677 | "shelve": 1, 3678 | "shelves": 1, 3679 | "shepherded": 3, 3680 | "sherborne": 2, 3681 | "sherbourne": 2, 3682 | "sherburne": 2, 3683 | "shielded": 2, 3684 | "shigeo": 3, 3685 | "shionogi": 4, 3686 | "shivering": 3, 3687 | "shiyuan": 3, 3688 | "shoelace": 2, 3689 | "shoelaces": 3, 3690 | "shortage": 2, 3691 | "shortages": 3, 3692 | "shortchanged": 2, 3693 | "showcases": 3, 3694 | "showering": 3, 3695 | "showpiece": 2, 3696 | "showplace": 2, 3697 | "shredded": 2, 3698 | "shreveport": 2, 3699 | "shrinkage": 2, 3700 | "shuffled": 2, 3701 | "shuffling": 2, 3702 | "siang": 1, 3703 | "sias": 1, 3704 | "sibelle": 2, 3705 | "sibille": 2, 3706 | "sibling": 2, 3707 | "siblings": 2, 3708 | "sidekick": 2, 3709 | "sideline": 2, 3710 | "sidelined": 2, 3711 | "sidelines": 2, 3712 | "sideman": 2, 3713 | "sideshow": 2, 3714 | "sidestep": 2, 3715 | "sidestepped": 2, 3716 | "sidestepping": 3, 3717 | "sidesteps": 2, 3718 | "sidestream": 2, 3719 | "sidetrack": 2, 3720 | "sidewalk": 2, 3721 | "sidewalks": 2, 3722 | "sidewater": 3, 3723 | "sideways": 2, 3724 | "sidewinder": 3, 3725 | "sidewise": 2, 3726 | "signage": 2, 3727 | "silenced": 2, 3728 | "silences": 3, 3729 | "sileo": 3, 3730 | "silhouette": 3, 3731 | "silhouettes": 3, 3732 | "silverthorne": 3, 3733 | "simeon": 3, 3734 | "simeone": 3, 3735 | "simoneau": 3, 3736 | "simoneaux": 3, 3737 | "simonette": 3, 3738 | "simpleminded": 4, 3739 | "simplesse": 2, 3740 | "sincavage": 3, 3741 | "Sindayen": 3, 3742 | "singled": 2, 3743 | "singlehandedly": 5, 3744 | "sinuses": 3, 3745 | "sithe": 1, 3746 | "sixes": 2, 3747 | "sizes": 2, 3748 | "sizzled": 2, 3749 | "skeoch": 2, 3750 | "sketches": 2, 3751 | "skewering": 3, 3752 | "skidded": 2, 3753 | "skyboxes": 3, 3754 | "slaughterhouses": 4, 3755 | "slices": 2, 3756 | "slippage": 2, 3757 | "smoothed": 1, 3758 | "smuggled": 2, 3759 | "smythe": 1, 3760 | "snarled": 2, 3761 | "snatches": 2, 3762 | "sobering": 3, 3763 | "socia": 2, 3764 | "softimage": 3, 3765 | "soileau": 2, 3766 | "sokaiya": 3, 3767 | "solace": 2, 3768 | "soldiering": 3, 3769 | "solve": 1, 3770 | "solves": 1, 3771 | "some": 1, 3772 | "somebodies": 3, 3773 | "someone": 2, 3774 | "somersault": 3, 3775 | "somersets": 3, 3776 | "somersetting": 4, 3777 | "somerville": 3, 3778 | "sometimes": 2, 3779 | "sommerville": 3, 3780 | "sonne": 1, 3781 | "soothe": 1, 3782 | "soothed": 1, 3783 | "soothes": 1, 3784 | "sorbonne": 2, 3785 | "sorcerer": 3, 3786 | "sorcerers": 3, 3787 | "sorice": 2, 3788 | "sotomayor": 4, 3789 | "sounded": 2, 3790 | "sources": 2, 3791 | "sourrouille": 3, 3792 | "sovetskaya": 4, 3793 | "soviet": 3, 3794 | "sovietologist": 6, 3795 | "soya": 2, 3796 | "soyars": 2, 3797 | "soysauce": 2, 3798 | "soyuz": 2, 3799 | "spaceport": 2, 3800 | "spaces": 2, 3801 | "spaceship": 2, 3802 | "spaceships": 2, 3803 | "spangled": 2, 3804 | "sparkled": 2, 3805 | "spasm": 2, 3806 | "specializes": 4, 3807 | "speckled": 2, 3808 | "spices": 2, 3809 | "splices": 2, 3810 | "spoilage": 2, 3811 | "spokeswoman": 3, 3812 | "spokewoman": 3, 3813 | "sponges": 2, 3814 | "sporleder": 3, 3815 | "spouses": 2, 3816 | "springerville": 3, 3817 | "sprinkled": 2, 3818 | "squabbled": 2, 3819 | "squillace": 2, 3820 | "stabilizes": 4, 3821 | "stacia": 2, 3822 | "stages": 2, 3823 | "staggering": 3, 3824 | "staircases": 3, 3825 | "stampeding": 3, 3826 | "stances": 2, 3827 | "stapled": 2, 3828 | "starches": 2, 3829 | "starnes": 1, 3830 | "statement": 2, 3831 | "statements": 2, 3832 | "stateside": 2, 3833 | "statistician": 4, 3834 | "statisticians": 4, 3835 | "stayover": 3, 3836 | "stayovers": 3, 3837 | "steakhouses": 3, 3838 | "stearne": 1, 3839 | "steenkiste": 2, 3840 | "stelle": 1, 3841 | "stephenville": 3, 3842 | "stereo": 3, 3843 | "stereographic": 5, 3844 | "stereos": 3, 3845 | "stereotype": 4, 3846 | "stereotyped": 4, 3847 | "stereotypes": 4, 3848 | "stereotypical": 6, 3849 | "stereotyping": 5, 3850 | "sterilizes": 4, 3851 | "sterne": 1, 3852 | "steubenville": 3, 3853 | "stifled": 2, 3854 | "stille": 1, 3855 | "stinnette": 2, 3856 | "stitches": 2, 3857 | "stockbrokerage": 4, 3858 | "stockbrokerages": 5, 3859 | "stolichnaya": 4, 3860 | "stolle": 1, 3861 | "stooges": 2, 3862 | "stoppage": 2, 3863 | "stoppages": 3, 3864 | "stopwatches": 3, 3865 | "storage": 2, 3866 | "straddled": 2, 3867 | "straddling": 2, 3868 | "straggled": 2, 3869 | "straitlaced": 2, 3870 | "stranded": 2, 3871 | "strangeness": 2, 3872 | "strangled": 2, 3873 | "stretches": 2, 3874 | "stromme": 1, 3875 | "struggled": 2, 3876 | "studded": 2, 3877 | "stumbled": 2, 3878 | "stumpage": 2, 3879 | "sturges": 2, 3880 | "stuteville": 2, 3881 | "subsidizes": 4, 3882 | "substances": 3, 3883 | "subsurface": 3, 3884 | "subterfuge": 3, 3885 | "suffice": 2, 3886 | "sufficed": 2, 3887 | "suffices": 3, 3888 | "suffrage": 2, 3889 | "suffragettes": 3, 3890 | "suggestiveness": 4, 3891 | "sugiyama": 4, 3892 | "suisse": 1, 3893 | "suitcases": 3, 3894 | "sukiyaki": 4, 3895 | "summarizes": 4, 3896 | "summerville": 3, 3897 | "superseding": 4, 3898 | "supervises": 4, 3899 | "supposedly": 4, 3900 | "supposes": 3, 3901 | "surcharges": 3, 3902 | "surette": 2, 3903 | "surface": 2, 3904 | "surfaced": 2, 3905 | "surfaceness": 3, 3906 | "surfaces": 3, 3907 | "surges": 2, 3908 | "surmises": 3, 3909 | "surpluses": 3, 3910 | "surprises": 3, 3911 | "surrealisms": 4, 3912 | "surrette": 2, 3913 | "surrounded": 3, 3914 | "surtaxes": 3, 3915 | "surveyor": 3, 3916 | "surveyors": 3, 3917 | "susanne": 2, 3918 | "susette": 2, 3919 | "suspended": 3, 3920 | "suzanne": 2, 3921 | "suzette": 2, 3922 | "sverige": 2, 3923 | "swaggering": 3, 3924 | "swatches": 2, 3925 | "swathed": 1, 3926 | "swinburnes": 2, 3927 | "swindled": 2, 3928 | "switches": 2, 3929 | "sybille": 2, 3930 | "symbion": 3, 3931 | "symbolizes": 4, 3932 | "symmes": 1, 3933 | "sympathizes": 4, 3934 | "syringes": 3, 3935 | "tableau": 2, 3936 | "tableaux": 2, 3937 | "tabled": 2, 3938 | "tackled": 2, 3939 | "tactician": 3, 3940 | "tacticians": 3, 3941 | "taddeo": 3, 3942 | "tafoya": 3, 3943 | "taiyo": 2, 3944 | "takashimaya": 5, 3945 | "takayama": 4, 3946 | "takeo": 3, 3947 | "talmage": 2, 3948 | "tamayo": 3, 3949 | "tangled": 2, 3950 | "tapering": 3, 3951 | "tasm": 2, 3952 | "taste": 1, 3953 | "tasteful": 2, 3954 | "tastefully": 3, 3955 | "tasteless": 2, 3956 | "tastes": 1, 3957 | "tauruses": 3, 3958 | "taxes": 2, 3959 | "teases": 2, 3960 | "tebeau": 2, 3961 | "technician": 3, 3962 | "technicians": 3, 3963 | "teenage": 2, 3964 | "teenaged": 2, 3965 | "telemanagement": 5, 3966 | "televideo": 5, 3967 | "telexes": 3, 3968 | "telles": 1, 3969 | "temme": 1, 3970 | "tended": 2, 3971 | "teo": 2, 3972 | "teodoro": 4, 3973 | "teriyaki": 4, 3974 | "ternes": 1, 3975 | "terrace": 2, 3976 | "terraced": 2, 3977 | "terraces": 3, 3978 | "terrorizes": 4, 3979 | "teruya": 3, 3980 | "teske": 1, 3981 | "tetreault": 2, 3982 | "thaddea": 3, 3983 | "thatches": 2, 3984 | "thebeau": 2, 3985 | "themselves": 2, 3986 | "theo": 2, 3987 | "theobald": 3, 3988 | "theocracy": 4, 3989 | "theocratic": 4, 3990 | "theodor": 3, 3991 | "theodora": 4, 3992 | "theodore": 3, 3993 | "theodorou": 4, 3994 | "theodric": 3, 3995 | "theola": 3, 3996 | "theologian": 5, 3997 | "theological": 5, 3998 | "theology": 4, 3999 | "theon": 2, 4000 | "theone": 2, 4001 | "theophania": 5, 4002 | "theophila": 4, 4003 | "theora": 3, 4004 | "theoretical": 5, 4005 | "theoretically": 6, 4006 | "theorist": 3, 4007 | "theorists": 3, 4008 | "theorize": 3, 4009 | "theorized": 3, 4010 | "theorizes": 4, 4011 | "theorizing": 4, 4012 | "theses": 2, 4013 | "thibadeau": 3, 4014 | "thibeau": 2, 4015 | "thibeault": 2, 4016 | "thibeaux": 2, 4017 | "thibedeau": 3, 4018 | "thibodeau": 3, 4019 | "thibodeaux": 3, 4020 | "thinnes": 1, 4021 | "thoennes": 1, 4022 | "thomases": 3, 4023 | "thomasville": 3, 4024 | "thoreau": 2, 4025 | "thorne": 1, 4026 | "thoroughbred": 3, 4027 | "throneberry": 3, 4028 | "tickled": 2, 4029 | "tilles": 1, 4030 | "timme": 1, 4031 | "tinkled": 2, 4032 | "tithe": 1, 4033 | "titusville": 3, 4034 | "toa": 2, 4035 | "toddling": 2, 4036 | "toelle": 1, 4037 | "toggled": 2, 4038 | "toggling": 2, 4039 | "tokuyama": 4, 4040 | "tolerances": 4, 4041 | "tolle": 1, 4042 | "tolles": 1, 4043 | "tomeo": 3, 4044 | "tondreau": 2, 4045 | "tonnage": 2, 4046 | "tonnages": 3, 4047 | "tonne": 1, 4048 | "tonnes": 1, 4049 | "toothed": 1, 4050 | "toothpaste": 2, 4051 | "toothpastes": 2, 4052 | "toppled": 2, 4053 | "torches": 2, 4054 | "torosian": 3, 4055 | "torreon": 3, 4056 | "torsiello": 4, 4057 | "tortoises": 3, 4058 | "tortorice": 3, 4059 | "tortoriello": 5, 4060 | "toshiyuki": 4, 4061 | "toste": 1, 4062 | "touchette": 2, 4063 | "tourangeau": 3, 4064 | "tourville": 2, 4065 | "towering": 3, 4066 | "townhouses": 3, 4067 | "toyama": 3, 4068 | "toyo": 2, 4069 | "toyobo": 3, 4070 | "toyoda": 3, 4071 | "toyoo": 2, 4072 | "toyota": 3, 4073 | "toyotas": 3, 4074 | "traces": 2, 4075 | "tracheophytes": 4, 4076 | "trackage": 2, 4077 | "trageser": 3, 4078 | "trampled": 2, 4079 | "transcended": 3, 4080 | "transimage": 3, 4081 | "treatises": 3, 4082 | "trebled": 2, 4083 | "trefgarne": 2, 4084 | "treharne": 2, 4085 | "trembled": 2, 4086 | "trended": 2, 4087 | "treon": 2, 4088 | "triage": 2, 4089 | "tricia": 2, 4090 | "trickled": 2, 4091 | "trieste": 1, 4092 | "triggering": 3, 4093 | "tripled": 2, 4094 | "trivette": 2, 4095 | "trivializes": 5, 4096 | "troubled": 2, 4097 | "troyan": 2, 4098 | "troyanos": 3, 4099 | "troyat": 2, 4100 | "troyu": 2, 4101 | "trudeau": 2, 4102 | "trudges": 2, 4103 | "trundled": 2, 4104 | "tryart": 2, 4105 | "tsiang": 1, 4106 | "tsuneo": 3, 4107 | "tuberville": 3, 4108 | "tumbled": 2, 4109 | "tunisian": 3, 4110 | "turberville": 3, 4111 | "turbocharges": 4, 4112 | "turenne": 2, 4113 | "turnage": 2, 4114 | "turville": 2, 4115 | "tussled": 2, 4116 | "tutelage": 3, 4117 | "twelve": 1, 4118 | "twitches": 2, 4119 | "udelle": 2, 4120 | "ulloa": 3, 4121 | "umbrage": 2, 4122 | "unabashedly": 5, 4123 | "unabridged": 3, 4124 | "unacknowledged": 4, 4125 | "unamended": 4, 4126 | "unannounced": 3, 4127 | "unattached": 3, 4128 | "unattended": 4, 4129 | "unbalanced": 3, 4130 | "unbounded": 3, 4131 | "unbranded": 3, 4132 | "unbridled": 3, 4133 | "unchallenged": 3, 4134 | "unchanged": 2, 4135 | "uncontroversial": 5, 4136 | "unconvinced": 3, 4137 | "uncovering": 4, 4138 | "undamaged": 3, 4139 | "underage": 3, 4140 | "underfinanced": 4, 4141 | "underfunded": 4, 4142 | "underhanded": 4, 4143 | "underprice": 3, 4144 | "underpriced": 3, 4145 | "understatement": 4, 4146 | "unemployable": 5, 4147 | "unfenced": 2, 4148 | "unfolded": 3, 4149 | "unfounded": 3, 4150 | "unfunded": 3, 4151 | "Ungeheuer": 4, 4152 | "ungerer": 3, 4153 | "unguarded": 3, 4154 | "unhedged": 2, 4155 | "unheralded": 4, 4156 | "unhinged": 2, 4157 | "unintended": 4, 4158 | "unionfed": 3, 4159 | "uniroyal": 4, 4160 | "unmanage": 3, 4161 | "unmanaged": 3, 4162 | "unnoticed": 3, 4163 | "unpayable": 4, 4164 | "unplaced": 2, 4165 | "unprincipled": 4, 4166 | "unreality": 5, 4167 | "unrealized": 4, 4168 | "unrecorded": 4, 4169 | "unruffled": 3, 4170 | "unscathed": 2, 4171 | "unshackled": 3, 4172 | "untouched": 2, 4173 | "untroubled": 3, 4174 | "unwavering": 4, 4175 | "upended": 3, 4176 | "upstage": 2, 4177 | "upstaged": 2, 4178 | "Ural": 2, 4179 | "urges": 2, 4180 | "Urquart": 2, 4181 | "uruguayan": 4, 4182 | "usage": 2, 4183 | "usages": 3, 4184 | "uses": 2, 4185 | "uthe": 1, 4186 | "utilizes": 4, 4187 | "Uttar": 2, 4188 | "utterances": 4, 4189 | "uyeda": 3, 4190 | "uyehara": 4, 4191 | "uyeno": 3, 4192 | "Uzis": 2, 4193 | "vacaville": 3, 4194 | "valeo": 3, 4195 | "valle": 1, 4196 | "valleau": 2, 4197 | "vallely": 2, 4198 | "valles": 1, 4199 | "vallette": 2, 4200 | "valve": 1, 4201 | "valves": 1, 4202 | "vanasse": 2, 4203 | "vandamme": 2, 4204 | "vanderslice": 3, 4205 | "vandewalle": 3, 4206 | "vanhorne": 2, 4207 | "vannguyen": 3, 4208 | "vannice": 2, 4209 | "vanscoyoc": 3, 4210 | "vantage": 2, 4211 | "vantages": 3, 4212 | "variances": 4, 4213 | "varnes": 1, 4214 | "varves": 1, 4215 | "vases": 2, 4216 | "vaske": 1, 4217 | "vaudeville": 2, 4218 | "vaxes": 2, 4219 | "vedette": 2, 4220 | "veillette": 2, 4221 | "velayati": 4, 4222 | "venereal": 4, 4223 | "venice": 2, 4224 | "venne": 1, 4225 | "venturesome": 3, 4226 | "verbiage": 3, 4227 | "verges": 2, 4228 | "verhage": 2, 4229 | "vermette": 2, 4230 | "verne": 1, 4231 | "vernes": 1, 4232 | "verrette": 2, 4233 | "versace": 2, 4234 | "versailles": 2, 4235 | "verville": 2, 4236 | "vestige": 2, 4237 | "vestiges": 3, 4238 | "vette": 1, 4239 | "vices": 2, 4240 | "video": 3, 4241 | "videodisk": 4, 4242 | "videodisks": 4, 4243 | "videogame": 4, 4244 | "videophone": 4, 4245 | "videos": 3, 4246 | "videotape": 4, 4247 | "videotaped": 4, 4248 | "videotapes": 4, 4249 | "videotaping": 5, 4250 | "videotex": 4, 4251 | "videotext": 4, 4252 | "videotron": 4, 4253 | "vienneau": 2, 4254 | "viet": 2, 4255 | "vigneau": 2, 4256 | "vigneault": 2, 4257 | "vignette": 2, 4258 | "vignettes": 2, 4259 | "village": 2, 4260 | "villages": 3, 4261 | "villareal": 4, 4262 | "ville": 1, 4263 | "villette": 2, 4264 | "vincelette": 3, 4265 | "vindictiveness": 4, 4266 | "vingmed": 2, 4267 | "vintage": 2, 4268 | "vintages": 3, 4269 | "violation": 4, 4270 | "violette": 3, 4271 | "viruses": 3, 4272 | "visage": 2, 4273 | "vitiello": 4, 4274 | "viverette": 3, 4275 | "viyella": 3, 4276 | "vizcaya": 3, 4277 | "voges": 2, 4278 | "voiceless": 2, 4279 | "voices": 2, 4280 | "volle": 1, 4281 | "voltage": 2, 4282 | "voltages": 3, 4283 | "voyage": 2, 4284 | "voyaged": 2, 4285 | "voyager": 3, 4286 | "voyagers": 3, 4287 | "voyages": 3, 4288 | "voyeur": 2, 4289 | "voyeurism": 4, 4290 | "vremya": 3, 4291 | "wadded": 2, 4292 | "waffled": 2, 4293 | "waffling": 2, 4294 | "wagering": 3, 4295 | "wages": 2, 4296 | "wakabayashi": 5, 4297 | "wallace": 2, 4298 | "walle": 1, 4299 | "walles": 1, 4300 | "wallpapering": 4, 4301 | "walruses": 3, 4302 | "wangled": 2, 4303 | "wantage": 2, 4304 | "wantages": 3, 4305 | "warded": 2, 4306 | "warehime": 2, 4307 | "warehouse": 2, 4308 | "warehousing": 3, 4309 | "warmongering": 4, 4310 | "warne": 1, 4311 | "warnes": 1, 4312 | "washburne": 2, 4313 | "wasmer": 3, 4314 | "wasn't": 2, 4315 | "waste": 1, 4316 | "wasteful": 2, 4317 | "wastes": 1, 4318 | "watches": 2, 4319 | "waterbed": 3, 4320 | "waterborne": 3, 4321 | "watsonville": 3, 4322 | "wavering": 3, 4323 | "waxes": 2, 4324 | "Wayans": 2, 4325 | "waynesville": 2, 4326 | "wedded": 2, 4327 | "wedges": 2, 4328 | "wednesday": 2, 4329 | "weisse": 1, 4330 | "welborne": 2, 4331 | "welded": 2, 4332 | "welle": 1, 4333 | "welles": 1, 4334 | "wentzville": 2, 4335 | "wernette": 2, 4336 | "wesleyan": 3, 4337 | "westburne": 2, 4338 | "westfaelisches": 4, 4339 | "weyand": 2, 4340 | "weyandt": 2, 4341 | "weyant": 2, 4342 | "whampoa": 3, 4343 | "wheezes": 2, 4344 | "whiteness": 2, 4345 | "whiteside": 2, 4346 | "whitesides": 2, 4347 | "whittling": 2, 4348 | "wholesome": 2, 4349 | "wicked": 2, 4350 | "wickedly": 3, 4351 | "wielded": 2, 4352 | "wilbourne": 2, 4353 | "willabelle": 3, 4354 | "willamette": 3, 4355 | "wille": 1, 4356 | "willes": 1, 4357 | "willette": 2, 4358 | "wilmette": 2, 4359 | "winborne": 2, 4360 | "winded": 2, 4361 | "winne": 1, 4362 | "winterbourne": 3, 4363 | "wion": 2, 4364 | "witches": 2, 4365 | "wobbled": 2, 4366 | "woeste": 1, 4367 | "wolle": 1, 4368 | "wolves": 1, 4369 | "worded": 2, 4370 | "workplace": 2, 4371 | "workplaces": 3, 4372 | "would've": 2, 4373 | "wounded": 2, 4374 | "wrangled": 2, 4375 | "wreckage": 2, 4376 | "wretched": 2, 4377 | "wretchedly": 3, 4378 | "wrinkled": 2, 4379 | "wristwatches": 3, 4380 | "wyand": 2, 4381 | "wyant": 2, 4382 | "wyatt": 2, 4383 | "wyeth": 2, 4384 | "wynne": 1, 4385 | "wythe": 1, 4386 | "xinhua": 3, 4387 | "Yanayev": 3, 4388 | "yardage": 2, 4389 | "yasuyoshi": 4, 4390 | "yelle": 1, 4391 | "yeo": 2, 4392 | "yeses": 2, 4393 | "yeske": 1, 4394 | "yevette": 2, 4395 | "yielded": 2, 4396 | "ying": 1, 4397 | "yinger": 2, 4398 | "yodice": 2, 4399 | "yohe": 2, 4400 | "yokoyama": 4, 4401 | "yoneyama": 4, 4402 | "you'll": 1, 4403 | "you're": 1, 4404 | "yourselves": 2, 4405 | "youville": 2, 4406 | "yuille": 1, 4407 | "yvette": 2, 4408 | "yvonne": 2, 4409 | "zanoyan": 3, 4410 | "zaske": 1, 4411 | "zaslavskaya": 4, 4412 | "zayac": 2, 4413 | "zayas": 2, 4414 | "zeebrugge": 3, 4415 | "zegeer": 2, 4416 | "zelaya": 3, 4417 | "zelle": 1, 4418 | "zeoli": 3, 4419 | "zeos": 2, 4420 | "zieske": 1, 4421 | "zion": 2, 4422 | "zionism": 4, 4423 | "zionist": 3, 4424 | "zionists": 3, 4425 | "zions": 2, 4426 | "zises": 2, 4427 | "ziyad": 2, 4428 | "ziyang": 2, 4429 | "zoologist": 4, 4430 | "zoology": 4, 4431 | "zornes": 1 4432 | } 4433 | -------------------------------------------------------------------------------- /test/index.js: -------------------------------------------------------------------------------- 1 | import assert from 'node:assert/strict' 2 | import cp from 'node:child_process' 3 | import fs from 'node:fs' 4 | import {URL} from 'node:url' 5 | import util from 'node:util' 6 | import {PassThrough} from 'node:stream' 7 | import test from 'node:test' 8 | import {syllable} from '../index.js' 9 | 10 | const exec = util.promisify(cp.exec) 11 | 12 | const own = {}.hasOwnProperty 13 | 14 | /** @type {Record} */ 15 | const pack = JSON.parse( 16 | String(fs.readFileSync(new URL('../package.json', import.meta.url))) 17 | ) 18 | 19 | /** @type {Record} */ 20 | const fixtures = JSON.parse( 21 | String(fs.readFileSync(new URL('fixture.json', import.meta.url))) 22 | ) 23 | 24 | test('api', function () { 25 | const result = syllable('syllables') 26 | 27 | assert.equal(syllable('SYLLABLES'), result, 'should be case insensitive (1)') 28 | assert.equal(syllable('SyLlABlEs'), result, 'should be case insensitive (2)') 29 | 30 | assert.equal(syllable(''), 0, 'should return `0` when empty') 31 | 32 | assert.equal(syllable('syllables'), 3, 'should work (1)') 33 | assert.equal(syllable('hoopty'), 2, 'should work (2)') 34 | assert.equal(syllable('mmmm'), 1, 'should work (3)') 35 | assert.equal(syllable('am'), 1, 'should work (4)') 36 | 37 | assert.equal(syllable('wine'), 1, 'should support multiple word-parts (1)') 38 | assert.equal(syllable('bottle'), 2, 'should support multiple word-parts (2)') 39 | assert.equal( 40 | syllable('wine-bottle'), 41 | 3, 42 | 'should support multiple word-parts (3)' 43 | ) 44 | 45 | assert.equal( 46 | syllable('Zoe'), 47 | syllable('Zoë'), 48 | 'should support non-ascii characters (1)' 49 | ) 50 | assert.equal( 51 | syllable('Åland'), 52 | syllable('Aland'), 53 | 'should support non-ascii characters (2)' 54 | ) 55 | 56 | assert.equal(syllable('Snuffleupagus'), 5, 'GH-25 (snuffleupagus)') 57 | assert.equal(syllable('queue'), 1, 'GH-26 (queue)') 58 | 59 | assert.deepEqual( 60 | ['real', 'deal', 'really'].map((d) => syllable(d)), 61 | [1, 1, 2], 62 | 'GH-31 (real/deal/really)' 63 | ) 64 | 65 | assert.deepEqual( 66 | [ 67 | 'awe', 68 | 'awearied', 69 | 'aweary', 70 | 'aweather', 71 | 'aweband', 72 | 'awedness', 73 | 'awee', 74 | 'aweek', 75 | 'aweel', 76 | 'aweigh', 77 | 'awesome', 78 | 'awesomely', 79 | 'awesomeness', 80 | 'awest', 81 | 'aweto' 82 | ].map((d) => syllable(d)), 83 | [1, 3, 3, 3, 3, 2, 2, 2, 2, 2, 2, 3, 3, 2, 3], 84 | 'GH-32 (awe)' 85 | ) 86 | 87 | assert.deepEqual( 88 | [ 89 | 'communion', 90 | 'contagion', 91 | 'decision', 92 | 'division', 93 | 'erosion', 94 | 'occasion', 95 | 'opinion', 96 | 'religion', 97 | 'reunion', 98 | 'bunion', 99 | 'fission', 100 | 'fusion', 101 | 'mission', 102 | 'nation', 103 | 'onion', 104 | 'passion', 105 | 'region', 106 | 'session', 107 | 'union', 108 | 'version', 109 | 'vision' 110 | ].map((d) => syllable(d)), 111 | [3, 3, 3, 3, 3, 3, 3, 3, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2], 112 | 'GH-36 ([gnst]ion$)' 113 | ) 114 | 115 | assert.deepEqual( 116 | [ 117 | 'anybody', 118 | 'anymore', 119 | 'anyone', 120 | 'anyones', 121 | 'anyplace', 122 | 'anything', 123 | 'anythings', 124 | 'anytime', 125 | 'anyway', 126 | 'anyways', 127 | 'anywhere' 128 | ].map((d) => syllable(d)), 129 | [4, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3], 130 | 'GH-36 ^any' 131 | ) 132 | 133 | assert.deepEqual( 134 | [ 135 | 'anyone', 136 | 'everyone', 137 | 'alone', 138 | 'lonely', 139 | 'ozone', 140 | 'one', 141 | 'bone', 142 | 'phone' 143 | ].map((d) => syllable(d)), 144 | [3, 3, 2, 2, 2, 1, 1, 1], 145 | 'GH-36 one$' 146 | ) 147 | 148 | assert.deepEqual( 149 | [ 150 | 'embodying', 151 | 'annoying', 152 | 'buoying', 153 | 'busying', 154 | 'envying', 155 | 'jurying', 156 | 'nosying', 157 | 'obeying', 158 | 'pitying', 159 | 'untying', 160 | 'braying', 161 | 'buying', 162 | 'cloying', 163 | 'crying', 164 | 'drying', 165 | 'dying', 166 | 'eying', 167 | 'eyeing', 168 | 'flying', 169 | 'lying', 170 | 'paying', 171 | 'plying', 172 | 'saying', 173 | 'spraying', 174 | 'toying', 175 | 'trying', 176 | 'tying', 177 | 'vying', 178 | 'ying' 179 | ].map((d) => syllable(d)), 180 | [ 181 | 4, 3, 3, 3, 3, 3, 3, 3, 3, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 182 | 2, 2, 2, 1 183 | ], 184 | 'GH-37 (ying$)' 185 | ) 186 | 187 | assert.deepEqual( 188 | [ 189 | 'shreds', 190 | 'shredded', 191 | 'shredder', 192 | 'shredders', 193 | 'shredding', 194 | 'shredless' 195 | ].map((d) => syllable(d)), 196 | [1, 2, 2, 2, 2, 2], 197 | 'GH-37 shredless' 198 | ) 199 | 200 | assert.deepEqual( 201 | [ 202 | 'monotheist', 203 | 'monotheists', 204 | 'monotheistic', 205 | 'polytheist', 206 | 'polytheists', 207 | 'polytheistic', 208 | 'atheist', 209 | 'atheists', 210 | 'atheistic', 211 | 'pantheist', 212 | 'pantheists', 213 | 'pantheistic', 214 | 'deist', 215 | 'deists', 216 | 'deistic', 217 | 'theist', 218 | 'theists', 219 | 'theistic', 220 | 'heist' 221 | ].map((d) => syllable(d)), 222 | [4, 4, 5, 4, 4, 5, 3, 3, 4, 3, 3, 4, 2, 2, 3, 2, 2, 3, 1], 223 | 'GH-37 (th|d)iest(s|ic)?)' 224 | ) 225 | 226 | assert.deepEqual( 227 | [ 228 | 'reminiscense', 229 | 'commonsense', 230 | 'innocense', 231 | 'recompense', 232 | 'condense', 233 | 'defense', 234 | 'dispense', 235 | 'expanse', 236 | 'expense', 237 | 'immense', 238 | 'intense', 239 | 'license', 240 | 'mouthrinse', 241 | 'nonsense', 242 | 'offense', 243 | 'pretense', 244 | 'response', 245 | 'suspense', 246 | 'cleanse', 247 | 'dense', 248 | 'rinse', 249 | 'sense', 250 | 'tense' 251 | ].map((d) => syllable(d)), 252 | [4, 3, 3, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1], 253 | 'GH-39 ([aeiouy]nse$)' 254 | ) 255 | }) 256 | 257 | test('cli', async function () { 258 | try { 259 | await exec('./cli.js ""') 260 | assert.fail('should not pass') 261 | } catch (error) { 262 | assert.ok(/Usage: syllable/.test(String(error)), 'not enough arguments') 263 | } 264 | 265 | assert.deepEqual( 266 | await exec('./cli.js syllables'), 267 | {stdout: '3\n', stderr: ''}, 268 | 'one' 269 | ) 270 | 271 | assert.deepEqual( 272 | await exec('./cli.js syllables unicorns'), 273 | {stdout: '6\n', stderr: ''}, 274 | 'two' 275 | ) 276 | 277 | await new Promise(function (resolve) { 278 | const input = new PassThrough() 279 | const subprocess = cp.exec('./cli.js', function (error, stdout, stderr) { 280 | assert.deepEqual([error, stdout, stderr], [null, '6\n', ''], 'stdin') 281 | setImmediate(resolve) 282 | }) 283 | assert(subprocess.stdin, 'expected stdin on `subprocess`') 284 | input.pipe(subprocess.stdin) 285 | input.write('syllab') 286 | setImmediate(function () { 287 | input.write(' les uni') 288 | setImmediate(function () { 289 | input.end('corns') 290 | }) 291 | }) 292 | }) 293 | 294 | const h = await exec('./cli.js -h') 295 | assert.ok(/\sUsage: syllable/.test(h.stdout), '-h') 296 | 297 | const help = await exec('./cli.js --help') 298 | assert.ok(/\sUsage: syllable/.test(help.stdout), '-h') 299 | 300 | assert.deepEqual( 301 | await exec('./cli.js -v'), 302 | {stdout: pack.version + '\n', stderr: ''}, 303 | '-v' 304 | ) 305 | 306 | assert.deepEqual( 307 | await exec('./cli.js --version'), 308 | {stdout: pack.version + '\n', stderr: ''}, 309 | '--version' 310 | ) 311 | }) 312 | 313 | // Fixtures. 314 | // 315 | // The unit tests include in- and output values provided by the original, and 316 | // ancestor source code. 317 | // 318 | // The tests by Text-Statistics: 319 | // 320 | // 321 | // This library focusses on the required Text-Statistics tests (the library 322 | // provides both optional and required tests). 323 | test('fixtures', function () { 324 | const overwrite = { 325 | // GH-22: , 326 | // Barbed is one syllable as well: 327 | // 328 | arbed: 1 329 | } 330 | /** @type {string} */ 331 | let key 332 | 333 | for (key in fixtures) { 334 | if (own.call(fixtures, key)) { 335 | const expected = (key in overwrite ? overwrite : fixtures)[key] 336 | assert.equal(syllable(key), expected, key) 337 | } 338 | } 339 | }) 340 | -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "include": ["**/**.js"], 3 | "exclude": ["coverage", "node_modules"], 4 | "compilerOptions": { 5 | "checkJs": true, 6 | "declaration": true, 7 | "emitDeclarationOnly": true, 8 | "exactOptionalPropertyTypes": true, 9 | "forceConsistentCasingInFileNames": true, 10 | "lib": ["es2020"], 11 | "module": "node16", 12 | "newLine": "lf", 13 | "skipLibCheck": true, 14 | "strict": true, 15 | "target": "es2020" 16 | } 17 | } 18 | --------------------------------------------------------------------------------