quick fixes

This commit is contained in:
szymonj98 2023-06-11 16:20:19 +02:00
parent 44ee7aa796
commit 19c31a3509
10 changed files with 195 additions and 47 deletions

View File

@ -4,7 +4,9 @@
background: linear-gradient(35deg, rgba(0, 0, 0, 1) 0%, rgba(10, 71, 9, 1) 50%, rgba(0, 0, 0, 1) 100%) !important;
background-repeat: no-repeat;
min-height: calc(100% - 60px);
height: fit-content
height: fit-content;
width:fit-content;
min-width: calc(100% - 400px)
}

View File

@ -31,16 +31,27 @@
<div *ngFor="let res of results">
<div class="result-row">
<div class="sentence">{{res.sentence}}</div>
<div [ngSwitch]="res.label">
<div class="label-0" *ngSwitchCase="0">Negatywny</div>
<div class="label-1" *ngSwitchCase="1">Pozytywny</div>
<div class="label-2" *ngSwitchCase="2">Neutralny</div>
<div class="analysis-res">
<div class="sentiment-container" [ngSwitch]="res.sentimentLabel">
<div class="label-0" *ngSwitchCase="0">Negatywny</div>
<div class="label-1" *ngSwitchCase="1">Pozytywny</div>
<div class="label-2" *ngSwitchCase="2">Neutralny</div>
</div>
<div class="irony-container" [ngSwitch]="res.ironyLabel">
<div class="irony-0" *ngSwitchCase="0">Brak ironii</div>
<div class="irony-1" *ngSwitchCase="1">Ironia</div>
</div>
</div>
</div>
</div>
</div>
<div class="chart">
<canvas baseChart width="300" height="300" [data]="barChartData" [options]="barChartOptions"
<canvas baseChart width="300" height="300" [data]="sentimentBarChartData" [options]="sentimentBarChartOptions"
[plugins]="barChartPlugins" [legend]="barChartLegend" [type]="'bar'">
</canvas>
</div>
<div class="chart">
<canvas baseChart width="300" height="300" [data]="ironyBarChartData" [options]="ironyBarChartOptions"
[plugins]="barChartPlugins" [legend]="barChartLegend" [type]="'bar'">
</canvas>
</div>

View File

@ -117,3 +117,27 @@
background-repeat: no-repeat;
}
}
.analysis-res{
display: flex;
justify-content: space-between;
column-gap: 15px;
}
.irony-0{
color: rgb(126, 126, 126);
min-width:75px;
}
.irony-1{
color: rgb(134, 2, 164);
font-weight:600;
}
.irony-container{
min-width: 76px;
}
.sentiment-container{
min-width: 80px
}

View File

