let progress = 0;
console.time('progress');
words.data.forEach((word, i) => {
const cp = Math.floor(i * 100 / words.data.length);
if (cp > progress) {
progress = cp;
console.timeLog('progress', `${progress}%`);
}
// word.nc = [];
// word.ns = [];
// console.time('books');
books.data.forEach(book => {
book.data.forEach(sentence => {
if (sentence.length < 2)
return;
const wi = sentence.indexOf(word);
if (wi + 1 === 0)
return;
sentence.forEach((cword, ci) => {
const ncword = word.nc.find(element => element.word === cword);
if (ncword) {
ncword.c++;
ncword.s += 1 / Math.abs(ci - wi);
ncword.w = ncword.s / ncword.c;
}
word.nc.push({
c: 1,
s: 1 / Math.abs(ci - wi),
w: 1 / Math.abs(ci - wi)
});
});
});
});
});
console.timeEnd('progress');
[
...
{
"w": "ящерок",
"nc": [],
"ns": []
},
{
"w": "ящеру",
"nc": [],
"ns": []
},
{
"w": "ящеры",
"nc": [],
"ns": []
},
{
"w": "ящик",
"nc": [],
"ns": []
},
{
"w": "ящика",
"nc": [],
"ns": []
},
{
"w": "ящикам",
"nc": [],
"ns": []
},
{
"w": "ящиками",
"nc": [],
"ns": []
},
{
"w": "ящиках",
"nc": [],
"ns": []
},
{
"w": "ящике",
"nc": [],
"ns": []
},
{
"w": "ящики",
"nc": [],
"ns": []
},
{
"w": "ящиков",
"nc": [],
"ns": []
},
{
"w": "ящиком",
"nc": [],
"ns": []
},
{
"w": "ящику",
"nc": [],
"ns": []
},
{
"w": "ящичек",
"nc": [],
"ns": []
},
{
"w": "ящичка",
"nc": [],
"ns": []
},
{
"w": "ящичкам",
"nc": [],
"ns": []
},
{
"w": "ящичках",
"nc": [],
"ns": []
},
{
"w": "ящичков",
"nc": [],
"ns": []
},
...
]
[
...
{
"filename": "bla-bla",
"data": [
...
[
"отдельно",
"по",
"операции",
"зачистка",
"согласно",
"рекомендациям",
"аналитической",
"комиссии",
"к",
"экс",
"котам",
"были",
"применены",
"следующие",
"методы"
],
[
"обязательная",
"смена",
"аватара",
"число",
"человек"
],
[
"пожизненный",
"запрет",
"на",
"посещение",
"друмира",
"число",
"человек"
],
...
]
},
{
"filename": "bla-bla",
"data": [
...
[...],
...
]
},
...
]