ユニーク単語数カウンター
13語のうち異なる語が9語の文なら、繰り返しは4語で、異なり語の比率は9/13です。総語数や繰り返し語数とあわせて、語彙の豊かさと単なる水増しを見分けられます。ブラウザで無料で使えます。
- 無料
- ブラウザで動作
- 登録不要
- データは端末の外に出ません
無料で実行
書き手・教員・語学学習者は、単なる語数より鋭い問いをしばしば持ちます。すなわち、この文章のうちどれだけが新しい語彙で、どれだけが使い回しの表現か、という点です。段落が長く見えても同じ語の繰り返しばかりのこともあれば、短くても多様な語を詰め込んでいることもあります。本ユニーク単語数カウンターは Unicode 対応の規則でテキストをトークン化し、語の出現を数え、任意の大文字小文字無視方針の下で何個が区別できるかを数え、その差を反復出現と明瞭な比率として報告します。総語数・ユニーク語数・反復語数、古典的なユニーク比(type-token ratio)、相補の反復比、反復がある場合はユニーク対反復の比が表示されます。
ユニーク語数と総語数が測るもの
総語数は、ある文章がトークンとしてどれだけ長いかを答えます。ユニーク語数は、重複をまとめた後の語彙がどれだけ広いかを答えます。この二つの差が反復出現の数です。
比が 1 に近いほど、ほぼ各トークンが新しい型を導入し、0 に近いほど小さな語彙の強い再利用を意味します。相補の反復比はその分数を 1 から引いたもので、流れのうちどれだけがリサイクルかを示します。新しい語を足すと増え、同じ語で水増しすると減る単一指標が欲しい場合に有用です。
これらの指標は単独で品質を判定しません。技術文書は定義済み用語を正当に繰り返し得ますし、詩はリフレインを倹約的に使い得ます。それでも教室・編集チェックリスト・自動ダッシュボードが手計算の語数をめぐって争わずに草稿を比較できる、再現可能な数値基準を与えます。
ユニーク単語数カウンターが役立つ場面
国語・言語芸術の教室では、学習者が初稿と改稿を比較し、多様性へのフィードバックが単に長い作文ではなく高いユニーク比として表れるかを確認します。第二言語としての英語プログラムは、次単元に進む前に自由作文サンプルで一定のユニーク比以上といった単純な目標を置きます。
コンテンツチームと SEO 編集者はキーワードスタッフィングの恐れがある商品ページやブログを点検します。総語が増えてもユニーク比が崩れると、スペルチェックが通っていても空洞な反復の兆候になり得ます。小さなコーパスを構築する研究者は、本格的な NLP スタックなしで type-token 風の決定論的スナップショットを必要とします。
この parse ティア A 経路はモデルも外向きネットワークも使いません。検証失敗は残高を消費しません。
活用例
作文の語彙セルフチェック
学習者は下書きを貼り付け、提出前に総語数・区別語数・ユニーク比を確認します。
よくある質問
タイプトークン比とは何ですか?
異なり語数を総語数で割った値です。1に近いほどほぼすべての語が新しく、0に近いほど少ない語彙を何度も使っていることを示します。13語中9語が異なる文では9/13です。
大文字のHelloと小文字のhelloは同じ語として数えますか?
初期設定では同じ語として数えます。大文字と小文字を区別する設定に切り替えると、2つの別々の語として数えます。
アポストロフィやハイフンを含む語はどう数えますか?
1語として数えます。語の内側にあるアポストロフィやハイフンは語をつなげたままにするためです。文字と数字が語になり、句読点や空白だけの部分は数えません。
比率が低いと文章の質が悪いということですか?
それだけでは判断できません。技術文書は定義した用語を意図的に繰り返し、詩はリフレインを使います。同じ数え方で比べた2つの下書きの比較や、同じキーワードを詰め込んだページの発見に役立ちます。
関連ツール
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/edu/unique-words-count \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"The quick brown fox jumps over the lazy dog. The fox is quick!"}'const res = await fetch("https://api.kit.forhosting.com/edu/unique-words-count", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"text": "The quick brown fox jumps over the lazy dog. The fox is quick!"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/edu/unique-words-count",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"text": "The quick brown fox jumps over the lazy dog. The fox is quick!"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/edu/unique-words-count", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"text":"The quick brown fox jumps over the lazy dog. The fox is quick!"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"text":"The quick brown fox jumps over the lazy dog. The fox is quick!"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/edu/unique-words-count", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"text": "The quick brown fox jumps over the lazy dog. The fox is quick!"
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "edu.unique_words_count",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}非同期APIです。task_idは即時に返ります。ポーリングは1秒あたり1リクエストまでです。
料金
単価はすべて公開しています。トークン換算や独自クレジットはありません。失敗したタスクは課金されません。
エラー
| HTTP | コード | 意味 |
|---|---|---|
401 | unauthorized | APIキーが無効か、指定されていません。Authorizationヘッダーを確認してください。 |
402 | insufficient_balance | 残高が不足しています。チャージ後に再度お試しください。 |
404 | unknown_type | 指定されたタスクタイプは存在しません。タイプ名を確認してください。 |
429 | rate_limited | リクエストが多すぎます。しばらく待ってから再度お試しください。 |
技術的な注記
学習者は作文の語彙多様性を測り、編集者は公開前に薄い語彙を検知し、チューターや LMS は同じ決定論的契約を呼ぶため、無料ブラウザ確認と有料 API 経路がバイト単位で一致します。
ユニーク語数と総語数が測るもの
語が最初の出現の後に再び現れるたび、その余分なトークンは repeated_words に加わり、unique_words は増えません。unique_words を total_words で割るとユニーク比になり、コーパス言語学では提出されたサンプルの type-token ratio として知られます。反復が少なくとも一つあるとき、unique_to_repeated_ratio は語彙サイズと余分な出現量を比較します。
入力契約・トークン化・応答の形
大文字小文字を分けたいときは false にしてください。トークン化は Unicode の文字と数字を保持し、省略形やハイフン複合語が一つのトークンのまま残るよう任意の内部アポストロフィやハイフンも含み、純粋な句読点と空白は無視します。例:The quick brown fox jumps over the lazy dog.The fox is quick!は大文字小文字無視モードで 13 トークン・9 ユニーク型となり、反復は 4、ユニーク比は 9/13 です。より豊かな散文分析が必要なら、ご自身の読みやすさや学年水準ツールと組み合わせてください。必須フィールド text(空でない文字列)を含む JSON 本体を POST してください。フォームや SDK が慣れたラベルを保てるよう、エイリアス input・value・s・content・body を受け付けます。任意の case_insensitive は既定 true なので、Hello と hello は一つの語彙項目として数えられます。エイリアス ignore_case・ci・casefold は同じフラグに対応し、true・false・1・0 などの一般的な形も受けます。空文字列・text 欠落・文字列以外の text・文字も数字もない文字列は invalid_input で失敗し、課金されません。repeated_words が 0 より大きいときは unique_to_repeated_ratio も含まれ、すべてのトークンがユニークなときは null ではなくフィールド自体が省略されます。本エンドポイントは区別語と総語の算術のみに焦点を当てます。
ユニーク単語数カウンターが役立つ場面
成功した各呼び出しは公開された基本価格 $0.002 です。関心のある箇所にリクエストを絞り、丸めた比率をテストに固定すれば、宿題・編集ゲート・エッジワーカー向けに再現可能な語彙多様性の数値が得られ、自前の言語学パイプラインを立てる必要はありません。
連携の活用例
編集上の反復レビュー
編集者は改訂間で unique_to_repeated_ratio を比較し、同じ語の再利用だけで伸びる薄い表現を検知します。
LMS・チュータリングの一括採点
プラットフォームは多数の短い回答に API を呼び、無料ウィジェットと同じ数値で語彙の多様性を報告します。
技術的な質問
ユニーク単語数カウンターの仕組みは?
空でないテキストを Unicode 語トークンに分割し、総トークンと区別型を数え(既定は大文字小文字無視)、total から unique を引いた repeated_words に加え unique_ratio・repeated_ratio、該当時は unique_to_repeated_ratio を返します。
unique_ratio とは何ですか?
unique_ratio は unique_words を total_words で割った値で、小数六桁に丸めます。サンプルの type-token ratio です。1 に近いほど多様、0 に近いほど反復が多いです。
Hello と hello は同じ一語ですか?
既定でははい(case_insensitive true)。大文字小文字を分けた数え方が必要なら case_insensitive を false にしてください。
空テキストや句読点のみの場合は?
空文字列および文字・数字トークンのないテキストは invalid_input で失敗し、課金されません。少なくとも一つの語トークンを指定してください。
ユニーク単語数カウンターの料金は?
ブラウザ版は無料です。API リクエストは成功した呼び出しごとに前払い KIT 残高から $0.002 です。無効な入力は課金されません。