rng tweaked

This commit is contained in:
Andrzej Stepien 2023-08-08 16:52:17 +02:00
parent 25e617c6de
commit c888eb4f54
6 changed files with 14 additions and 44 deletions

1
.gitignore vendored
View File

@ -7,3 +7,4 @@ prod/
src/data/unigram_freq.csv src/data/unigram_freq.csv
src/data/database src/data/database
src/data/database-backup-IPAs-added src/data/database-backup-IPAs-added
auth.mjs

32
package-lock.json generated
View File

@ -12,7 +12,6 @@
"promised-sqlite3": "^2.1.0" "promised-sqlite3": "^2.1.0"
}, },
"devDependencies": { "devDependencies": {
"json-index": "^1.1.0",
"knex": "^2.5.1", "knex": "^2.5.1",
"spellchecker": "^3.7.1", "spellchecker": "^3.7.1",
"sqlite3": "^5.1.6" "sqlite3": "^5.1.6"
@ -287,15 +286,6 @@
"resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz",
"integrity": "sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==" "integrity": "sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ=="
}, },
"node_modules/debug": {
"version": "2.6.9",
"resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
"integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
"dev": true,
"dependencies": {
"ms": "2.0.0"
}
},
"node_modules/delegates": { "node_modules/delegates": {
"version": "1.0.0", "version": "1.0.0",
"resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz",
@ -645,16 +635,6 @@
"integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==",
"optional": true "optional": true
}, },
"node_modules/json-index": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/json-index/-/json-index-1.1.0.tgz",
"integrity": "sha512-+KRvg3D+HcQr3Ipiy5gk7U7EVrtFiTCwlRaXJs2aVZ5eScUBpnjZ/726xqQGcH5lI5M9YUQOCSSIJevDECwHbg==",
"dev": true,
"dependencies": {
"debug": "^2.2.0",
"q": "^1.4.1"
}
},
"node_modules/knex": { "node_modules/knex": {
"version": "2.5.1", "version": "2.5.1",
"resolved": "https://registry.npmjs.org/knex/-/knex-2.5.1.tgz", "resolved": "https://registry.npmjs.org/knex/-/knex-2.5.1.tgz",
@ -909,7 +889,7 @@
"version": "2.0.0", "version": "2.0.0",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
"integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==",
"devOptional": true "optional": true
}, },
"node_modules/nan": { "node_modules/nan": {
"version": "2.17.0", "version": "2.17.0",
@ -1124,16 +1104,6 @@
"sqlite3": "^5" "sqlite3": "^5"
} }
}, },
"node_modules/q": {
"version": "1.5.1",
"resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz",
"integrity": "sha512-kV/CThkXo6xyFEZUugw/+pIOywXcDbFYgSct5cT3gqlbkBE1SJdwy6UQoZvodiWF/ckQLZyDE/Bu1M6gVu5lVw==",
"dev": true,
"engines": {
"node": ">=0.6.0",
"teleport": ">=0.2.0"
}
},
"node_modules/readable-stream": { "node_modules/readable-stream": {
"version": "3.6.2", "version": "3.6.2",
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz",

View File

@ -9,7 +9,6 @@
"author": "Andrzej Stepien", "author": "Andrzej Stepien",
"license": "GPL-3.0-or-later", "license": "GPL-3.0-or-later",
"devDependencies": { "devDependencies": {
"json-index": "^1.1.0",
"knex": "^2.5.1", "knex": "^2.5.1",
"spellchecker": "^3.7.1", "spellchecker": "^3.7.1",
"sqlite3": "^5.1.6" "sqlite3": "^5.1.6"

Binary file not shown.

View File

@ -1,5 +1,5 @@
import {db, getWords} from './db.mjs' import {db, getWords} from './db.mjs'
import Spellchecker, { isMisspelled } from 'spellchecker' import { isMisspelled } from 'spellchecker'

View File

@ -1,6 +1,6 @@
import { db } from "./db.mjs" import { db } from "./db.mjs"
export default async function getNewPrompt({minCount = 200000, maxCount = 30000000, rarity}) { export default async function getNewPrompt({ minCount = 200000, maxCount = 30000000, rarityBias }) {
const badWords = await db('bad_words') const badWords = await db('bad_words')
.select('word') .select('word')
@ -16,16 +16,16 @@ export default async function getNewPrompt({minCount = 200000, maxCount = 300000
.whereNotNull('pronunciation') .whereNotNull('pronunciation')
.orderByRaw('count desc') .orderByRaw('count desc')
const getBiasedRng = (min,max,bias,influence) => { const getBiasedRng = (min, max, bias, influence) => {
const random = Math.random() * (max - min) + min const random = Math.random() * (max - min) + min
const mix = Math.random() * influence const mix = Math.random() * influence
return random * (1-mix) + bias * mix return random * (1 - mix) + bias * mix
} }
const randomEntry = (array) => { const randomEntry = (array) => {
const random = getBiasedRng(0,1,rarity,1) const random = getBiasedRng(0, 1, rarity, 1)
const mix = Math.random() const mix = Math.random()
console.log("RANDOM: "+random) console.log("RANDOM: " + random)
return array[ return array[
parseInt( parseInt(
array.length * random array.length * random
@ -34,12 +34,12 @@ export default async function getNewPrompt({minCount = 200000, maxCount = 300000
} }
db.destroy() db.destroy()
return randomEntry(prompts).count return randomEntry(prompts).word
} }
console.log(await getNewPrompt({rarity:1})) console.log(await getNewPrompt({ rarityBias: 0.7 }))