如何在文本中过滤常用词并在matlab中省略非常用词

时间:2015-02-24 15:56:04

标签: matlab

我正在从文本文件中提取单词以及基于出现的文本中的频率,我将使用以下语句获得所有单词以及频率:

freq = [num2cell(counts.') words.']

但是这个语句输出所有带有频率(计数)的单词,如下所示:

[1]    '1980s'         
[1]    '1993'          
[2]    'AI'            
[1]    'After'         
[1]    'And'           
[1]    'Another'       
[1]    'Artificial'    
[1]    'Ask'           
[1]    'Asked'         
[2]    'Ballmer'       
[8]    'Bayesian' 

我想要做的只是显示频率大于或等于3的单词,如下所示: [8]'贝叶斯' 任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:1)

绝对没有理由让counts成为一个单元格数组。只需使用它来确定那些>= 3的计数,然后将其编入您的words数组:

out_words = words(counts >= 3);

out_words应包含计数为>= 3的字词。

但是,如果您还希望显示单词旁边的频率,例如您在帖子中显示的频率,只需找到>= 3的位置,然后将countswords

ind = counts >= 3;
freqs = [num2cell(counts(ind).') words(ind).']