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?
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.
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};
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.
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).
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
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
Einstellungen und Berechtigungen
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
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.