1.0.1 • Published 3 years ago

english-level-analyser v1.0.1

Weekly downloads
-
License
CC-BY-SA-4.0
Repository
github
Last release
3 years ago

English-Level-Analyser

This counts words from the input URL or text by the CEFR levels based on the Open Language Profiles

Install

npm i english-level-analyser

Usage

const ela = require("english-level-analyser")

console.log(ela.analyseText("I have a pen."))

// {
//   sampleScore: 26,
//   totalNumberOfWords: 4,
//   totalNumberOfAppearances: 4,
//   wordCounts: [
//     { level: 'A1', count: 4 },
//     { level: 'A2', count: 0 },
//     { level: 'B1', count: 0 },
//     { level: 'B2', count: 0 },
//     { level: 'C1', count: 0 },
//     { level: 'C2', count: 0 }
//   ],
//   normalizedWordCounts: [
//     { level: 'A1', rate: 1 },
//     { level: 'A2', rate: 0 },
//     { level: 'B1', rate: 0 },
//     { level: 'B2', rate: 0 },
//     { level: 'C1', rate: 0 },
//     { level: 'C2', rate: 0 }
//   ],
//   wordAppearances: [
//     { level: 'A1', count: 4 },
//     { level: 'A2', count: 0 },
//     { level: 'B1', count: 0 },
//     { level: 'B2', count: 0 },
//     { level: 'C1', count: 0 },
//     { level: 'C2', count: 0 }
//   ],
//   normalizedWordAppearances: [
//     { level: 'A1', rate: 1 },
//     { level: 'A2', rate: 0 },
//     { level: 'B1', rate: 0 },
//     { level: 'B2', rate: 0 },
//     { level: 'C1', rate: 0 },
//     { level: 'C2', rate: 0 }
//   ],
//   words: [
//     { text: 'I', count: 1, level: 'A1' },
//     { text: 'have', count: 1, level: 'A1' },
//     { text: 'a', count: 1, level: 'A1' },
//     { text: 'pen', count: 1, level: 'A1' }
//   ]
// }

// This analyseHtml is an async function
(async () => {
  console.log(await ela.analyseHtml("http://example.com/"));
})();

// {
//   sampleScore: 35,
//   totalNumberOfWords: 17,
//   totalNumberOfAppearances: 23,
//   wordCounts: [
//     { level: 'A1', count: 12 },
//     { level: 'A2', count: 2 },
//     { level: 'B1', count: 2 },
//     { level: 'B2', count: 1 },
//     { level: 'C1', count: 0 },
//     { level: 'C2', count: 0 }
//   ],
//   normalizedWordCounts: [
//     { level: 'A1', rate: 0.7058823529411765 },
//     { level: 'A2', rate: 0.11764705882352941 },
//     { level: 'B1', rate: 0.11764705882352941 },
//     { level: 'B2', rate: 0.058823529411764705 },
//     { level: 'C1', rate: 0 },
//     { level: 'C2', rate: 0 }
//   ],
//   wordAppearances: [
//     { level: 'A1', count: 18 },
//     { level: 'A2', count: 2 },
//     { level: 'B1', count: 2 },
//     { level: 'B2', count: 1 },
//     { level: 'C1', count: 0 },
//     { level: 'C2', count: 0 }
//   ],
//   normalizedWordAppearances: [
//     { level: 'A1', rate: 0.782608695652174 },
//     { level: 'A2', rate: 0.08695652173913043 },
//     { level: 'B1', rate: 0.08695652173913043 },
//     { level: 'B2', rate: 0.043478260869565216 },
//     { level: 'C1', rate: 0 },
//     { level: 'C2', rate: 0 }
//   ],
//   words: [
//     { text: 'example', count: 2, level: 'A1' },
//     { text: 'this', count: 2, level: 'A1' },
//     { text: 'is', count: 1, level: 'A1' },
//     { text: 'for', count: 2, level: 'A1' },
//     { text: 'use', count: 2, level: 'A1' },
//     { text: 'in', count: 3, level: 'A1' },
//     { text: 'document', count: 1, level: 'B1' },
//     { text: 'you', count: 1, level: 'A1' },
//     { text: 'May', count: 1, level: 'A1' },
//     { text: 'literature', count: 1, level: 'B1' },
//     { text: 'without', count: 1, level: 'A2' },
//     { text: 'prior', count: 1, level: 'B2' },
//     { text: 'or', count: 1, level: 'A1' },
//     { text: 'ask', count: 1, level: 'A1' },
//     { text: 'permission', count: 1, level: 'A2' },
//     { text: 'more', count: 1, level: 'A1' },
//     { text: 'information', count: 1, level: 'A1' }
//   ]
// }

License

English-Level-Analyser by sutehuna is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License.Based on a work at https://github.com/openlanguageprofiles/olp-en-cefrj.