add frequency table support for terms
This commit is contained in:
parent
28364b97b0
commit
3b29893072
@ -87,6 +87,21 @@ class Database {
|
||||
return results;
|
||||
}
|
||||
|
||||
async findTermFreq(term, titles) {
|
||||
if (!this.db) {
|
||||
throw 'database not initialized';
|
||||
}
|
||||
|
||||
const results = [];
|
||||
await this.db.termFreq.where('expression').equals(term).each(row => {
|
||||
if (titles.includes(row.dictionary)) {
|
||||
results.push({frequency: row.frequency, dictionary: row.dictionary});
|
||||
}
|
||||
});
|
||||
|
||||
return results;
|
||||
}
|
||||
|
||||
async findKanji(kanji, titles) {
|
||||
if (!this.db) {
|
||||
return Promise.reject('database not initialized');
|
||||
@ -174,6 +189,23 @@ class Database {
|
||||
await this.db.terms.bulkAdd(utilIsolate(rows));
|
||||
};
|
||||
|
||||
const termFreqDataLoaded = async (title, entries, total, current) => {
|
||||
if (callback) {
|
||||
callback(total, current);
|
||||
}
|
||||
|
||||
const rows = [];
|
||||
for (const [expression, frequency] of entries) {
|
||||
rows.push({
|
||||
expression,
|
||||
frequency,
|
||||
dictionary: title
|
||||
});
|
||||
}
|
||||
|
||||
await this.db.termFreq.bulkAdd(utilIsolate(rows));
|
||||
};
|
||||
|
||||
const kanjiDataLoaded = async (title, entries, total, current) => {
|
||||
if (callback) {
|
||||
callback(total, current);
|
||||
@ -219,7 +251,7 @@ class Database {
|
||||
archive,
|
||||
indexDataLoaded,
|
||||
termDataLoaded,
|
||||
null,
|
||||
termFreqDataLoaded,
|
||||
kanjiDataLoaded,
|
||||
null,
|
||||
tagDataLoaded
|
||||
|
@ -62,7 +62,14 @@ class Translator {
|
||||
for (const definition of deinflection.definitions) {
|
||||
const tags = definition.tags.map(tag => dictTagBuild(tag, definition.tagMeta));
|
||||
tags.push(dictTagBuildSource(definition.dictionary));
|
||||
|
||||
let frequencies = await this.database.findTermFreq(definition.expression, titles);
|
||||
if (frequencies.length === 0) {
|
||||
frequencies = await this.database.findTermFreq(definition.reading, titles);
|
||||
}
|
||||
|
||||
definitions.push({
|
||||
frequencies,
|
||||
source: deinflection.source,
|
||||
reasons: deinflection.reasons,
|
||||
score: definition.score,
|
||||
|
Loading…
Reference in New Issue
Block a user