Skip to content

Commit 0c6f209

Browse files
authored
dev: optimize misc (#1)
1 parent 192327e commit 0c6f209

16 files changed

+349
-221
lines changed

.gitignore

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1,2 @@
1-
/.idea/
1+
/.idea/
2+
node_modules/

.prettierignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
src/ngrams/**.js
2+
src/dictionary.js

package-lock.json

Lines changed: 35 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
"name": "eld",
33
"version": "1.0.1",
44
"description": "Fast and accurate natural language detection. Detector written in Javascript. Efficient language detector, Nito-ELD, ELD.",
5-
"main": "src/languageDetector.js",
5+
"main": "src/entries/dynamic.js",
66
"type": "module",
77
"repository": {
88
"type": "git",
@@ -17,6 +17,9 @@
1717
"language-detector",
1818
"language-identification"
1919
],
20+
"scripts": {
21+
"fmt": "prettier 'src/**/*.js' --write"
22+
},
2023
"author": {
2124
"name": "Nito T.M.",
2225
"url": "https://github.com/nitotm"
@@ -26,5 +29,8 @@
2629
"bugs": {
2730
"url": "https://github.com/nitotm/efficient-language-detector-js/issues"
2831
},
29-
"homepage": "https://github.com/nitotm/efficient-language-detector-js#readme"
32+
"homepage": "https://github.com/nitotm/efficient-language-detector-js#readme",
33+
"devDependencies": {
34+
"prettier": "^3.3.3"
35+
}
3036
}

src/LanguageResult.js

Lines changed: 19 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ Author Nito T.M. (https://github.com/nitotm)
55
Package npmjs.com/package/eld
66
*/
77

8-
import { avgScore } from './avgScore.js'
8+
import { avgScore } from "./avgScore.js";
99

1010
export class LanguageResult {
1111
/**
@@ -17,10 +17,10 @@ export class LanguageResult {
1717
* @param {Object} langCodes
1818
* @memberof LanguageResult
1919
*/
20-
constructor (language, results, numNgrams, langCodes) {
21-
this.language = language
22-
this.getScores = () => getScores(results, langCodes) // returns object
23-
this.isReliable = () => isReliable(results, numNgrams, language) // returns boolean
20+
constructor(language, results, numNgrams, langCodes) {
21+
this.language = language;
22+
this.getScores = () => getScores(results, langCodes); // returns object
23+
this.isReliable = () => isReliable(results, numNgrams, language); // returns boolean
2424
}
2525
}
2626

@@ -30,15 +30,16 @@ export class LanguageResult {
3030
* @param {string} language
3131
* @returns {boolean}
3232
*/
33-
function isReliable (results, numNgrams, language) {
33+
function isReliable(results, numNgrams, language) {
3434
if (!results.length || numNgrams < 3) {
35-
return false
35+
return false;
3636
}
37-
const nextScore = results.length > 1 ? results[1][0] : 0
37+
const nextScore = results.length > 1 ? results[1][0] : 0;
3838
// A minimum of a 24% per ngram score from average
39-
return !(avgScore[language] * 0.24 > results[0][1] / numNgrams || 0.01 >
40-
Math.abs(results[0][1] - nextScore))
41-
39+
return !(
40+
avgScore[language] * 0.24 > results[0][1] / numNgrams ||
41+
0.01 > Math.abs(results[0][1] - nextScore)
42+
);
4243
}
4344

4445
/**
@@ -47,16 +48,15 @@ function isReliable (results, numNgrams, language) {
4748
* @param {Object} langCodes
4849
* @returns {Object}
4950
*/
50-
function getScores (results, langCodes) {
51-
let scores = {}
52-
let key
51+
function getScores(results, langCodes) {
52+
let scores = {};
53+
let key;
5354
for (key in results) {
54-
let score = results[key][1]
55+
let score = results[key][1];
5556
if (score === 0) {
56-
break
57+
break;
5758
}
58-
scores[langCodes[results[key][0]]] = score
59+
scores[langCodes[results[key][0]]] = score;
5960
}
60-
return scores
61+
return scores;
6162
}
62-

src/avgScore.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ export const avgScore = {
6060
vi: 0.0467,
6161
yo: 0.0329,
6262
zh: 0.0152,
63-
}
63+
};
6464

6565
/* Deprecated for now: Some languages score higher with the same amount of text, this multiplier evens it out for
6666
* multi-language strings

src/entries/dynamic.js

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
import { setNgrams, languageData } from "../languageData.js";
2+
import { eld } from "../languageDetector.js";
3+
4+
/**
5+
* @param {string} file File inside /ngrams/, with ELD ngrams data format
6+
* @returns {boolean|undefined} true if file was loaded
7+
*/
8+
export async function loadNgrams(file) {
9+
return await import("../ngrams/" + file).then((module) => {
10+
setNgrams(module.ngramsData);
11+
if (languageData.type) {
12+
return true;
13+
}
14+
});
15+
}
16+
17+
await loadNgrams("ngramsM60.js");
18+
19+
const withLoader = { ...eld, loadNgrams };
20+
21+
export { withLoader as eld };

src/entries/static.L60.js

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
import { setNgrams } from "../languageData.js";
2+
import { ngramsData } from "../ngrams/ngramsL60.js";
3+
setNgrams(ngramsData);
4+
export * from "../languageDetector.js";

src/entries/static.M60.js

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
import { setNgrams } from "../languageData.js";
2+
import { ngramsData } from "../ngrams/ngramsM60.js";
3+
setNgrams(ngramsData);
4+
export * from "../languageDetector.js";

src/entries/static.S60.js

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
import { setNgrams } from "../languageData.js";
2+
import { ngramsData } from "../ngrams/ngramsS60.js";
3+
setNgrams(ngramsData);
4+
export * from "../languageDetector.js";

0 commit comments

Comments
 (0)