語彙密度計算ツール
語彙密度は、文章全体のうち、文法的なつながりを作る語ではなく、意味内容を担う語が占める割合を示します。この計算ツールは英語文章を単語に分割し、一般的な機能語と、名詞・動詞・形容詞・副詞と考えられる語を分け、内容語数を総語数で割ります。内訳も表示されるため、算出根拠を確認しながら文章同士を比較できます。
無料で実行
語彙密度から分かること
語彙密度は、文章に情報がどの程度集約されているかを見るための簡潔な指標です。内容語は通常、人、物、動作、性質、状況など、話題の中心を表します。一方、冠詞、代名詞、接続詞、助動詞、前置詞などの機能語は、それらの意味を文法的につなぎます。内容語の割合が高い文章は、簡潔で専門的、または格式のある印象になりやすく、割合が低い文章は、会話的または段階的な説明に向く場合があります。ただし、どちらが常に優れているというものではありません。同じ読者向けの原稿、同じ文書内の節、編集前後の版を比べる際にご利用ください。表示される語数から割合の根拠を確認できますが、数値だけで文章を評価せず、構文、用語、文脈、読者の知識も合わせてご判断ください。
内容語を推定する仕組み
本ツールは英語を対象とした決定的な推定を行い、完全な品詞解析は行いません。Unicodeテキストを正規化し、語中のアポストロフィーを含む英字語を認識して小文字化した後、頻出する英語機能語の固定リストと照合します。リストにある語を機能語、それ以外を内容語候補として数えます。内容語数を総語数で割り、0から1までの比率とパーセントを返します。高速で同じ入力には同じ結果が得られますが、文脈によって品詞が変わる語を完全には判別できません。固有名詞、専門用語、珍しい短縮形、綴り間違いは、多くの場合、内容語として扱われます。単独の数字や句読点は語数に含まれません。比較時は同じ言語を使い、引用や見出しなどの前処理条件も統一してください。
結果の読み方と活用方法
理想のパーセントを先に決めるのではなく、具体的な編集上の疑問から始めてください。段落が重く感じられる場合は、同じ読者向けの分かりやすい段落と比較します。密度が大幅に高ければ、専門用語の集中、説明の圧縮、つなぎ表現の不足が考えられます。要約が曖昧な場合、低い密度は前置きが多く、主題が少ない可能性を示します。短い文章では1語だけでも割合が大きく変わるため、パーセントと語数を併せてご確認ください。語彙密度は、事実の正確さ、一貫性、読みやすさ、構文の複雑さ、語彙の多様性を測るものではありません。同じ内容語を繰り返しても、新しい情報を増やさずに密度を保てます。人による確認や、必要に応じて文長、タイプ・トークン比などと組み合わせてください。APIは1回$0.002で、ブラウザーでは文章を別の場所へ送らずに素早く確認できます。
活用例
学術文書の節を比較
同じ読者向けに書かれた各節の内容語割合を比較し、情報が過度に集中した段落を見つけます。
教材の説明を見直す
編集後に説明の情報密度が変わったかを確認し、学習者が引き続き理解できるかを検討します。
改稿の変化を記録
2つの版の語数とパーセントを記録し、人による文体評価を客観的な数値で補います。
よくある質問
語彙密度の計算式は何ですか?
内容語数を総語数で割ります。さらに、その比率を100倍した値をパーセントとして表示します。
どのような語が内容語ですか?
主に名詞、本動詞、形容詞、副詞と考えられる語です。本ツールでは、固定された英語機能語リストを除外して推定します。
語彙密度は高いほど良いですか?
いいえ。簡潔な専門文には適する場合がありますが、読み手の負担にもなります。目的と対象読者に応じてご判断ください。
完全な品詞解析を行いますか?
いいえ。透明性のある機能語リスト方式を用いるため、文脈で役割が変わる語は正確に分類できない場合があります。
数字は語数に含まれますか?
含まれません。語中のアポストロフィーを含む英字語を数え、単独の数字と句読点は除外します。
APIでの計算料金はいくらですか?
APIリクエスト1回につき$0.002です。外部サービスや言語モデルを使わない決定的な計算です。
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/edu/lexical-density \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"The curious students carefully examined the ancient map in the quiet library."}'const res = await fetch("https://api.kit.forhosting.com/edu/lexical-density", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"text": "The curious students carefully examined the ancient map in the quiet library."
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/edu/lexical-density",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"text": "The curious students carefully examined the ancient map in the quiet library."
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/edu/lexical-density", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"text":"The curious students carefully examined the ancient map in the quiet library."}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"text":"The curious students carefully examined the ancient map in the quiet library."}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/edu/lexical-density", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"text": "The curious students carefully examined the ancient map in the quiet library."
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "edu.lexical_density",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}非同期APIです。task_idは即時に返ります。ポーリングは1秒あたり1リクエストまでです。
料金
単価はすべて公開しています。トークン換算や独自クレジットはありません。失敗したタスクは課金されません。
制限
max_chars | 100000 |
エラー
| HTTP | コード | 意味 |
|---|---|---|
401 | unauthorized | APIキーが無効か、指定されていません。Authorizationヘッダーを確認してください。 |
402 | insufficient_balance | 残高が不足しています。チャージ後に再度お試しください。 |
404 | unknown_type | 指定されたタスクタイプは存在しません。タイプ名を確認してください。 |
429 | rate_limited | リクエストが多すぎます。しばらく待ってから再度お試しください。 |