長いパラグラフがあり、どの単語が最も多く含まれているか知りたいです。誰かがこれで私を正しい方向に向けてもらえますか? 例と説明は役に立ちます。ありがとう!
質問する
1765 次
2 に答える
5
これは非常に MATLAB-y な方法です。変数に明確な名前を付けようとしました。各行を試し、結果を調べて、それがどのように機能するかを理解してください。主力機能:unique
およびhist
% First produce a cell array of words to be analyzed
paragraph_cleaned_up_whitespace = regexprep(paragraph, '\s', ' ');
paragraph_cleaned_up = regexprep(paragraph_cleaned_up_whitespace, '[^a-zA-Z0-9 ]', '');
words = regexpi(paragraph_cleaned_up, '\s+', 'split');
[unique_words, i, j] = unique(words);
frequency_count = hist(j, 1:max(j));
[~, sorted_locations] = sort(frequency_count);
sorted_locations = fliplr(sorted_locations);
words_sorted_by_frequency = unique_words(sorted_locations).';
frequency_of_those_words = frequency_count(sorted_locations).';
于 2012-11-27T21:05:32.397 に答える
2
これは簡単な解決策であり、非常に高速です。
example_paragraph = 'This is an example corpus. Is is a verb?';
words = regexp(example_paragraph, ' ', 'split');
vocabulary = unique(words);
n = length(vocabulary);
counts = zeros(n, 1);
for i=1:n
counts(i) = sum(strcmpi(words, vocabulary{i}));
end
[frequency_of_the_most_frequent_word, idx] = max(counts);
most_frequent_word = vocabulary{idx};
単語の配列から最も頻繁に使用される単語を取得するための回答もここで確認できます。
于 2012-11-27T22:06:04.933 に答える