如何将.txt文件中的文本存储到matlab中的单元格数组中?

时间:2013-12-06 06:10:27

标签: arrays matlab twitter hashtag

对于我正在做的这个项目,我必须从公司的推特页面上分析推文。我拿了这家公司的最后三十条推文,然后把它放到.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

有没有办法只获取文件内容并使用命令将其存储到单元格数组中,或者我是否必须手动将文件的整个内容复制并粘贴到下面的变量中,然后使用一段时间循环只是访问单元格数组并使用fprintf打印每个#标签?

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

1 个答案:

答案 0 :(得分:1)

如果您的文件只包含推文中的文字,请将整个内容加载到带有文本扫描的单元格数组中(使用随机选择的推文进行测试):

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

C现在应该是单词/ hashtags的单元格数组(由空格分割)。我们只想要标签:

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

注意:官方Twitter认为空格或标点符号是标签的结尾(请参阅this question/answer)。所以C2可能包含#noican't之类的内容,而Twitter会将实际主题标签识别为#noican。