Возможность применения анализа настроения пользователей Twitter для повышения точности прогноза движения цен инструментов фондового рынка

Особенности фондовой биржи, методы прогнозирования цен. Определение термина "торговая система". Сентиментный анализ сообщений Twitter. Создание словаря классификаций эмоций. Обучение искусственных нейронных сетей, алгоритм однослойного персептрона.

Рубрика Программирование, компьютеры и кибернетика
Вид курсовая работа
Язык русский
Дата добавления 28.12.2015
Размер файла 3,2 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Thu May 28 05:19:37 +0000 2015"RT @SexualGif: a night like this would be chill \ud83c\udf0c\ud83c\udf06\u26fa\ufe0f http:\/\/t.co\/K1wi3WxX8N

Thu May 28 05:19:38 +0000 2015"\u201c@KrisVinesGames: @IonnaMcKenzie Looking good \ud83d\ude09\ud83d\udc4d\u201dthank you\u2764\ufe0f

Thu May 28 05:19:38 +0000 2015"RT @NBA_Skits: Lil B reminding the crowd who owns the cooking dance. \nhttp:\/\/t.co\/uYCPMRmZI5

Thu May 28 05:19:38 +0000 2015"RT @NYTHealth: Strong evidence that treating more people with H.I.V. earlier would save more lives http:\/\/t.co\/WWXqOKQcnh

Thu May 28 05:19:38 +0000 2015"Hi @Harry_Styles!\nI love you so much \ud83d\udc98\nMy birthday is on \nJune 3rd, & \nIt'll mean a lot for your,\nCongratulations! \nx22

Thu May 28 05:19:38 +0000 2015"Girls Who Squat Before And After. http:\/\/t.co\/K52O1EoSAm #Workout #diet #healthy #girls #fitness #fispo http:\/\/t.co\/5ifwaALASD

Thu May 28 05:19:38 +0000 2015"#ChoiceTVChemistry Oliver & Felicity \n#ChoiceTVBreakOutStar Emily Bett Rickards & Carlos Valdes #ChoiceSciFiTVShow Arrow \n#TeenChoice 14

Thu May 28 05:19:38 +0000 2015"#NowPlaying \My Ghost\" Glass Pear da Streets Of Love \u266b http:\/\/t.co\/g1QmoTHs6m"

Thu May 28 05:19:38 +0000 2015"Stalkistice Yo

Thu May 28 05:19:38 +0000 2015"RT @femaIes: this just kills me... http:\/\/t.co\/9TznSdRRvH

Thu May 28 05:19:38 +0000 2015"@DMartinez_04 lol I passed all my classes though \ud83d\ude02\ud83d\ude02\ud83d\ude02

Thu May 28 05:19:38 +0000 2015"Translates into 8 out of 10 days of pure profits! http:\/\/t.co\/QCPqAe1qTm #binarytradingoptions

Thu May 28 05:19:38 +0000 2015"76 My #TeenChoice nominee for #ChoiceMusicNextBigThing is Zayn Malik http:\/\/t.co\/e2iBEv1S90

Thu May 28 05:19:38 +0000 2015"RT @LOHANTHONY: bye dana :( keep the east coast warm and fabulous for me. never not all smiles when i'm around this\u2026 https:\/\/t.co\/9m3fNWYL5u

Thu May 28 05:19:38 +0000 2015"Let's be honest, everyone was watching Riley Curry during that press conference. #RileyCurry #toocute

Thu May 28 05:19:38 +0000 2015"I just wanna cuddle

Приложение 2

В приложении подробно описана реализация программы сентиментного анализа твиттов. Программа написана на языке С.

#pragma warning(disable: 4996)

#include <string.h>

#include <stdio.h>

using namespace std;

//////////////////////////главная функция//////////////////////////

int main()

