我有一个推文文件,我已经使用dataread
读入了matlab,我将每行存储到一个30x1的单元格中。我想知道是否有一个拿出每个#标签并将它们存储在自己的单元格中然后找到标签的平均长度?任何帮助将不胜感激。
答案 0 :(得分:2)
我认为,您的regexp
电话有正确的想法。我将澄清一些事情。如果你想要推文中每个主题标签中的文字,你可以使用正则表达式搜索英镑符号(#)并包括之后的每个字符,直到你到达单词的结尾,例如。
text = '#this #is a #test';
regexpi(lines,'\<#[a-z0-9_]*\>','match');
ans =
'#this' '#is' '#test'
其中regexpi
是不区分大小写的正则表达式,正则表达式搜索“#”后跟任意数量的字母,数字或下划线(我相信是有效的#标签字符)。 'match'标志使regexp
函数返回实际匹配。
如果您不想在最终文本中使用实际的主题标签,则可以使用正则表达式后台仅返回文本。例如:
regexpi(lines,'\<(?<=#)[a-z0-9_]*\>','match')
ans =
'this' 'is' 'test'
我认为,从技术上讲,标签必须以字母开头,因此这个正则表达式会返回可能无效的主题标签。不过要解决这个问题并不困难。