WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Twitter Sentiment Analyse

 

matlab53
Forum-Anfänger

Forum-Anfänger


Beiträge: 10
Anmeldedatum: 06.11.15
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 03.01.2016, 14:19     Titel: Twitter Sentiment Analyse
  Antworten mit Zitat      
Hallo zusammen,

ich sitze gerade an einem Projekt, bei dem u.a. Sentiment Scores von Twitter Tweets berechnet werden sollen. Hierzu habe ich bereits alle erforderlichen Tweets heruntergeladen (in JSON Format) und suche nun nach einem einfachen Weg diese mit unterschiedlichen Libraries abzugleichen um auf den Sentiment Score zu kommen. Hat hierbei jemand einen Tipp parat wie ich am besten vorgehen sollte?

Bester Gruß
Private Nachricht senden Benutzer-Profile anzeigen


Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 03.01.2016, 16:10     Titel: Re: Twitter Sentiment Analyse
  Antworten mit Zitat      
Hallo matlab53,

Was bedeutet denn "mit unterschiedlichen Libraries abzugleichen"?

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
matlab53
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 10
Anmeldedatum: 06.11.15
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 04.01.2016, 20:35     Titel:
  Antworten mit Zitat      
Also im Grunde möchte ich verschiedene Sätze mit einer Wörterliste abgleichen und die dort enthaltenen Werte für jeden Satz aufsummieren. Hierzu ein kurzes Beispiel:

s = 'I like the company because of its outstanding balance sheet'

meine Wörterliste:

like +2
bad -3
outstanding +4
normal 0
....

Hierbei sollte Für den Beispielsatz ein Sentiment Score von +6 als Ergebnis angezeigt werden.
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.499
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 04.01.2016, 20:57     Titel:
  Antworten mit Zitat      
Hallo,

wie üblich die Frage: was hast du bereits versucht, und welche Probleme sind aufgetreten?

Hier ein einfaches Beispiel. Wenn die Daten in einem anderen Format vorliegen oder du gar Probleme hast, die Daten in MATLAB zu importieren, dann müsstest du die Frage präzisieren.

Code:
s = 'I like the company because of its outstanding balance sheet' ;
content = textscan(s, '%s');
content = content{1};

keys = {'like', 'bad', 'outstanding', 'normal'};
values = [2, -3, +4, 0];
m = containers.Map(keys, values)
cellfun(@(c) m(c), content, 'ErrorHandler', @(~, ~) 0)


Bei großen Datenmengen empfiehlt es sich auch, auf Effizienz zu achten. Darauf habe ich hier keinen besonderen Wert gelegt.

Ach ja: bitte nächstes Mal die Beispieldaten in einem leicht kopierbaren Format zur Verfügung stellen. Ich habe fast genausoviel Zeit mit der Eingabe der Daten verbracht wie mit der Eingabe des Codes.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
matlab53
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 10
Anmeldedatum: 06.11.15
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 04.01.2016, 23:03     Titel:
  Antworten mit Zitat      
Vielen Dank, das war schonmal hilfreich. Allerdings bekomme ich jetzt nicht das aufsummierte Ergebnis, sondern nur den entsprechenden Wert jedes Wortes einzeln. Die Map (m) enthält nur die Infos über die Anzahl der gefundenen Ergebnissen. Ich hätte gerne für den Satz die aufsummierten Werte (also in meinem Fall: 6).

Vielen Dank im Voraus.

Viele Grüße,
Markus
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.499
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 04.01.2016, 23:39     Titel:
  Antworten mit Zitat      
Hallo,

wie wäre es, dann sum auf das Ergebnis anzuwenden?

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
matlab53
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 10
Anmeldedatum: 06.11.15
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 04.01.2016, 23:50     Titel:
  Antworten mit Zitat      
Code:

s = 'I like the company because of its outstanding balance sheet normal' ;
content = textscan(s, '%s');
content = content{1};
keys = {'like', 'outstanding', 'normal'};
values = [2, +4, 1];
m = containers.Map(keys, values)
cellfun(@(c) m(c), content, 'ErrorHandler', @(~, ~) 0)
sum(m)
 


Das funktioniert leider nicht
>> Undefined function 'sum' for input arguments of type 'containers.Map'.

Oder wie genau meinst du:
Zitat:
wie wäre es, dann sum auf das Ergebnis anzuwenden?


Entschuldige die vielleicht "dummen" Fragen, aber ich bin echt erst sehr frisch dabei!

Grüße
Markus
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.499
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 05.01.2016, 01:18     Titel:
  Antworten mit Zitat      
Hallo,

auf das Ergebnis, nicht auf den Container.
Code:
sum( cellfun(@(c) m(c), content, 'ErrorHandler', @(~, ~) 0) )


Ich würde eine systematische Einarbeitung empfehlen, z.B. mit MATLAB Onramp:
https://matlabacademy.mathworks.com/

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
matlab53
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 10
Anmeldedatum: 06.11.15
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 06.01.2016, 10:23     Titel:
  Antworten mit Zitat      
Dann sag ich an dieser Stelle schon mal herzlichen Dank für die super Hilfe!
Ich bin schon dabei zahlreiche Einführungen zu machen. Jedoch hätte ich noch eine letzte Frage. Ich habe meine Sätze die ich gescannt haben möchte im cell array "news.statuses.text") gespeichert. Meine keys habe ich aus einer excel Datei eingelesen, genauso wie die dazugehörigen values. Ich habe nun meines Erachtens deine beschriebene Vorgehensweise eins zu eins auf mein Problem angewendet, jedoch bekomme ich nun eine Fehlermeldung
Zitat:
Cell contents reference from a non-cell array object.
und weiß nicht genau woran es liegt.

Code:
words = fopen('keys.csv');
w = textscan(words, '%s', 'delimiter', sprintf('\n'));
w = w{1}';
wordScores = csvread('values.csv')';
companies = {}
companyNews = {}

%for k=1:length(news)
for k=1:5
    companies{end+1} = news{k};
    %for x=1:length(news{k}.statuses)
    for x=1:4
        companyNews{end+1} = companies{k}.statuses{x}.text;
        content = textscan(companyNews{x}, '%s');
        content = content{1};
    end
    for y=1:length(w)
       keys{end+1} = w{y};
    end
    for z=1:length(wordScores)
       values={values,wordScores{z}};
    end
    m = containers.Map(keys, values)
    sum(cellfun(@(c) m(c), content, 'ErrorHandler', @(~, ~) 0))
    companies{k} = setfield(companies{k},'score', m);
end


Noch einmal vielen Dank für die Hilfe,
Grüße Markus
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.499
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 06.01.2016, 11:12     Titel:
  Antworten mit Zitat      
Hallo,

es wäre hilfreich, wenn du wenigstens auch die Zeile angibst, die den Fehler wirft.
Auch der Debugger sollte hilfreich bei der Fehlersuche sein.

Gegenwärtig landet jedenfalls die gesuchte Summe in einer Variable ans und wird nicht weiterverwendet. Du solltest das Ergebnis explizit einer Variable zuweisen, wenn du es weiterverwenden möchtest.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum posten
Du kannst Dateien in diesem Forum herunterladen
.





 Impressum  | Nutzungsbedingungen  | Datenschutz | FAQ | goMatlab RSS Button RSS

Hosted by:


Copyright © 2007 - 2025 goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks

MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.