{

int* semant_func(char*);

FILE *fin;

FILE *fout;

char arr[2000];

char date[10], tmp_date[10];

char time[2], tmp_time[2];

char *tweet;

int flag = 0;

int total_freq=0;

float temp;

int flag_time = 0;

int* result;

int result2[8] = { 0, 0, 0, 0, 0, 0, 0, 0 };

int n = 0;

fin = fopen("Sentiment_Input_29_05.txt", "r"); ////входной файл

fout = fopen("Sentiment_Output_29_05.txt", "w"); ////////////выходной файл

while (fgets(arr, 2000, fin) != NULL){

for (int i = 0; i < 10; i++) {

tmp_date[i] = arr[i];

}

for (int j = 0; j < 2; j++){

tmp_time[j] = arr[11 + j];

}

tweet = &arr[31];

if (flag == 0) {

for (int i = 0; i < 10; i++) { date[i] = tmp_date[i]; fprintf(fout, "%c", date[i]); }

fprintf(fout, "\n");

fprintf(fout, "\ntime: ");

for (int j = 0; j < 2; j++){

time[j] = tmp_time[j];

fprintf(fout, "%c", time[j]);

}

//fprintf(fout, "\n");

flag = 10;

}

for (int i = 0; i < 10; i++){

if (date[i] != tmp_date[i]){

date[i] = tmp_date[i];

fprintf(fout, "%c", date[i]);

for (int i = 0; i < 8; i++){

result2[i] = 0;

}

}

}

result = semant_func(tweet);//////вызов функции ///сентиментного анализа

for (int i = 0; i < 8; i++){

result2[i] = result2[i] + result[i];

}///-----

for (int j = 0; j < 2; j++){

if (time[j] != tmp_time[j]){

time[j] = tmp_time[j];

flag_time = 1;

}

}

if ((flag_time == 1)){

fprintf(fout, "\nfrequencies: ");/////////вывод частот

for (int y = 0; y < 8; y++) {

fprintf(fout, " %d ", result2[y]);

total_freq = total_freq + result2[y];

}

fprintf(fout, "\nnormalized_frequencies: ");

//вывод нормализованных частот

if (total_freq != 0){

for (int y = 0; y < 8; y++) {

temp = result2[y];

temp = (temp / total_freq);

fprintf(fout, " %f ", temp);

}

}

fprintf(fout, "\ntime: ");

for (int j = 0; j < 2; j++){

fprintf(fout, "%c", time[j]);

}

for (int y = 0; y < 8; y++) {

total_freq = result2[y] = 0;

}

flag_time = 0;

flag = 1;

}

}

fprintf(fout, "\nfrequencies: ");

for (int y = 0; y < 8; y++) {

fprintf(fout, " %d ", result2[y]);

total_freq = total_freq + result2[y];

}

fprintf(fout, "\nnormalized_frequencies: ");

if (total_freq != 0){

for (int y = 0; y < 8; y++) {

temp = result2[y];

temp = (temp / total_freq);

fprintf(fout, " %f ", temp);

}

}

fclose(fin);

fclose(fout);

return 0;

}

//////////////////функция сентиментного анализа//////////////////

