タイプ・トークン比で語彙の多様性を計算
タイプ・トークン比計算ツールは、文章に含まれる異なる語の種類数を全トークン数で割り、語彙の多様性を測定します。散文、文字起こし、作文などを貼り付けると、計算の根拠となる件数と、ゼロから一までの再現可能な比率が得られます。処理は決定的で、Unicodeの文字と数字、語中のアポストロフィに対応しています。大文字と小文字だけが異なる語を同じ種類にするか、別の種類にするかも選択できます。
無料で実行
比率が示す内容を理解します
タイプ・トークン比は一般にTTRと略され、語彙の種類の豊かさを文章の長さと対比する指標です。トークンは文章内に現れる語の一回ごとの出現を指し、タイプは互いに異なる語形を指します。たとえば、同じ語が二度現れる文では、その語は二つのトークンですが、一つのタイプとして数えます。タイプ数をトークン数で割ると、ゼロより大きく一以下の値になります。一ならすべてのトークンが異なり、値が低いほど同じ語が多く繰り返されています。この分かりやすさから、作文、文字起こし、学習者の文章、記事群などを最初に概観する用途に適しています。ただし、この比率は文章の特徴を記述するもので、品質を判定するものではありません。専門的な手順や一つの話題に集中した説明では、反復が必要または望ましい場合もあります。比率だけで文体や能力を決めず、返された総トークン数と異なりタイプ数を併せて確認し、数値がどのように得られたかを把握してください。
公平な条件で文章を比較します
基本的なタイプ・トークン比は文章の長さに強く左右されます。短い文章では同じ語を繰り返す機会が少ないため、同じ書き手や同じ話題の文章でも、長い文章より高い値になりがちです。有意義に比較するには、長さ、ジャンル、言語、前処理が近い標本を選んでください。短いメッセージと長い報告書ではなく、たとえば同程度の文字量を持つ二つの作文を比較します。この計算ツールはUnicodeの文字または数字の連続をトークンとして認識し、語中の直線型と曲線型のアポストロフィを保持します。語の周囲にある句読点は新しいタイプを作りません。既定では大文字と小文字の違いをまとめるため、表記の大小だけが異なる語は同じタイプです。大小の区別自体が分析対象の場合に限り、case_sensitiveを有効にしてください。すべての標本で同じ設定を使用し、総トークン数を記録してください。特に短い文章や話題が異なる文章では、小さな数値差を慎重に解釈する必要があります。
再現可能な手順で結果を利用します
信頼できる分析は、対象範囲を明確に定めた標本から始まります。見出し、引用、話者名、数字、定型文を分析に含めるかどうかを、送信前に決めてください。一方の標本だけからそれらを除くと、分子と分母の両方が変わります。準備した各文章を同じ大文字・小文字設定で処理し、返される四つの項目、すなわち総トークン数、異なりタイプ数、タイプ・トークン比、適用された大小文字規則を保存します。これにより、結果を監査して再現できます。ブラウザー版は個別の確認に便利で、APIは一括処理、編集用ダッシュボード、教育ツール、研究データの前処理に適しています。計算は決定的で、文章をAIモデルへ送りません。同じ入力と設定からは同じ出力が得られます。標本の長さをそろえられない場合は、その制約を明記するか、長さを補正する別の語彙多様性指標を併用してください。低い比率は語彙力の不足ではなく、必要な専門用語、話題の一貫性、引用、反復する会話を反映している場合がありますので、必ず文脈に沿って判断してください。
活用例
文章標本を比較する
長さをそろえた草稿を同じ設定で測定し、改稿による語彙の反復の変化を確認します。
文字起こしを分析する
面談、授業、会議、研究の文字起こしに、透明性のある語彙多様性の指標を追加します。
コンテンツ群を監査する
記事や商品説明を一括処理し、反復が著しく多い項目を人による確認のために抽出します。
よくある質問
タイプ・トークン比はどのように計算しますか?
異なる語タイプの数を全トークン数で割り、結果を小数点以下6桁に丸めます。
高いタイプ・トークン比は何を意味しますか?
その標本では、一度しか現れないトークンの割合が高いことを示します。ただし、文章の質や語彙水準の高さを単独で証明するものではありません。
文章の長さをそろえる必要があるのはなぜですか?
長い文章ほど語を繰り返す機会が自然に増え、基本TTRは下がりやすくなります。長さをそろえると、比較の意味が高まります。
大文字と小文字は結果に影響しますか?
既定では影響しません。大小表記だけが異なる語を別タイプとして数える場合は、case_sensitiveをtrueに設定してください。
語はどのように認識されますか?
Unicodeの文字または数字の連続をトークンとします。語中の直線型または曲線型アポストロフィは保持し、外側の句読点は区切りとして扱います。
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/str/type-token-ratio \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"The quick brown fox jumps over the lazy dog. The fox rests."}'const res = await fetch("https://api.kit.forhosting.com/str/type-token-ratio", {
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 rests."
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/str/type-token-ratio",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"text": "The quick brown fox jumps over the lazy dog. The fox rests."
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/str/type-token-ratio", 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 rests."}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"text":"The quick brown fox jumps over the lazy dog. The fox rests."}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/str/type-token-ratio", 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 rests."
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "str.type_token_ratio",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}非同期APIです。task_idは即時に返ります。ポーリングは1秒あたり1リクエストまでです。
料金
単価はすべて公開しています。トークン換算や独自クレジットはありません。失敗したタスクは課金されません。
制限
max_chars | 1000000 |
エラー
| HTTP | コード | 意味 |
|---|---|---|
401 | unauthorized | APIキーが無効か、指定されていません。Authorizationヘッダーを確認してください。 |
402 | insufficient_balance | 残高が不足しています。チャージ後に再度お試しください。 |
404 | unknown_type | 指定されたタスクタイプは存在しません。タイプ名を確認してください。 |
429 | rate_limited | リクエストが多すぎます。しばらく待ってから再度お試しください。 |