UNPKG

efficient-language-detector-no-dynamic-import

Version:

Fast and accurate natural language detection. Detector written in Javascript. Efficient language detector, Nito-ELD, ELD.

71 lines (64 loc) 2.08 kB
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>Benchmark</title> </head> <body> <main> <h1>Benchmark</h1> <div id="demo">See results at the console.</div> </main> <script type="module"> import { eld } from '../src/languageDetector.js' function parse_txt (text) { let lines = text.split('\n') let tests = [] lines.forEach(function (line) { let parts = line.split('\t') tests.push([parts[1], parts[0]]) }) return tests } function do_test (file, tests) { let correct = 0 let fails = 0 let len = tests.length const start = Date.now() tests.forEach(function (testl) { let key = eld.detect(testl[0], { cleanText: false, checkConfidence: false, minByteLength: 0, minNgrams: 1 }).language if (key === testl[1]) { correct++ } else { fails++ } }) const end = Date.now() console.log(file + ' - Correct rate: ' + (Math.round((correct / len) * 10000) / 100) + '%' + ' - Time: ' + ((end - start) / 1000) + ' sec.') } let files = ['tweets', 'big-test', 'sentences', 'word-pairs', 'single-words'] for (let file in files) { let tests = await fetch(files[file] + '.txt').then(response => response.text()).then(text => parse_txt(text)) do_test(files[file], tests) } /* ngrams-m tweets - Correct rate: 99.28% - Time: 0.582 sec. big-test - Correct rate: 99.42% - Time: 5.075 sec. sentences - Correct rate: 98.78% - Time: 4.303 sec. word-pairs - Correct rate: 87.55% - Time: 1.162 sec. single-words - Correct rate: 73.31% - Time: 0.754 sec. */ /* ngrams-xs tweets - Correct rate: 99.15% - Time: 0.502 sec. big-test - Correct rate: 99.35% - Time: 4.612 sec. sentences - Correct rate: 98.43% - Time: 4.01 sec. word-pairs - Correct rate: 84.39% - Time: 1.084 sec. single-words - Correct rate: 66.75% - Time: 0.729 sec. */ </script> </body> </html>