mirror of
https://gitlab.ub.uni-bielefeld.de/sfb1288inf/nopaque.git
synced 2024-12-25 02:44:18 +00:00
New data structure implementation
This commit is contained in:
parent
f84ac48975
commit
142c82cc36
File diff suppressed because it is too large
Load Diff
@ -117,29 +117,31 @@ class CorpusAnalysisApp {
|
|||||||
}
|
}
|
||||||
|
|
||||||
renderGeneralCorpusInfo(corpusData) {
|
renderGeneralCorpusInfo(corpusData) {
|
||||||
document.querySelector('.corpus-num-tokens').innerHTML = corpusData.corpus.lexicon[0].counts.token;
|
document.querySelector('.corpus-num-tokens').innerHTML = corpusData.corpus.counts.token;
|
||||||
document.querySelector('.corpus-num-s').innerHTML = corpusData.corpus.lexicon[0].counts.s;
|
document.querySelector('.corpus-num-s').innerHTML = corpusData.corpus.counts.s;
|
||||||
document.querySelector('.corpus-num-unique-words').innerHTML = Object.entries(corpusData.corpus.lexicon[0].freqs.word).length;
|
document.querySelector('.corpus-num-unique-words').innerHTML = Object.entries(corpusData.corpus.freqs.word).length;
|
||||||
document.querySelector('.corpus-num-unique-lemmas').innerHTML = Object.entries(corpusData.corpus.lexicon[0].freqs.lemma).length;
|
document.querySelector('.corpus-num-unique-lemmas').innerHTML = Object.entries(corpusData.corpus.freqs.lemma).length;
|
||||||
document.querySelector('.corpus-num-unique-pos').innerHTML = Object.entries(corpusData.corpus.lexicon[0].freqs.pos).length;
|
document.querySelector('.corpus-num-unique-pos').innerHTML = Object.entries(corpusData.corpus.freqs.pos).length;
|
||||||
document.querySelector('.corpus-num-unique-simple-pos').innerHTML = Object.entries(corpusData.corpus.lexicon[0].freqs.simple_pos).length;
|
document.querySelector('.corpus-num-unique-simple-pos').innerHTML = Object.entries(corpusData.corpus.freqs.simple_pos).length;
|
||||||
}
|
}
|
||||||
|
|
||||||
renderTextInfoList(corpusData) {
|
renderTextInfoList(corpusData) {
|
||||||
let corpusTextInfoListElement = document.querySelector('.corpus-text-info-list');
|
let corpusTextInfoListElement = document.querySelector('.corpus-text-info-list');
|
||||||
let corpusTextInfoList = new CorpusTextInfoList(corpusTextInfoListElement);
|
let corpusTextInfoList = new CorpusTextInfoList(corpusTextInfoListElement);
|
||||||
let texts = corpusData.text.lexicon;
|
let texts = corpusData.s_attrs.text.lexicon;
|
||||||
let textData = [];
|
let textData = [];
|
||||||
for (let i = 0; i < Object.entries(texts).length; i++) {
|
for (let i = 0; i < Object.entries(texts).length; i++) {
|
||||||
let resource = {
|
let resource = {
|
||||||
title: corpusData.lookups.text[i].title,
|
// title: "corpusData.values.text[i].title",
|
||||||
publishing_year: corpusData.lookups.text[i].publishing_year,
|
// publishing_year: "corpusData.lookups.text[i].publishing_year",
|
||||||
num_tokens: corpusData.text.lexicon[i].counts.token,
|
title: `Text ${i}`,
|
||||||
num_sentences: corpusData.text.lexicon[i].counts.s,
|
publishing_year: "2023",
|
||||||
num_unique_words: Object.entries(corpusData.text.lexicon[i].freqs.word).length,
|
num_tokens: corpusData.s_attrs.text.lexicon[i].counts.token,
|
||||||
num_unique_lemmas: Object.entries(corpusData.text.lexicon[i].freqs.lemma).length,
|
num_sentences: corpusData.s_attrs.text.lexicon[i].counts.s,
|
||||||
num_unique_pos: Object.entries(corpusData.text.lexicon[i].freqs.pos).length,
|
num_unique_words: Object.entries(corpusData.s_attrs.text.lexicon[i].freqs.word).length,
|
||||||
num_unique_simple_pos: Object.entries(corpusData.text.lexicon[i].freqs.simple_pos).length
|
num_unique_lemmas: Object.entries(corpusData.s_attrs.text.lexicon[i].freqs.lemma).length,
|
||||||
|
num_unique_pos: Object.entries(corpusData.s_attrs.text.lexicon[i].freqs.pos).length,
|
||||||
|
num_unique_simple_pos: Object.entries(corpusData.s_attrs.text.lexicon[i].freqs.simple_pos).length
|
||||||
};
|
};
|
||||||
|
|
||||||
textData.push(resource);
|
textData.push(resource);
|
||||||
@ -148,33 +150,30 @@ class CorpusAnalysisApp {
|
|||||||
corpusTextInfoList.add(textData);
|
corpusTextInfoList.add(textData);
|
||||||
|
|
||||||
let textCountChipElement = document.querySelector('.text-count-chip');
|
let textCountChipElement = document.querySelector('.text-count-chip');
|
||||||
textCountChipElement.innerHTML = `Text count: ${Object.values(corpusData.text.lexicon).length}`;
|
textCountChipElement.innerHTML = `Text count: ${corpusData.corpus.counts.text}`;
|
||||||
}
|
}
|
||||||
|
|
||||||
renderTextProportionsGraphic(corpusData) {
|
renderTextProportionsGraphic(corpusData) {
|
||||||
let textProportionsGraphicElement = document.querySelector('#text-proportions-graphic');
|
let textProportionsGraphicElement = document.querySelector('#text-proportions-graphic');
|
||||||
let texts = Object.entries(corpusData.text.lexicon);
|
let texts = Object.entries(corpusData.s_attrs.text.lexicon);
|
||||||
let graphData = [
|
let graphData = [
|
||||||
{
|
{
|
||||||
values: texts.map(text => text[1].counts.token),
|
values: texts.map(text => text[1].counts.token),
|
||||||
labels: texts.map(text => `${corpusData.lookups.text[text[0]].title} (${corpusData.lookups.text[text[0]].publishing_year})`),
|
// labels: texts.map(text => `${corpusData.lookups.text[text[0]].title} (${corpusData.lookups.text[text[0]].publishing_year})`),
|
||||||
|
labels: texts.map(text => text[0]),
|
||||||
type: 'pie'
|
type: 'pie'
|
||||||
}
|
}
|
||||||
];
|
];
|
||||||
let graphLayout = {
|
|
||||||
// height: 600,
|
|
||||||
// width: 900
|
|
||||||
};
|
|
||||||
let config = {responsive: true};
|
let config = {responsive: true};
|
||||||
|
|
||||||
Plotly.newPlot(textProportionsGraphicElement, graphData, graphLayout, config);
|
Plotly.newPlot(textProportionsGraphicElement, graphData, config);
|
||||||
}
|
}
|
||||||
|
|
||||||
renderFrequenciesGraphic(corpusData) {
|
renderFrequenciesGraphic(corpusData) {
|
||||||
let frequenciesTokenCategoryDropdownElement = document.querySelector('[data-target="frequencies-token-category-dropdown"]');
|
let frequenciesTokenCategoryDropdownElement = document.querySelector('[data-target="frequencies-token-category-dropdown"]');
|
||||||
let frequenciesTokenCategoryDropdownListElement = document.querySelector("#frequencies-token-category-dropdown");
|
let frequenciesTokenCategoryDropdownListElement = document.querySelector("#frequencies-token-category-dropdown");
|
||||||
let frequenciesGraphicElement = document.querySelector('#frequencies-graphic');
|
let frequenciesGraphicElement = document.querySelector('#frequencies-graphic');
|
||||||
let texts = Object.entries(corpusData.text.lexicon);
|
let texts = Object.entries(corpusData.s_attrs.text.lexicon);
|
||||||
|
|
||||||
|
|
||||||
frequenciesTokenCategoryDropdownListElement.addEventListener('click', (event) => {
|
frequenciesTokenCategoryDropdownListElement.addEventListener('click', (event) => {
|
||||||
@ -196,13 +195,14 @@ class CorpusAnalysisApp {
|
|||||||
|
|
||||||
createFrequenciesGraphData(category, texts, corpusData) {
|
createFrequenciesGraphData(category, texts, corpusData) {
|
||||||
let graphData = [];
|
let graphData = [];
|
||||||
let sortedData = Object.entries(corpusData.corpus.lexicon[0].freqs[category]).sort((a, b) => b[1] - a[1]).slice(0, 5);
|
let sortedData = Object.entries(corpusData.corpus.freqs[category]).sort((a, b) => b[1] - a[1]).slice(0, 5);
|
||||||
|
|
||||||
for (let item of sortedData) {
|
for (let item of sortedData) {
|
||||||
let data = {
|
let data = {
|
||||||
x: texts.map(text => `${corpusData.lookups.text[text[0]].title} (${corpusData.lookups.text[text[0]].publishing_year})`),
|
// x: texts.map(text => `${corpusData.lookups.text[text[0]].title} (${corpusData.lookups.text[text[0]].publishing_year})`),
|
||||||
|
x: texts.map(text => text[0]),
|
||||||
y: texts.map(text => text[1].freqs[category][item[0]]),
|
y: texts.map(text => text[1].freqs[category][item[0]]),
|
||||||
name: corpusData.lookups[category][item[0]],
|
name: corpusData.values.p_attrs[category][item[0]],
|
||||||
type: 'bar'
|
type: 'bar'
|
||||||
};
|
};
|
||||||
graphData.push(data);
|
graphData.push(data);
|
||||||
@ -215,22 +215,22 @@ class CorpusAnalysisApp {
|
|||||||
let boundsGraphicElement = document.querySelector('#bounds-graphic');
|
let boundsGraphicElement = document.querySelector('#bounds-graphic');
|
||||||
|
|
||||||
let graphData = [];
|
let graphData = [];
|
||||||
let texts = Object.entries(corpusData.text.lexicon);
|
let texts = Object.entries(corpusData.s_attrs.text.lexicon);
|
||||||
|
|
||||||
graphData = [{
|
graphData = [{
|
||||||
type: 'bar',
|
type: 'bar',
|
||||||
x: texts.map(text => text[1].bounds[1] - text[1].bounds[0]),
|
x: texts.map(text => text[1].bounds[1] - text[1].bounds[0]),
|
||||||
y: texts.map(text => corpusData.lookups.text[text[0]].title),
|
// y: texts.map(text => corpusData.lookups.text[text[0]].title),
|
||||||
|
y: texts.map(text => text[0]),
|
||||||
base: texts.map(text => text[1].bounds[0]),
|
base: texts.map(text => text[1].bounds[0]),
|
||||||
text: texts.map(text => `${corpusData.lookups.text[text[0]].title} (${corpusData.lookups.text[text[0]].publishing_year})`),
|
// text: texts.map(text => `${corpusData.lookups.text[text[0]].title} (${corpusData.lookups.text[text[0]].publishing_year})`),
|
||||||
|
text: texts.map(text => text[0]),
|
||||||
orientation: 'h',
|
orientation: 'h',
|
||||||
hovertemplate: '%{base} - %{x} <br>%{y}',
|
hovertemplate: '%{base} - %{x} <br>%{y}',
|
||||||
showlegend: false
|
showlegend: false
|
||||||
}];
|
}];
|
||||||
|
|
||||||
let graphLayout = {
|
let graphLayout = {
|
||||||
// height: 600,
|
|
||||||
// width: 2000,
|
|
||||||
barmode: 'stack',
|
barmode: 'stack',
|
||||||
type: 'bar',
|
type: 'bar',
|
||||||
showgrid: false,
|
showgrid: false,
|
||||||
|
Loading…
Reference in New Issue
Block a user