Как вы сохраняете текст из файла .txt в массив ячеек в Matlab?

Для этого проекта, который я делаю, мне нужно анализировать твиты со страницы компании в твиттере. Я взял последние тридцать твитов этой компании и поместил их в документ .txt, где каждая строка — это отдельный твит. Я должен хранить все хэштеги в массиве ячеек, а затем распечатывать эти хэштеги в командном окне. (Предполагается, что хэштеги также включают фразу или слова внутри хэштегов. Например, #matlab #programming #stackoverflow.) Я действительно не понимаю, как хранить их в массиве ячеек. Это код, который у меня есть до сих пор. Все, что он делает, это подсчитывает количество хэштегов во всем файле.

%% Collecting the hashtags
fid=fopen('twitter.txt');
hashtag=0
nextLine=(fgetl(fid));
while ischar(nextLine)
if regexp(nextLine,'#')
    hashtag=hashtag+length(regexp(nextLine,'#'));
end
nextLine=(fgetl(fid));
end

Есть ли способ просто взять содержимое файла и сохранить его в массив ячеек с помощью команды, или мне придется вручную скопировать и вставить все содержимое файла во что-то вроде переменной ниже, а затем использовать цикл while, чтобы просто получить доступ к массиву ячеек и использовать fprintf для печати каждого хэштега?

hashtagArray={'#...','#..',..}

person user2971806    schedule 06.12.2013    source источник
comment
Можете ли вы опубликовать пример файла твитов?   -  person chappjc    schedule 06.12.2013
comment
Эй, я пытался опубликовать скриншот твитов, но stackoverflow не позволил мне этого сделать, потому что мне нужно было больше очков опыта или что-то в этом роде. Просто подумайте об этом как о блокноте, где каждому твиту соответствует отдельная строка. Он состоит из 30 строк. Если вы все еще хотели бы увидеть файл, я был бы рад отправить его вам по электронной почте.   -  person user2971806    schedule 06.12.2013


Ответы (1)


Если ваш файл содержит только текст из твитов, загрузите все это в массив ячеек с помощью textscan (проверено со случайным выбором составленных твитов):

fid=fopen('twitter.txt');
C = textscan(fid,'%s');
C = C{1};

C теперь должен быть массивом ячеек слов/хэштегов (разделенных пробелами). Нам нужны только хэштеги:

k = strncmp(C, '#', 1); %looks for those with hash at the #start 
C2 = C(k); 

Примечание. Официально Твиттер считает, что пробел или знак препинания являются концом хэштега (см. этот вопрос/ответ). Таким образом, C2 может содержать что-то вроде #noican't, тогда как Twitter распознает фактический хэштег как #noican.

person nkjt    schedule 06.12.2013