テキストのキーワード頻度と密度を分析
任意のテキストのキーワード頻度と密度を分析します。単語頻度の抽出方法、キーワード密度のパーセンテージ計算、SEOとコンテンツ最適化のための最頻出語の特定方法を学びます。
詳細な説明
キーワード頻度分析
キーワード頻度分析は、テキスト内で各単語やフレーズが何回出現するかを数えます。SEO、コンテンツ最適化、自然言語処理(NLP)の基本的な手法です。
基本的な単語頻度
最もシンプルな頻度カウンターはテキストをトークン化して出現回数を集計します:
function getWordFrequency(text) {
const words = text.toLowerCase().split(/\s+/);
const freq = {};
for (const word of words) {
const clean = word.replace(/[^a-z0-9'-]/g, "");
if (clean) freq[clean] = (freq[clean] || 0) + 1;
}
return freq;
}
大文字小文字を区別しない比較のために小文字に変換し、句読点を除去し(複合語と短縮形のためにハイフンとアポストロフィは保持)、頻度マップを構築します。
キーワード密度
キーワード密度は、特定のキーワードが総単語数に占める割合です:
density = (keyword_count / total_words) * 100
SEOでは、ターゲットキーワード密度は通常**1%〜3%**です。1%未満は最適化不足を示す可能性があり、3%を超えるとキーワードスタッフィングとしてフラグされるリスクがあります。
N-gram分析
単一単語の頻度では複数単語のフレーズを見逃します。N-gram分析はN個の連続する単語のシーケンスを抽出します:
function getNgrams(words, n) {
const ngrams = {};
for (let i = 0; i <= words.length - n; i++) {
const gram = words.slice(i, i + n).join(" ");
ngrams[gram] = (ngrams[gram] || 0) + 1;
}
return ngrams;
}
バイグラム(n=2)は「machine learning」や「best practices」のようなフレーズを捕捉します。トライグラム(n=3)は「search engine optimization」のような長いフレーズを見つけます。
ストップワードのフィルタリング
「the」「is」「and」のような高頻度単語は生の頻度カウントを支配しますが、意味はほとんどありません。ストップワードをフィルタリングすることで、実際のコンテンツキーワードが明らかになります。
TF-IDF:生の頻度を超えて
ドキュメント間でキーワードの重要性を比較するために、TF-IDF(Term Frequency-Inverse Document Frequency)は、あるドキュメント内の単語の頻度を、すべてのドキュメント全体でその単語がどれだけ一般的かで重み付けします。あるドキュメントで頻繁に出現するが他のドキュメントではまれな単語が最も高いスコアを得ます。
ユースケース
SEO専門家はキーワード頻度分析を使用して、スタッフィングなしにターゲット検索語句のコンテンツを最適化します。コンテンツマーケターは使いすぎの単語を特定してバリエーションを改善し、学術研究者はテキストコーパスを分析して支配的なテーマと用語パターンを発見します。