単語の出現回数を数える
「Blue skies look blue, but blueberry is not blue.」ではblueが3回です。単語全体だけを数えるのでblueberryは含まれず、大文字と小文字は初期設定では区別しません。総語数の9語も表示します。ブラウザで無料で使えます。
- 無料
- ブラウザで動作
- 登録不要
- データは端末の外に出ません
無料で実行
計算例
- テキスト
- Blue skies look blue, but blueberry is not blue.
- 単語
- blue
- 数量
- 3
- 総単語数
- 9
指定した単語が文章に何回現れるかを、長い単語の一部を誤って含めずに数えます。この完全一致カウンターは、原稿の重複表現を確認する執筆者、必須用語を管理する編集者、提出物を確認する教員、生成コンテンツを検証する開発者に役立ちます。初期設定では大文字と小文字を区別しないため、Word と word は同じ回数に含まれます。必要に応じて区別する設定も選べます。Unicode の文字と数字に対応し、内部にアポストロフィを含む単語も扱えます。結果には認識された総単語数も表示されるため、回数を文脈に沿って確認できます。
単語全体の出現回数を数える仕組み
単語全体の一致は、単なる文字列検索よりも限定的で実用的な問いに答えます。たとえば対象が cat の場合、部分文字列検索では catalog や scatter の中にある cat まで数えてしまい、誤解を招く結果になることがあります。本ツールは、入力された文章をまず Unicode 対応の単語トークンに分割し、それぞれの完全なトークンを指定語と比較します。
文字または数字の連続を単語として扱い、単語内部のアポストロフィは保持するため、don't や O'Brien のような短縮形や固有名も1つの単位として数えられます。空白、句読点、改行、ダッシュなどは単語境界になります。アルゴリズムは文章を左から右へ走査し、完全なトークンが対象と一致した場合にだけ結果を増やします。
語幹処理や活用形の統合は行わないため、edit、edits、edited、editing は別の語です。編集上の確認や自動テストでは、言語的な推定より説明可能な厳密値が必要になるため、この仕様を採用しています。ネットワーク、乱数、外部辞書、現在時刻を利用しないため、同じ入力からは常に同じ出力が得られます。
大文字と小文字の設定および入力の準備
text には空でない文字列を、word には正確に1つの単語トークンを指定してください。対象語の前後に空白、コンマ、引用符を付けたり、複数語を入力したりすることはできません。曖昧な形式を拒否することで、フレーズの回数を単語の回数と誤認する事態を防ぎます。
出力では対象語を変換せず、そのまま返すため、画面にはご指定の内容を正確に表示できます。text には複数の段落や多数の句読点を含められ、上限は 100000 文字です。有効な文章に一致がない場合は count が 0 になり、これはエラーではなく有用な結果です。
編集規則を自動化する前に、大小文字が混在する例と、対象を内部に含む長い単語で設定をご確認ください。
編集作業と自動処理での結果の活用方法
簡単に確認する場合は、ブラウザーツールに原稿を貼り付け、キーワードを入力して完全一致の回数をご覧ください。Tier A の実装はサーバーハンドラーと同じ決定的なライブラリを使うため、ブラウザー処理は非公開の作業文書にも適しています。
編集者は書き直しの前後で回数を比較でき、教育システムは練習問題に語彙が含まれるかを確認でき、テンプレートテストは必須用語が最低1回現れることを検証できます。回数が多いことを品質の証明とはお考えにならないでください。反復は文書によって強調、規則順守、不自然な文章のいずれも示し得ます。
また、完全一致では複数形、活用形、同義語、句読点の異なるフレーズを統合しません。複数の許容形がある方針では、明示した対象ごとに本機能を呼び出し、アプリケーション側で結果を合算してください。大文字小文字や境界規則の変更が本番コンテンツへ影響する前に検出できるよう、代表的な成功例と検証エラー例を自動テストに固定することをお勧めします。
活用例
キーワード反復の確認
長い単語内の偶発的な一致を除き、原稿にある正確なキーワードの回数を確認できます。
編集用語の監査
必須用語が含まれているかを検証し、文書の各改訂版における使用回数を比較できます。
コンテンツの自動テスト
生成ページに指定の完全な単語が想定回数含まれることを開発時に検証できます。
よくある質問
cat は catalog や scatter にも一致しますか?
いいえ。 完全な単語トークンを比較するため、長い単語の内部にだけ現れる対象は数えません。
複数語のフレーズを数えられますか?
いいえ。 word に指定できるのは1語だけです。複数トークンの境界が重要な場合はフレーズ検索機能をご利用ください。
大文字のBlueもblueと同じく数えますか?
はい、初期設定では大文字と小文字を区別しないため、BLUE、Blue、blueはすべて一致します。USとusを分けたいときなど、大文字に意味がある場合は区別する設定をオンにします。
語形が違う単語も数えますか?
いいえ。語を語幹にまとめないため、edit、edits、edited、editingは4つの別の語として扱います。すべての形が必要な場合は、形ごとに数えてください。
単語が見つからない場合はどうなりますか?
結果は0になります。0はエラーではなく正しい結果として扱うため、ある語が文章で使われていないことの確認にも使えます。
関連ツール
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/str/count-word-occurrences \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"Blue skies look blue, but blueberry is not blue.","word":"blue"}'const res = await fetch("https://api.kit.forhosting.com/str/count-word-occurrences", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"text": "Blue skies look blue, but blueberry is not blue.",
"word": "blue"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/str/count-word-occurrences",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"text": "Blue skies look blue, but blueberry is not blue.",
"word": "blue"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/str/count-word-occurrences", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"text":"Blue skies look blue, but blueberry is not blue.","word":"blue"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"text":"Blue skies look blue, but blueberry is not blue.","word":"blue"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/str/count-word-occurrences", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"text": "Blue skies look blue, but blueberry is not blue.",
"word": "blue"
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "str.count_word_occurrences",
"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 | リクエストが多すぎます。しばらく待ってから再度お試しください。 |
技術的な注記
無料のブラウザーツールでは決定的な処理を端末内で行い、API の正常なリクエストは1件あたり $0.002 です。
単語全体の出現回数を数える仕組み
応答には count、total_words、入力語、大文字と小文字の設定、処理方式が含まれます。
大文字と小文字の設定および入力の準備
case_sensitive の初期値は false です。このモードでは、Unicode に対応した小文字化を行った後、BLUE、Blue、blue はすべて対象の blue と一致します。製品名が承認済みの表記を守っているか確認する場合や、略語と一般語を区別する場合など、大文字表記自体に意味があるときは case_sensitive を true にしてください。必須項目の欠落、空文字列、不正な対象形式、真偽値ではない設定、上限超過の文章は invalid_input になります。一般的な連携名の別名も利用できますが、新規クライアントでは明確な SDK 型とフォームラベルを生成できる text、word、case_sensitive をお勧めします。
編集作業と自動処理での結果の活用方法
反復可能な処理では、正常な1件あたり $0.002 の API を呼び出し、数値を文書の版と一緒に保存してください。total_words は簡単な比率を求める際の文脈になりますが、本機能はキーワード密度の計算、全単語の順位付け、SEO 基準値の推奨を行いません。それらは別の分析作業です。
技術的な質問
大文字と小文字を区別しますか?
初期設定では区別しません。表記ごとに分けて数える場合は case_sensitive を true にしてください。
対象語がない場合はどうなりますか?
リクエストは正常に完了し、count は 0 になります。一致がないことは有効な結果であり、入力エラーではありません。
API リクエストの料金はいくらですか?
ブラウザーツールは無料です。正常な API 項目ごとに前払い残高から $0.002 を使用し、不正な入力は拒否されます。