int* semant_func(char* message){

int freq_arr[8] = { 0,0,0,0,0,0,0,0 };

char* emotions8[8] = { "happy", "loving", "calm", "energetic", "fearful/anxious", "angry", "tired", "sad"};

//freq_arr[0] = "happy"

char* happy[20] = {"happy", "lovely", "felicitous", "glad", "well - chosen", "blessed", "blissful", "bright", "golden", "halcyon", "prosperous", "laughing", "riant", "fortunate", "willing","adorable", "endearing", "beautiful", "lovable", "loveable"};

//freq_arr[1] = "loving"

char* loving [31] = { "loving", "caring", "adoring", "doting", "fond", "affectionate", "fond", "lovesome", "tender", "amative", "amorous", "amatory", "romantic", "attached", "captivated", "charmed", "enamored", "infatuated", "in love", "potty", "smitten", "soft on", "taken with", "idolatrous", "loverlike", "loverly", "overfond", "tenderhearted", "touchy - feely", "uxorious","compassionate"};

//freq_arr[2] = "calm"

char* calm [19]= { "calm", "content", "unagitated", "serene", "tranquil", "composed", "placid", "quiet", "still", "smooth", "unruffled", "settled", "windless",

"contented", "complacent", "self - satisfied", "self - complacent", "satisfied", "smug"};

//freq_arr[3] = "energetic"

char* energetic [47]= { "active", "peppy", "combat - ready", "fighting", "participating", "alive", "dynamic", "progressive", "operational", "activist", "activistic", "hands - on", "proactive", "involved", "about", "astir", "acrobatic", "athletic", "gymnastic", "agile", "nimble", "quick", "spry", "hot", "hyperactive", "overactive", "on the go", "sporty", "activated", "counteractive", "surface - active", "brisk", "bustling", "busy", "going", "open", "springy", "existent", "existing", "alive", "live", "eruptive", "activated",

"bouncing", "bouncy", "spirited", "zippy"};

//freq_arr[4] = "fearful/anxious"

char* fearful[23] = { "jittery", "nervous", "edgy", "high - strung", "highly strung", "jumpy", "nervy", "overstrung", "restive", "uptight", "tense",

"anxious", "queasy", "uneasy", "unquiet", "neural", "aflutter", "skittish", "flighty", "spooky", "troubled", "excited", "excitable"};

//freq_arr[5] = "angry"

char* angry[14] = { "grouchy", "fed up", "crabbed", "crabby", "cross", "fussy", "grumpy", "bad - tempered", "ill - tempered", "ill - natured",

"disgusted", "sick", "tired of", "displeased"};

//freq_arr[6] = "tired"

char* tired [60]= { "tired", "drowsy", "banal", "commonplace", "hackneyed", "old - hat", "shopworn", "stock", "threadbare", "timeworn", "trite", "well - worn", "all in", "beat", "bushed", "dead", "aweary", "weary", "bleary", "blear", "bleary - eyed", "blear - eyed", "bored", "world - weary", "burned - out", "burnt - out", "careworn", "drawn", "haggard", "raddled", "worn", "drooping", "flagging", "exhausted", "dog - tired", "fagged", "fatigued", "played out", "spent", "washed - out", "worn - out", "worn out", "gone", "footsore", "jaded", "wearied", "knackered", "drained", "ragged", "travel - worn", "unrefreshed", "unrested", "whacked", "unoriginal",

"drowsing", "dozy", "oscitant", "yawning", "asleep", "inattentive"};

//freq_arr[6] = "sad"

char* sad [45]= { "gloomy", "sad", "glooming", "gloomful", "sulky", "grim", "blue", "depressed", "dispirited", "down", "downcast", "downhearted", "low", "low-spirited", "blue", "dark", "dingy", "disconsolate", "dismal", "grim", "sorry", "drab", "drear", "dreary", "dejected", "depressing", "cheerless", "uncheerful",

"deplorable", "distressing", "lamentable", "pitiful", "sorry", "bittersweet", "doleful", "mournful", "heavyhearted", "pensive", "wistful", "tragic", "tragical", "tragicomic", "tragicomical", "sorrowful", "bad"};

int length_arr[8] = {20,31,19,47,23,14,60,45};

for (int i = 0; i < length_arr[0]; i++){

if (strstr(message, happy[i]) != NULL){

freq_arr[0] = freq_arr[0] + 1;

}

}

for (int i = 0; i < length_arr[1]; i++){

if (strstr(message, loving[i]) != NULL){

freq_arr[1] = freq_arr[1] + 1;

}

}

for (int i = 0; i < length_arr[2]; i++){

if (strstr(message, calm[i]) != NULL){

freq_arr[2] = freq_arr[2] + 1;

}

}

for (int i = 0; i < length_arr[3]; i++){

if (strstr(message, energetic[i]) != NULL){

freq_arr[3] = freq_arr[3] + 1;

}

}

for (int i = 0; i < length_arr[4]; i++){

if (strstr(message, fearful[i]) != NULL){

freq_arr[4] = freq_arr[4] + 1;

}

}

for (int i = 0; i < length_arr[5]; i++){

if (strstr(message, angry[i]) != NULL){

freq_arr[5] = freq_arr[5] + 1;

}

}

for (int i = 0; i < length_arr[6]; i++){

if (strstr(message, tired[i]) != NULL){

freq_arr[6] = freq_arr[6] + 1;

}

}

for (int i = 0; i < length_arr[7]; i++){

if (strstr(message, sad[i]) != NULL){

freq_arr[7] = freq_arr[7] + 1;

}

}

return freq_arr;

}

