Ein kleiner Schritt in die Sentimentanalysenwelt
Mal eine schnell-selbstgemachte Sentimentanalyse:
Step by step
Links sammeln - Link-Übergabe
#!/usr/bin/perl# sentimentanalyse.pluse strict;use warnings;# Programm## Öffnen der Tageslinksopen ( my $fh, '<tageslinks.txt' );my @tageslinks = <$fh>;close $fh;print "\nDie Links:\n\n";print map { $_, "\n" } @tageslinks;Die Links:https://www.welt.de/politik/ausland/article186755418/Festnahme-von-Paul-Whelan-Russland-steckt-in-regelrechtem-Spionagewahn.htmlhttps://www.welt.de/politik/ausland/article186860772/Viktor-Orban-Angriff-auf-Emmanuel-Macron-Muss-gegen-ihn-kaempfen.htmlhttps://www.welt.de/regionales/hamburg/article186879446/Integration-Ist-die-Wohngebuehr-fuer-Fluechtlinge-rechtswidrig.htmlhttps://www.welt.de/politik/deutschland/article186855990/Aerzte-ohne-Grenzen-Frau-Merkel-kommen-Sie-nach-Lesbos.htmlhttps://www.welt.de/politik/deutschland/article186885806/AfD-Politiker-Ermittler-wollen-Video-von-Angriff-auf-Magnitz-veroeffentlichen.htmlhttps://www.welt.de/Einlesen der Sentimentdaten
## Öffnen der negativen Sentimentsopen ( $fh, '<SentiWS_v2.0_Negative.txt' );my @sentiments_negative = <$fh>;close $fh;print "\nDie negativen Sentiments:\n\n";print map { $_, "\n" } @sentiments_negative;...
übersehen|VVINF -0.5128 übersehe,übersiehst,übersieht,überseht,übersehest,übersehet,übersah,übersahst,übersahen,übersaht,übersähe,übersähest,übersähst,übersähen,übersähet,übersäht
übertreiben|VVINF -0.0372 übertreibe,übertreibst,übertreibt,übertreibest,übertreibet,übertrieb,übertriebst,übertrieben,übertriebt,übertriebe,übertriebest,übertriebst,übertriebet
übertreten|VVINF -0.329 übertrete,übertrittst,übertritt,übertretet,übertretest,übertrat,übertratest,übertratst,übertraten,übertratet,überträte,überträtest,überträten,überträtet
übertrieben|ADJX -0.3203 übertriebenes,übertriebenerer,übertriebeneres,übertriebener,übertriebner,übertriebeneren,übertriebenste,übertriebenen,übertriebenem,übertriebnerem,übertriebneren,übertriebnere,übertriebenerem,übertriebnerer,übertriebenstem,übertriebneres,übertriebene,übertriebenere,übertriebensten,übertriebenstes,übertriebenster
überwältigen|VVINF -0.0048 überwältigest,überwältigten,überwältige,überwältigt,überwältigte,überwältigtest,überwältigst,überwältiget,überwältigtet
So, bis hierhin mehr als easy. Aber nun müssen die Sentimentdaten (die positiven werden folgen) in eine Form, mit der sich operieren lässt. Ich denke da an ein Hash.
## Sentiment-Wert ermittelnmy $sent_val = $sentiments_negative[0];$sent_val =~ s/.*\|[A-Z]{2,}\s([^\s]+)\s.*/$1/g;print "\nSentiment-Value: $sent_val\n\n";## Sentiment-Worte extrahierenmy $sent_words = $sentiments_negative[0];$sent_words =~ s/(.*)\|[A-Z]{2,}\s[^\s]+\s(.*)/$1 $2/g;$sent_words =~ s/\s/,/g;print "\nSentiment-Words: $sent_words\n\n";my @sent_words = split ( ",", $sent_words );print "\nSentiment-Words, einzeln:\n\n";print map { $_, "\n" } @sent_words;Sentiment-Value: -0.058Sentiment-Words: Abbau,Abbaus,Abbaues,Abbauen,Abbaue,Abbauten,Sentiment-Words, einzeln:AbbauAbbausAbbauesAbbauenAbbaueAbbauten
Bis hierhin immer noch quasi Heimspiel.
## Sentiment-negativ-Hash bildenmy %sent_neg;foreach ( @sentiments_negative ) { ## Sentiment-Wert ermitteln my $sent_val = $_; $sent_val =~ s/.*\|[A-Z]{2,}\s([^\s]+)\s.*/$1/g; chomp $sent_val; print "\nSentiment-Value: $sent_val\n\n"; ## Sentiment-Worte extrahieren my $sent_words = $_; $sent_words =~ s/(.*)\|[A-Z]{2,}\s[^\s]+\s(.*)/$1 $2/g; $sent_words =~ s/\s/,/g; print "\nSentiment-Words: $sent_words\n\n"; my @sent_words = split ( ",", $sent_words ); print "\nSentiment-Words, einzeln:\n\n"; print map { $_, "\n" } @sent_words; foreach ( @sent_words ) { if ( $_ eq "" ) { next } if ( not exists $sent_neg{$_} ) { $sent_neg{$_} = $sent_val } else { print "\n$_ bereits vorhanden!\n\n" } }}print "\nDas Sentiment-Hash:\n\n";print map { $_, " : ", $sent_neg{$_}, "\n" } sort { $sent_neg{$b} <=> $sent_neg{$a} } keys %sent_neg; ...schädlichem : -0.9269schädlichen : -0.9269schädlichstem : -0.9269unnötiges : -0.9463unnötiger : -0.9463unnötigstem : -0.9463unnötigem : -0.9463unnötigen : -0.9463unnötigstes : -0.9463unnötigster : -0.9463unnötigsten : -0.9463unnötigeres : -0.9463unnötigere : -0.9463unnötig : -0.9463unnötigerer : -0.9463unnötigerem : -0.9463unnötigeren : -0.9463unnötige : -0.9463unnötigste : -0.9463Schulden : -0.9686Schuld : -0.9686Gefahr : -1.0Gefahren : -1.0
Yo. Noch keine Schwierigkeit in Sicht.
Code
#!/usr/bin/perl# sentimentanalyse.pluse strict;use warnings;# Programm## Öffnen der Tageslinksopen ( my $fh, '<tageslinks.txt' );my @tageslinks = <$fh>;close $fh;print "\nDie Links:\n\n";print map { $_, "\n" } @tageslinks;## Öffnen der negativen Sentimentsopen ( $fh, '<SentiWS_v2.0_Negative.txt' );my @sentiments_negative = <$fh>;close $fh;print "\nDie negativen Sentiments:\n\n";print map { $_, "\n" } @sentiments_negative;## Öffnen der positiven Sentimentsopen ( $fh, '<SentiWS_v2.0_Positive.txt' );my @sentiments_positive = <$fh>;close $fh;print "\nDie positiven Sentiments:\n\n";print map { $_, "\n" } @sentiments_positive;## Sentiment-negativ-Hash bildenmy %sent_neg;foreach ( @sentiments_negative ) { ## Sentiment-Wert ermitteln my $sent_val = $_; $sent_val =~ s/.*\|[A-Z]{2,}\s([^\s]+)\s.*/$1/g; chomp $sent_val; print "\nSentiment-Value: $sent_val\n\n"; ## Sentiment-Worte extrahieren my $sent_words = $_; $sent_words =~ s/(.*)\|[A-Z]{2,}\s[^\s]+\s(.*)/$1 $2/g; $sent_words =~ s/\s/,/g; print "\nSentiment-Words: $sent_words\n\n"; my @sent_words = split ( ",", $sent_words ); print "\nSentiment-Words, einzeln:\n\n"; print map { $_, "\n" } @sent_words; foreach ( @sent_words ) { if ( $_ eq "" ) { next } if ( not exists $sent_neg{$_} ) { $sent_neg{$_} = $sent_val } else { print "\n$_ bereits vorhanden!\n\n" } }}print "\nDas Sentiment-Hash:\n\n";print map { $_, " : ", $sent_neg{$_}, "\n" } sort { $sent_neg{$b} <=> $sent_neg{$a} } keys %sent_neg;## Sentiment-positiv-Hash bildenmy %sent_pos;foreach ( @sentiments_positive ) { ## Sentiment-Wert ermitteln my $sent_val = $_; $sent_val =~ s/.*\|[A-Z]{2,}\s([^\s]+)\s.*/$1/g; chomp $sent_val; print "\nSentiment-Value: $sent_val\n\n"; ## Sentiment-Worte extrahieren my $sent_words = $_; $sent_words =~ s/(.*)\|[A-Z]{2,}\s[^\s]+\s(.*)/$1 $2/g; $sent_words =~ s/\s/,/g; print "\nSentiment-Words: $sent_words\n\n"; my @sent_words = split ( ",", $sent_words ); print "\nSentiment-Words, einzeln:\n\n"; print map { $_, "\n" } @sent_words; foreach ( @sent_words ) { if ( $_ eq "" ) { next } if ( not exists $sent_pos{$_} ) { $sent_pos{$_} = $sent_val } else { print "\n$_ bereits vorhanden!\n\n" } }}print "\nDas Sentiment-Hash:\n\n";print map { $_, " : ", $sent_pos{$_}, "\n" } sort { $sent_pos{$a} <=> $sent_pos{$b} } keys %sent_pos;# Token-Bilanzwerte je Link ermittelnmy %tokenbilanz;foreach ( @tageslinks ) { ## Token aus Links my $link = $_; chomp $link; my $linktext = `lynx -dump -nolist $link`; $linktext =~ s/\n/ /g; $linktext =~ s/[\s]+/ /g; my @token = split ( " ", $linktext ); # print "\nToken:\n\n"; # print map { $_, "\n" } @token; # Token-Werte summieren my $token_sum = 0; foreach ( @token ) { my $token_neg; if ( exists $sent_neg{$_} ) { $token_neg = $sent_neg{$_} } else { $token_neg = 0 } my $token_pos; if ( exists $sent_pos{$_} ) { $token_pos = $sent_pos{$_} } else { $token_pos = 0 } $token_sum = $token_neg + $token_pos + $token_sum; } print "\nDer Link:\n$link\n"; print "\nDer Token-Bilanzwert: $token_sum\n\n";}Output
...Der Link:https://www.welt.de/politik/ausland/article186755418/Festnahme-von-Paul-Whelan-Russland-steckt-in-regelrechtem-Spionagewahn.htmlDer Token-Bilanzwert: -8.43840000000001Der Link:https://www.welt.de/politik/ausland/article186860772/Viktor-Orban-Angriff-auf-Emmanuel-Macron-Muss-gegen-ihn-kaempfen.htmlDer Token-Bilanzwert: -4.5123Der Link:https://www.welt.de/regionales/hamburg/article186879446/Integration-Ist-die-Wohngebuehr-fuer-Fluechtlinge-rechtswidrig.htmlDer Token-Bilanzwert: -1.388Der Link:https://www.welt.de/politik/deutschland/article186855990/Aerzte-ohne-Grenzen-Frau-Merkel-kommen-Sie-nach-Lesbos.htmlDer Token-Bilanzwert: -2.3985Der Link:https://www.welt.de/politik/deutschland/article186885806/AfD-Politiker-Ermittler-wollen-Video-von-Angriff-auf-Magnitz-veroeffentlichen.htmlDer Token-Bilanzwert: -10.2492Der Link:https://www.welt.de/Der Token-Bilanzwert: -29.5636999999999
Der
erste Entwurf funzt schon mal einwandfrei. Als Nächstes folgt -
wahrscheinlich demnächst - die Integration in meine Datenbank.
Zum gelungenen Abschluss des Abends sammele ich mal ein paar mehr Links.
Code-Änderung zum Abschluss
...# Token-Bilanzwerte je Link ermittelnmy %tokenbilanz;foreach ( @tageslinks ) { ## Token aus Links my $link = $_; chomp $link; my $linktext = `lynx -dump -nolist $link`; $linktext =~ s/\n/ /g; $linktext =~ s/[\s]+/ /g; my @token = split ( " ", $linktext ); # print "\nToken:\n\n"; # print map { $_, "\n" } @token; # Token-Werte summieren my $token_sum = 0; foreach ( @token ) { my $token_neg; if ( exists $sent_neg{$_} ) { $token_neg = $sent_neg{$_} } else { $token_neg = 0 } my $token_pos; if ( exists $sent_pos{$_} ) { $token_pos = $sent_pos{$_} } else { $token_pos = 0 } $token_sum = $token_neg + $token_pos + $token_sum; } print "\nDer Link:\n$link\n"; print "\nDer Token-Bilanzwert: $token_sum\n\n"; $tokenbilanz{$link} = $token_sum;}print "\nDie Tokenbilanz sortiert:\n\n";foreach ( sort { $tokenbilanz{$a} <=> $tokenbilanz{$b} } keys %tokenbilanz ) { print "\nDer Link:\n$_\n"; print "\nDer Token-Bilanzwert: $tokenbilanz{$_}\n\n";}Output zum Abschluss
...Die Tokenbilanz sortiert:Der Link:https://www.zeit.de/politik/ausland/2019-01/usa-mexiko-grenze-donald-trump-zahlenDer Token-Bilanzwert: -11.5108Der Link:https://www.welt.de/politik/deutschland/article186885806/AfD-Politiker-Ermittler-wollen-Video-von-Angriff-auf-Magnitz-veroeffentlichen.htmlDer Token-Bilanzwert: -10.2492Der Link:https://www.welt.de/politik/ausland/article186755418/Festnahme-von-Paul-Whelan-Russland-steckt-in-regelrechtem-Spionagewahn.htmlDer Token-Bilanzwert: -8.43840000000001Der Link:http://www.spiegel.de/wirtschaft/soziales/brexit-in-der-britischen-wirtschaft-waechst-die-nervositaet-a-1229304.htmlDer Token-Bilanzwert: -8.20180000000001Der Link:https://www.t-online.de/gesundheit/krankheiten-symptome/id_43998616/wie-gefaehrlich-sind-punkte-und-blitze-im-auge-.htmlDer Token-Bilanzwert: -8.18310000000001Der Link:https://www.zeit.de/politik/ausland/2019-01/pedro-sanchez-francisco-franco-ueberreste-exhumierung-spanienDer Token-Bilanzwert: -5.94220000000001Der Link:https://www.zeit.de/kultur/film/2019-01/drogensucht-usa-ben-is-back-beautiful-boy-filmDer Token-Bilanzwert: -4.9446Der Link:https://www.sueddeutsche.de/wissen/plastik-ocean-cleanup-boyan-slat-meere-plastikmuell-mikroplastik-1.4274339Der Token-Bilanzwert: -4.83390000000001Der Link:https://www.welt.de/politik/ausland/article186860772/Viktor-Orban-Angriff-auf-Emmanuel-Macron-Muss-gegen-ihn-kaempfen.htmlDer Token-Bilanzwert: -4.5123Der Link:https://www.faz.net/aktuell/politik/trumps-praesidentschaft/mauer-konflikt-donald-trump-reist-an-grenze-zu-mexiko-15982244.htmlDer Token-Bilanzwert: -3.903Der Link:https://www.zeit.de/politik/ausland/2018-12/suedchinesisches-meer-china-nationalismus-geschichte-narrative-territorialstreit/komplettansichtDer Token-Bilanzwert: -3.8236Der Link:https://www.spektrum.de/news/schneemassen-sorgen-fuer-lawinengefahr/982995Der Token-Bilanzwert: -3.71310000000001Der Link:http://www.spiegel.de/politik/deutschland/andre-poggenburg-tritt-aus-der-afd-aus-a-1247481.htmlDer Token-Bilanzwert: -3.3462Der Link:https://www.zeit.de/politik/ausland/2019-01/weltwirtschaftsforum-davos-donald-trump-absage-haushalt-shutdownDer Token-Bilanzwert: -2.4925Der Link:https://www.welt.de/politik/deutschland/article186855990/Aerzte-ohne-Grenzen-Frau-Merkel-kommen-Sie-nach-Lesbos.htmlDer Token-Bilanzwert: -2.3985Der Link:https://www.sueddeutsche.de/digital/hackerangriff-it-sicherheit-passwoerter-tipps-1.4276393Der Token-Bilanzwert: -2.3186Der Link:https://www.bild.de/video/clip/voice-of-bundesliga/goldrausch-ribery-59471156.bild.htmlDer Token-Bilanzwert: -1.9863Der Link:https://www.welt.de/regionales/hamburg/article186879446/Integration-Ist-die-Wohngebuehr-fuer-Fluechtlinge-rechtswidrig.htmlDer Token-Bilanzwert: -1.388Der Link:https://www.zeit.de/video/2018-08/5825387646001/plastik-im-meer-erst-vergiften-wir-den-ozean-dann-uns-selbstDer Token-Bilanzwert: -1.2214Der Link:https://www.spektrum.de/news/sporthormon-bremst-alzheimersymptome/1617262Der Token-Bilanzwert: -0.9382Der Link:https://www.zeit.de/politik/deutschland/2019-01/einigung-cdu-friedrich-merz-annegret-kramp-karrenbauer-expertenkommissionDer Token-Bilanzwert: -0.0565000000000001Der Link:https://www.bild.de/bild-plus/geld/wirtschaft/politik-inland/flughafen-streik-krasse-gehalts-unterschiede-beim-sicherheitspersonal-59460140,view=conversionToLogin.bild.htmlDer Token-Bilanzwert: 0.1232Der Link:https://www.zeit.de/politik/ausland/2019-01/athen-griechenland-angela-merkel-alexis-tsipras-staatsbesuch-finanzmaerkteDer Token-Bilanzwert: 2.2116Der Link:http://www.spiegel.de/wissenschaft/weltall/schwarze-loecher-wie-schwerkraftmonster-sterne-zerfetzen-a-1247443.htmlDer Token-Bilanzwert: 4.38639999999999Der Link:https://www.spektrum.de/news/radioaktiver-exot-entpuppt-sich-als-neutronenschreck/1617182Der Token-Bilanzwert: 5.2375
Die negativsten Meldungen stehen oben, die positivsten unten - aufsteigend (positiv) sortiert.
Überrascht das Ergebnis jemand/jefraud/jefimd?
Kleine Änderung(en)
my %tokenbilanz;foreach ( @tageslinks ) { ## Token aus Links my $link = $_; chomp $link; my $linktext = `lynx -dump -nolist $link`; $linktext =~ s/\n/ /g; $linktext =~ s/[^a-zA-ZäöüÄÖÜß]+/ /g; $linktext =~ s/[\s]+/ /g; my @token = split ( " ", $linktext ); # print "\nToken:\n\n"; # print map { $_, "\n" } @token; # Token-Werte summieren my $token_sum = 0; foreach ( @token ) { my $token_neg; if ( exists $sent_neg{$_} ) { $token_neg = $sent_neg{$_} } else { $token_neg = 0 } my $token_pos; if ( exists $sent_pos{$_} ) { $token_pos = $sent_pos{$_} } else { $token_pos = 0 } $token_sum = $token_neg + $token_pos + $token_sum; } print "\nDer Link:\n$link\n"; print "Der Token-Bilanzwert: $token_sum\n"; $tokenbilanz{$link} = $token_sum;}print "\nDie Tokenbilanz sortiert:\n\n";foreach ( sort { $tokenbilanz{$a} <=> $tokenbilanz{$b} } keys %tokenbilanz ) { print "\nDer Link:\n$_\n"; print "Der Token-Bilanzwert: $tokenbilanz{$_}\n";}Große Folge(n)!
Die Tokenbilanz sortiert:Der Link:https://www.zeit.de/politik/ausland/2019-01/usa-mexiko-grenze-donald-trump-zahlenDer Token-Bilanzwert: -14.1852Der Link:https://www.welt.de/politik/deutschland/article186885806/AfD-Politiker-Ermittler-wollen-Video-von-Angriff-auf-Magnitz-veroeffentlichen.htmlDer Token-Bilanzwert: -12.1868Der Link:http://www.spiegel.de/wirtschaft/soziales/brexit-in-der-britischen-wirtschaft-waechst-die-nervositaet-a-1229304.htmlDer Token-Bilanzwert: -11.0796Der Link:https://www.welt.de/politik/ausland/article186755418/Festnahme-von-Paul-Whelan-Russland-steckt-in-regelrechtem-Spionagewahn.htmlDer Token-Bilanzwert: -10.8176Der Link:https://www.t-online.de/gesundheit/krankheiten-symptome/id_43998616/wie-gefaehrlich-sind-punkte-und-blitze-im-auge-.htmlDer Token-Bilanzwert: -9.49560000000001Der Link:https://www.welt.de/politik/ausland/article186860772/Viktor-Orban-Angriff-auf-Emmanuel-Macron-Muss-gegen-ihn-kaempfen.htmlDer Token-Bilanzwert: -6.4489Der Link:https://www.zeit.de/politik/ausland/2019-01/pedro-sanchez-francisco-franco-ueberreste-exhumierung-spanienDer Token-Bilanzwert: -6.26450000000001Der Link:https://www.sueddeutsche.de/wissen/plastik-ocean-cleanup-boyan-slat-meere-plastikmuell-mikroplastik-1.4274339Der Token-Bilanzwert: -5.18990000000001Der Link:https://www.zeit.de/politik/ausland/2018-12/suedchinesisches-meer-china-nationalismus-geschichte-narrative-territorialstreit/komplettansichtDer Token-Bilanzwert: -5.00850000000001Der Link:https://www.sueddeutsche.de/digital/hackerangriff-it-sicherheit-passwoerter-tipps-1.4276393Der Token-Bilanzwert: -4.2759Der Link:https://www.zeit.de/politik/ausland/2019-01/weltwirtschaftsforum-davos-donald-trump-absage-haushalt-shutdownDer Token-Bilanzwert: -3.8179Der Link:http://www.spiegel.de/politik/deutschland/andre-poggenburg-tritt-aus-der-afd-aus-a-1247481.htmlDer Token-Bilanzwert: -3.4687Der Link:https://www.spektrum.de/news/schneemassen-sorgen-fuer-lawinengefahr/982995Der Token-Bilanzwert: -3.29960000000001Der Link:https://www.welt.de/regionales/hamburg/article186879446/Integration-Ist-die-Wohngebuehr-fuer-Fluechtlinge-rechtswidrig.htmlDer Token-Bilanzwert: -2.9049Der Link:https://www.bild.de/video/clip/voice-of-bundesliga/goldrausch-ribery-59471156.bild.htmlDer Token-Bilanzwert: -2.8202Der Link:https://www.welt.de/politik/deutschland/article186855990/Aerzte-ohne-Grenzen-Frau-Merkel-kommen-Sie-nach-Lesbos.htmlDer Token-Bilanzwert: -2.6923Der Link:https://www.zeit.de/kultur/film/2019-01/drogensucht-usa-ben-is-back-beautiful-boy-filmDer Token-Bilanzwert: -2.5038Der Link:https://www.spektrum.de/news/sporthormon-bremst-alzheimersymptome/1617262Der Token-Bilanzwert: -1.7951Der Link:https://www.zeit.de/video/2018-08/5825387646001/plastik-im-meer-erst-vergiften-wir-den-ozean-dann-uns-selbstDer Token-Bilanzwert: -0.773Der Link:https://www.zeit.de/politik/deutschland/2019-01/einigung-cdu-friedrich-merz-annegret-kramp-karrenbauer-expertenkommissionDer Token-Bilanzwert: -0.2423Der Link:https://www.bild.de/bild-plus/geld/wirtschaft/politik-inland/flughafen-streik-krasse-gehalts-unterschiede-beim-sicherheitspersonal-59460140,view=conversionToLogin.bild.htmlDer Token-Bilanzwert: -0.2401Der Link:https://www.zeit.de/politik/ausland/2019-01/athen-griechenland-angela-merkel-alexis-tsipras-staatsbesuch-finanzmaerkteDer Token-Bilanzwert: 0.673100000000001Der Link:https://www.spektrum.de/news/radioaktiver-exot-entpuppt-sich-als-neutronenschreck/1617182Der Token-Bilanzwert: 4.403Der Link:http://www.spiegel.de/wissenschaft/weltall/schwarze-loecher-wie-schwerkraftmonster-sterne-zerfetzen-a-1247443.htmlDer Token-Bilanzwert: 5.34749999999999Der Link:https://www.faz.net/aktuell/politik/trumps-praesidentschaft/mauer-konflikt-donald-trump-reist-an-grenze-zu-mexiko-15982244.htmlDer Token-Bilanzwert: 18.7734000000001Zwischenfazit:
Es
sollte klar sein, daß eine solche Vorgehensweise nur eine
Milchmädchen-Sentimentanalyse sein kann. Nicht viel mehr als Spielerei.
Ersehen lässt sich daraus nur, ob im Text enthaltene in den
Sentiment-Tabellen gewichtete Worte das Gesamtgewicht eher negativ oder
positiv beeinflussen (können). Aber durch die Spielerei ist immerhin ein
wenig Vorarbeit geleistet, die es einfacher macht, demnächst klügere,
genauere Sentimentanalysen durchführen zu können.
Kommentare
Kommentar veröffentlichen