@ -15,7 +15,7 @@ export class FacebookAnalysisComponent implements OnInit {
comments!: string[];
results: { label: number, score: number, sentence: string }[] = []
results: { sentimentLabel: number, sentence: string, ironyLabel: string }[] = []
analysisStart = false;
analysisLoading = false;
commentStatus = true;
@ -23,7 +23,7 @@ export class FacebookAnalysisComponent implements OnInit {
post!: string;
public barChartLegend = true;
public barChartPlugins = [];
public barChartOptions: ChartConfiguration<'bar'>['options'] = {
public sentimentBarChartOptions: ChartConfiguration<'bar'>['options'] = {
responsive: false,
scales: {
yAxes: {
@ -31,8 +31,21 @@ export class FacebookAnalysisComponent implements OnInit {
}
}
};
public barChartData: ChartConfiguration<'bar'>['data'] = {
labels: ['Statystyki'],
public sentimentBarChartData: ChartConfiguration<'bar'>['data'] = {
labels: ['Statystyki sentymentu'],
datasets: []
};
public ironyBarChartOptions: ChartConfiguration<'bar'>['options'] = {
responsive: false,
scales: {
yAxes: {
display: true,
}
}
};
public ironyBarChartData: ChartConfiguration<'bar'>['data'] = {
labels: ['Statystyki ironii'],
datasets: []
};
@ -43,7 +56,7 @@ export class FacebookAnalysisComponent implements OnInit {
constructor(private router: Router, private fb: FormBuilder, private http: HttpClient) { }
linkForm: FormGroup = this.fb.group({
link: ['', Validators.required]
link: ['https://www.facebook.com/photo/?fbid=793151395513422&set=a.266104484884785', Validators.required]
})
ngOnInit(): void {
@ -57,28 +70,34 @@ export class FacebookAnalysisComponent implements OnInit {
this.analysisStart = true
this.analysisLoading = false
let link = this.link.value
this.http.post(environment.facebook, { link: link }).pipe(concatMap((resp: any) => {
if (!resp.status) {
this.http.post(environment.facebook, { link: link }).pipe(concatMap((facebookResp: any) => {
if (!facebookResp.status) {
this.commentStatus = false;
console.log(1)
return of({})
} else {
this.commentStatus = true;
this.post = resp.post
return this.http.post(environment.sentiment, { sentences: resp.sentences }).pipe(tap((resp: any) => {
console.log(resp)
this.results = resp.predictions
this.barChartData.datasets = [
this.post = facebookResp.post
return this.http.post(environment.sentiment, { sentences: facebookResp.sentences }).pipe(concatMap((resp: any) => {
this.results = resp.predictions.map((elem: any) => { return { sentimentLabel: elem.label, sentence: elem.sentence } })
this.sentimentBarChartData.datasets = [
{ data: [resp.count_labels.negative], label: String(resp.count_labels.negative) + ' negatywny', backgroundColor: 'rgba(250, 66, 66, 1)', borderRadius: 15, },
{ data: [resp.count_labels.positive], label: String(resp.count_labels.positive) + ' pozytywny', backgroundColor: 'rgba(124, 136, 248, 1)', borderRadius: 15, },
{ data: [resp.count_labels.neutral], label: String(resp.count_labels.neutral) + ' neutralny', backgroundColor: 'rgba(211,211,211)', borderRadius: 15, }
]
return this.http.post(environment.irony, { sentences: facebookResp.sentences }).pipe(tap((ironyResp:any) => {
this.results.forEach((element,i) => {
element.ironyLabel = ironyResp.predictions[i].label
});
this.ironyBarChartData.datasets = [
{ data: [ironyResp.count_labels.irony], label: String(ironyResp.count_labels.irony) + ' ironia', backgroundColor: 'rgba(126, 126, 126)', borderRadius: 15, },
{ data: [ironyResp.count_labels.non_irony], label: String(ironyResp.count_labels.non_irony) + ' brak ironii', backgroundColor: 'rgba(134, 2, 164)', borderRadius: 15, },
]
}))
}))
}
})).subscribe({
next: () => {
console.log(2)
this.analysisLoading = true
},
error: () => {

View File

@ -29,15 +29,23 @@
<div class="results-table" *ngIf="analysisStart">
<ng-container *ngIf="analysisLoading; else loading">
<ng-container *ngIf="!error; else errorTemplate">
<div *ngFor="let res of analysisResults">
<div class="result-row">
<div class="sentence">{{res.sentence}}</div>
<div [ngSwitch]="res.label">
<div class="label-0" *ngSwitchCase="0">Brak ironii</div>
<div class="label-1" *ngSwitchCase="1">Ironia</div>
<div class="results-rows">
<div *ngFor="let res of analysisResults">
<div class="result-row">
<div class="sentence">{{res.sentence}}</div>
<div [ngSwitch]="res.label">
<div class="label-0" *ngSwitchCase="0">Brak ironii</div>
<div class="label-1" *ngSwitchCase="1">Ironia</div>
</div>
</div>
</div>
</div>
<div class="chart">
<canvas baseChart width="300" height="300" [data]="ironyBarChartData"
[options]="ironyBarChartOptions" [plugins]="barChartPlugins" [legend]="barChartLegend"
[type]="'bar'">
</canvas>
</div>
</ng-container>
</ng-container>
</div>

View File

@ -4,7 +4,9 @@
background: linear-gradient(35deg, rgba(0, 0, 0, 1) 0%, rgba(71, 9, 65, 1) 50%, rgba(0, 0, 0, 1) 100%);
background-repeat: no-repeat;
min-height: calc(100% - 60px);
height: fit-content
height: fit-content;
width: fit-content;
min-width: calc(100% - 400px);
}
.title {
@ -61,7 +63,7 @@
.chart {
padding-top: 30px;
//padding-top: 30px;
}
.title-container {
@ -78,7 +80,9 @@
}
.results-table {
width: 400px
display: flex;
justify-content: space-between;
column-gap: 40px;
}
.ready-examples-button {
@ -108,3 +112,7 @@
.error {
color: white
}
.results-rows{
width: 400px;
}

View File

@ -11,13 +11,74 @@ import { environment } from 'src/environments/environment';
styleUrls: ['./irony-analysis.component.scss']
})
export class IronyAnalysisComponent implements OnInit {
public barChartLegend = true;
public barChartPlugins = [];
public ironyBarChartOptions: ChartConfiguration<'bar'>['options'] = {
responsive: false,
scales: {
yAxes: {
display: true,
}
}
};
public ironyBarChartData: ChartConfiguration<'bar'>['data'] = {
labels: ['Statystyki ironii'],
datasets: []
};
randomSampleList = [
'testowy przyklad',
'testowy przyklad',
'testowy przyklad',
'testowy przyklad',
'testowy przyklad',
"Super, jeszcze jedno zadanie do wykonania. Przecież nie mam nic innego do roboty.",
"Jasne, że jestem w pełni zainteresowany twoją prezentacją. Właśnie potrzebuję sobie uciąć drzemkę.",
"No pewnie, że jestem wniebowzięty kolejnym obiadkiem z mikrofalówki. Nic nie smakuje lepiej niż jedzenie pełne konserwantów.",
"No jasne, że jestem podekscytowany kolejną prezentacją PowerPoint. Czekam na to, jak monotonny może być przekaz.",
"Oczywiście, że jestem wniebowzięty kolejnym prezentem na Dzień Matki. Potrzebuję jeszcze więcej bibelotów do zbierania kurzu.",
"Super, jeszcze jedno szkolenie z zasad BHP. Czuję, że moja wiedza w tej dziedzinie nigdy nie jest wystarczająca.",
"No jasne, że jestem podekscytowany kolejnym spotkaniem przedstawicieli handlowych. Czego jeszcze potrzebuję? Jeszcze więcej gadających ludzi.",
"Super, jeszcze jeden błąd w kodzie. Moja umiejętność pisania programów jest niezwykła.",
"Oczywiście, że najbardziej lubię spędzać czas z irytującymi ludźmi. To jest moje ulubione hobby.",
"Oczywiście, że uwielbiam, kiedy ludzie przeklinają bez przerwy. To jest tak piękne i wzbogacające dla mojego słownictwa.",
"Jasne, że nie mam nic przeciwko spędzeniu całego dnia na zmywaniu góry naczyń. Przecież nie ma nic lepszego do roboty.",
"Oczywiście, że jestem wielkim fanem robienia zakupów impulsywnych. Moje konto bankowe uwielbia ten mój talent.",
"Jasne, że to jest najlepsza piosenka, jaką kiedykolwiek słyszałem. Zwłaszcza ten wspaniały refren, który brzmi jak zakłócenia radiowe.",
"Oczywiście, że najbardziej lubię, kiedy wszyscy mi przerywają. Moja mowa jest tak porywająca, że trudno się oprzeć.",
"Tak, pewnie, że jestem mistrzem organizacji. Mój pokój wygląda jak skansen starych gazet i zużytych opakowań po jedzeniu.",
"No tak, bo wszyscy uwielbiają, kiedy ktoś głośno przeżuwa obok nich.",
"Tak, pewnie, że nic nie smakuje lepiej niż zimna pizza z dostawy sprzed dwóch dni.",
"Tak, pewnie, że moje umiejętności taneczne są na poziomie gwiazdy. Przez to ściany się ze mnie śmieją.",
"Tak, pewnie, że kocham, kiedy mnie ktoś przeklina. To znak, że zrobiłem dobre wrażenie.",
"No jasne, że moje umiejętności sprzątania są legendarnie złe. Potrafię tylko robić większy bałagan.",
"Oczywiście, że uwielbiam, kiedy ktoś przerywa mi podczas oglądania ulubionego serialu. To jest tak ekscytujące.",
"Tak, pewnie, że zawsze od razu znajduję to, czego szukam. Moja intuicja jest niezawodna.",
"No pewnie, że jestem niezastąpiony w odbijaniu piłki. Zawsze trafia mi w twarz.",
"Jasne, że zawsze zwracam uwagę na szczegóły. Zwłaszcza, kiedy przeglądam telefon i idę prosto w słup.",
"Jasne, że jestem mistrzem w zakłócaniu ciszy. Mój talent w rozpraszaniu jest godny podziwu.",
"Oczywiście, że uwielbiam, kiedy ludzie ignorują moje wiadomości. To sprawia, że czuję się wyjątkowy.",
"Dzisiaj jest piękna pogoda.",
"Mam wiele do zrobienia, ale dam radę. Będę pracować skoncentrowanie i efektywnie.",
"Jestem ekspertem w tym temacie. Spędziłem dużo czasu na nauce i praktyce.",
"Zasługuję na podwyżkę. Moja praca jest dobrze wykonana i przynosi dobre wyniki.",
"Jestem zainteresowany twoją prezentacją. Chcę się czegoś nowego nauczyć.",
"Wykonam tę pracę szybko i starannie. Znam się na tym i mam doświadczenie.",
"To jest dobra aplikacja, która może mi pomóc w mojej codziennej pracy.",
"Zaproszenie na piwo o 23:00 brzmi interesująco. Cieszę się, że mogę spędzić czas z przyjaciółmi.",
"Masz rację. Twoja sugestia jest dobra i warto ją wziąć pod uwagę.",
"To zadanie jest łatwe. Potrafię je zrobić szybko i bez większych problemów.",
"Chętnie posłucham twojej historii z wakacji. Zawsze lubię słuchać ciekawych historii.",
"Pomogę ci z projektem. Razem możemy osiągnąć sukces.",
"Spotkanie będzie interesujące. Czekam na nowe informacje i możliwość współpracy z innymi.",
"Ta książka jest naprawdę dobra. Ciekawa fabuła i interesujące postacie.",
"Zamówię coś smacznego z menu. Dziś mam ochotę na coś wyjątkowego.",
"Jestem zaangażowany w ten projekt. Chcę wnieść swój wkład i osiągnąć wspólne cele.",
"Zgadzam się z twoją opinią. Masz rację w tym, co mówisz.",
"Chętnie wysłucham twojej historii o snach. Zawsze jestem ciekaw innych doświadczeń.",
"Jestem twoim fanem. Cieszę się, że mogę oglądać twoje sukcesy.",
"Nie przepadam za spotkaniami rodzinymi, ale ważne jest dla mnie, by być z bliskimi.",
"Chętnie odwiedzę twoją wystawę sztuki. Interesuję się sztuką i chcę zobaczyć twój talent.",
"Przeczytam twoją pracę magisterską. Ciekawi mnie temat, który wybrałeś.",
"Będę słuchać twojego wystąpienia na konferencji. Interesują mnie nowe pomysły i wiedza.",
"Dotrzymam umówionego terminu. Szanuję czas innych i jestem punktualny.",
"Czekam na to spotkanie. Liczę na ciekawe prezentacje i nowe informacje.",
"Zagram w twoim zespole na imprezie. To będzie świetna zabawa i okazja do poznania nowych ludzi.",
]
analysisStart = false;
@ -67,6 +128,10 @@ export class IronyAnalysisComponent implements OnInit {
console.log(resp)
this.analysisLoading = true;
this.analysisResults = resp.predictions;
this.ironyBarChartData.datasets = [
{ data: [resp.count_labels.irony], label: String(resp.count_labels.non_irony) + ' brak ironii', backgroundColor: 'rgba(126, 126, 126)', borderRadius: 15, },
{ data: [resp.count_labels.non_irony], label: String(resp.count_labels.irony) + ' ironia', backgroundColor: 'rgba(134, 2, 164)', borderRadius: 15, },
]
},
error: () => {
this.analysisLoading = true

View File

@ -29,13 +29,15 @@
<div class="results-table" *ngIf="analysisStart">
<ng-container *ngIf="analysisLoading; else loading">
<ng-container *ngIf="!error; else errorTemplate">
<div *ngFor="let res of results">
<div class="result-row">
<div class="sentence">{{res.sentence}}</div>
<div [ngSwitch]="res.label">
<div class="label-0" *ngSwitchCase="0">Negatywny</div>
<div class="label-1" *ngSwitchCase="1">Pozytywny</div>
<div class="label-2" *ngSwitchCase="2">Neutralny</div>
<div class="results-rows">
<div *ngFor="let res of results">
<div class="result-row">
<div class="sentence">{{res.sentence}}</div>
<div [ngSwitch]="res.label">
<div class="label-0" *ngSwitchCase="0">Negatywny</div>
<div class="label-1" *ngSwitchCase="1">Pozytywny</div>
<div class="label-2" *ngSwitchCase="2">Neutralny</div>
</div>
</div>
</div>
</div>
@ -44,6 +46,7 @@
[plugins]="barChartPlugins" [legend]="barChartLegend" [type]="'bar'">
</canvas>
</div>
</ng-container>
</ng-container>
</div>

View File

@ -4,7 +4,9 @@
background: linear-gradient(35deg, rgba(0, 0, 0, 1) 0%, rgba(9, 64, 71, 1) 50%, rgba(0, 0, 0, 1) 100%);
background-repeat: no-repeat;
min-height: calc(100% - 60px);
height: fit-content
height: fit-content;
width: fit-content;
min-width: calc(100% - 400px);
}
.title {
@ -62,7 +64,7 @@
}
.chart {
padding-top: 30px;
//padding-top: 30px;
}
.title-container {
@ -79,7 +81,9 @@
}
.results-table {
width: 400px
display: flex;
justify-content: space-between;
column-gap: 40px;
}
.ready-examples-button {
@ -109,3 +113,7 @@
background-repeat: no-repeat;
}
}
.results-rows{
width: 400px;
min-width: 200px;
}

View File

@ -64,9 +64,9 @@
</div>
<div class="irony" (click)="goToIrony()">
<div class="title">WYKRYWANIE IRONII</div>
<div class="text">Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum
has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a
galley of type and scrambled it to make a type specimen book.</div>
<div class="text">Moduł ten służy do wykrywania ironii w zdaniach. Jest to pomocne narzędzie w
weryfikacji np. komentarzy w mediach społecznościowych. Wpływa on bezpośrednio na ocenę odbioru
treści zamieszczanych na różnych platofrmach społecznościowych</div>
</div>
</div>
<div class="row-2">