Skip to content
Evaluating English word difficulty using word frequency data
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
src
wordlist
.gitignore
.npmignore
LICENSE
README.md
package.json
tsconfig.json
tslint.json

README.md

Evaluating English word difficulty using word frequency data

Installation

cd ~/my-project/
npm install difficulty --save

Basic Usage

Async/Await

Welcome to ES7! ⎝( OωO)⎠

import { create } from 'difficulty';

(async () => {
  try {
    const difficulty = await create();
    const a = difficulty.getLevel('apple');
    const b = difficulty.getLevel('cappuccino');

    console.log(`apple is level ${a}, easy!`);
    console.log(`cappuccino is level ${b}, too hard!`);
  } catch(err) {
    console.error(err);
  }
})();

Output

apple is level 0, easy!
cappuccino is level 3, so hard!

Old schooler?

const Difficulty = require('difficulty');

// Using Promise
Difficulty.create().then((difficulty) => {
  ...
});

// Sync is available too!
const difficulty = Difficulty.createSync();

API

Difficulty.create(options)

filepath

Path to your csv file, in following format.

"Word","Freq_HAL"
"a","10610626"
...

Default: ./node_modules/difficulty/wordlist/wordlist.csv

levelsThreshold

Define your own levels with frequency threshold in descending order.

Default: [20000, 10000, 5000]

- Level 0: freq > 20000
- Level 1: 10001 to 20000
- Level 2: 5001 to 10000
- Level 3: < 5000 or **non exist words**

License

ISC

Important

The default word frequency data is generated from English Lexicon Project, which is for non-commercial research purposes only and may not be used in the development of speech technology. You should consider using your own wordlist for other purpose.

Author

github/auphone

Good luck! σ`∀´)σ

You can’t perform that action at this time.