テキスト内の最長単語と同率候補を文字数付きで検索
テキストを貼り付けると、最も長い単語とその文字数が分かります。例では13文字の単語が最長となり、2回の出現が順番どおりに返ります。句読点で長さが増えることはなく、アクセント付きの文字もほかの文字と同じく数えます。ブラウザで無料で使えます。
- 無料
- ブラウザで動作
- 登録不要
- データは端末の外に出ません
無料で実行
文、段落、記事、短いデータ例を貼り付けると、前後の句読点を数えずに最長の単語を特定できます。結果には最大文字数と、その長さに並ぶすべての出現箇所が本文と同じ順序で表示されます。Unicodeの文字を認識するため、アクセント付きラテン文字をはじめ、多様な表記体系を一貫した規則で扱えます。辞書に依存しない決定的な処理であり、ブラウザ版ではネットワーク通信も必要ありません。
最長の単語を判定する仕組み
入力された文章を先頭から末尾まで走査し、Unicodeで文字と分類される要素が途切れずに続く部分を一つの単語として扱います。それぞれの文字数を数え、これまでの最大値を記録し、その値に達したすべての出現箇所を返します。複数の候補が同率になった場合も、元の出現順を維持するため、結果は予測しやすくなります。
同じ綴りが繰り返された場合も、単なる綴りの集合ではなく本文中の別々の位置を表すため、省略しません。大文字と小文字も変換しないので、表記が異なる候補は同じ長さでも区別できます。この明確な仕様により、対話的な確認にも自動処理にも利用でき、言語別の並べ替え、辞書検索、統計的な推測によって実行ごとの結果が変わることはありません。
句読点を無視するという規則
句読点は単語の文字数に加算されません。コンマ、ピリオド、引用符、括弧、ハイフン、アポストロフィ、スラッシュ、記号、数字は、文字列どうしの境界として働きます。たとえばコンマが続く単語はコンマを除いて返され、ハイフンで結ばれた表現は左右の別々の文字列として評価されます。
この規則により、書式上の記号で長さが水増しされず、空白だけに頼らない明確な動作になります。英字だけのパターンではなくUnicodeの文字カテゴリを用いるため、アクセント付き文字や多くの表記体系を自然に認識できます。結合文字は文字列に付随できますが、lengthに加算されるのはUnicodeで文字とされる要素だけです。
絵文字、単独の数字、通貨記号、句読点のみの入力は単語とみなしません。
編集作業や自動処理での活用方法
エディタ上で手作業による強調表示を行うのではなく、構造化され再現可能な答えが必要な場面でご利用ください。編集工程では公開前に極端に長い専門用語を検出でき、学習課題では複数の文章の語彙を比較でき、品質確認スクリプトでは狭いレイアウトで問題になりそうなラベルや画面文言を調べられます。
同率の候補をすべて返すため、後続の処理が同じ長さの単語を黙って捨てることもありません。また、語幹抽出、音節数の計算、意味解釈、文法的な分かち書きも行いません。そのため高速で説明可能ですが、句読点を境界とする上記の規則が判定基準になります。
活用例
編集用語の確認
原稿内の長い語を見つけ、専門用語に説明や短い言い換えが必要か公開前に検討できます。
小さな画面向け文言の検査
ボタン、カード、ラベル、モバイル画面からはみ出しやすい語を、表示テストの前に特定できます。
言語学習問題の作成
同率で最長となる単語を出現順にすべて含む、再現可能な解答を作成できます。
よくある質問
句読点も単語の長さに含まれますか?
いいえ。 句読点は文字列の境界となり、返される単語にも文字数にも含まれません。
同じ最長単語が繰り返された場合も返されますか?
はい。 同じ綴りが複数回現れた場合でも、同率の各出現箇所をそのまま保持します。
アクセント付き文字や英語以外の文字にも対応しますか?
はい。 ASCII限定のアルファベットではなく、Unicodeの文字カテゴリに基づいて判定します。
ハイフンやアポストロフィを含む単語はどう数えますか?
ハイフンとアポストロフィは、ほかの句読点と同じく区切りとして扱います。ハイフンでつないだ語は前後の文字の並びを別々に数えるので、2つの語をつないだだけで最長になることはありません。
文字がまったく含まれていない場合はどうなりますか?
数字、絵文字、通貨記号、句読点は単語ではないため、それだけの文章には最も長い単語がありません。その場合は空の結果を最長として返すのではなく、単語がないことをお知らせします。
関連ツール
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/text/longest-word-find \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"Small sparks illuminate distant mountains."}'const res = await fetch("https://api.kit.forhosting.com/text/longest-word-find", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"text": "Small sparks illuminate distant mountains."
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/text/longest-word-find",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"text": "Small sparks illuminate distant mountains."
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/text/longest-word-find", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"text":"Small sparks illuminate distant mountains."}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"text":"Small sparks illuminate distant mountains."}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/text/longest-word-find", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"text": "Small sparks illuminate distant mountains."
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "text.longest_word_find",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}非同期APIです。task_idは即時に返ります。ポーリングは1秒あたり1リクエストまでです。
料金
単価はすべて公開しています。トークン換算や独自クレジットはありません。失敗したタスクは課金されません。
制限
max_tokens | 20000 |
エラー
| HTTP | コード | 意味 |
|---|---|---|
401 | unauthorized | APIキーが無効か、指定されていません。Authorizationヘッダーを確認してください。 |
402 | insufficient_balance | 残高が不足しています。チャージ後に再度お試しください。 |
404 | unknown_type | 指定されたタスクタイプは存在しません。タイプ名を確認してください。 |
429 | rate_limited | リクエストが多すぎます。しばらく待ってから再度お試しください。 |
技術的な注記
最長の単語を判定する仕組み
出力には二つのフィールドがあります。longest_wordsは本文に現れた表記をそのまま保持する配列で、lengthは各候補に共通する文字数です。
句読点を無視するという規則
認識できる文字列が文章全体に一つもない場合は、空の要素を最長語として返すのではなく、型付きのinvalid_inputエラーを返します。
編集作業や自動処理での活用方法
最大値だけが必要ならlengthを参照し、実際の綴りが必要ならlongest_wordsを順に処理してください。この機能は純粋なテキスト解析であり、辞書、言語モデル、外部サービスには接続しません。大量の文書では項目ごとにAPIを一度呼び出し、両方のフィールドを保存すると、後から元の内容を再処理せず測定結果を確認できます。
技術的な質問
結果には何が含まれますか?
longest_wordsには同率の全出現箇所が本文順で入り、lengthには各単語に共通するUnicode文字数が入ります。
文章に単語がない場合はどうなりますか?
数字、絵文字、空白、句読点だけでは単語にならないため、invalid_inputエラーになります。
APIリクエストの料金はいくらですか?
公開されている基本料金は1回あたり$0.002です。ブラウザ版はローカルで無料実行できます。