Размещено на Allbest.ru


Подобные документы

  • Історія виникнення соціальної мережі коротких повідомлень "Twitter". Використання її в Україні. Користувальницький інтерфейс програми та його основні можливості. Створення особливого сленгу та приклади його застосування. Використання різних девайсів.

    реферат [11,8 K], добавлен 18.10.2014

  • Рост активности в области теории и технической реализации искусственных нейронных сетей. Основные архитектуры нейронных сетей, их общие и функциональные свойства и наиболее распространенные алгоритмы обучения. Решение проблемы мертвых нейронов.

    реферат [347,6 K], добавлен 17.12.2011

  • Анализ применения нейронных сетей для прогнозирования ситуации и принятия решений на фондовом рынке с помощью программного пакета моделирования нейронных сетей Trajan 3.0. Преобразование первичных данных, таблиц. Эргономическая оценка программы.

    дипломная работа [3,8 M], добавлен 27.06.2011

  • Диагностический анализ изучения алгоритмов обучения нейронных сетей "с учителем". Сбор входных и выходных переменных для наблюдений и понятие пре/пост процессирования. Подготовка и обобщение многослойного персептрона, модель обратного распространения.

    курсовая работа [249,3 K], добавлен 22.06.2011

  • Нейронные сети как средство анализа процесса продаж мобильных телефонов. Автоматизированные решения на основе технологии нейронных сетей. Разработка программы прогнозирования оптово-розничных продаж мобильных телефонов на основе нейронных сетей.

    дипломная работа [4,6 M], добавлен 22.09.2011

  • История возникновения, примеры использования и основные виды искусственных нейронных сетей. Анализ задач, решаемых при помощи Персептрона Розенблатта, создание схемы имитационной модели в среде Delphi. Исходные коды компьютерной программы Perseptron.

    дипломная работа [933,1 K], добавлен 18.12.2011

  • Задача анализа деловой активности, факторы, влияющие на принятие решений. Современные информационные технологии и нейронные сети: принципы их работы. Исследование применения нейронных сетей в задачах прогнозирования финансовых ситуаций и принятия решений.

    дипломная работа [955,3 K], добавлен 06.11.2011

  • Искусственные нейронные сети как одна из широко известных и используемых моделей машинного обучения. Знакомство с особенностями разработки системы распознавания изображений на основе аппарата искусственных нейронных сетей. Анализ типов машинного обучения.

    дипломная работа [1,8 M], добавлен 08.02.2017

  • Сущность и функции искусственных нейронных сетей (ИНС), их классификация. Структурные элементы искусственного нейрона. Различия между ИНС и машинами с архитектурой фон Неймана. Построение и обучение данных сетей, области и перспективы их применения.

    презентация [1,4 M], добавлен 14.10.2013

  • Математическая модель искусственной нейронной сети. Структура многослойного персептрона. Обучение без учителя, методом соревнования. Правило коррекции по ошибке. Метод Хэбба. Генетический алгоритм. Применение нейронных сетей для синтеза регуляторов.

    дипломная работа [1,5 M], добавлен 17.09.2013

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.