1.0.1 • Published 3 years ago
english-level-analyser v1.0.1
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.