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