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
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>