quick fixes
This commit is contained in:
parent
44ee7aa796
commit
19c31a3509
@ -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)
|
||||
}
|
||||
|
||||
|
||||
|
@ -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>
|
||||
|
@ -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
|
||||
}
|
||||
|
@ -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: () => {
|
||||
|
@ -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>
|
||||
|
@ -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;
|
||||
}
|
||||
|
@ -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
|
||||
|
@ -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>
|
||||
|
@ -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;
|
||||
}
|
||||
|
@ -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">
|
||||
|
Loading…
Reference in New Issue
Block a user