英語単語の単数化
英語の複数形を単数形に戻します。cities は city、children は child になり、sheep は sheep のままです。大文字も保たれ、Users は User になるので、表や一覧の名前から型の名前を作るのに向いています。ブラウザで無料で使えます。
- 無料
- ブラウザで動作
- 登録不要
- データは端末の外に出ません
無料で実行
計算例
- テキスト
- cities
- 単語
- cities
- 単数形
- city
- 規則
- ies_to_y
英語単語の単数化ツールは、複数名詞を対応する単数形へ変え、命名ツール・コード生成・スキーママッパーが言語モデルなしで一覧・表・コレクションラベルを反転できるようにします。cities、children、boxes、または mothers-in-law のようなハイフン複合語を1語送ると、固定の不規則表、不可算リスト、ies・ves・es・s の順序付き接尾辞規則を適用します。大文字小文字は保持され、Users は User、CHILDREN は CHILD になります。sheep や news のように既に単数または不変の名詞はそのまま返し、無意味に切り詰めません。
英語の複数形が単数形になる仕組み
英語の複数化はおおむね規則的ですが、素朴な文字列切りはすぐ破綻する罠だらけです。
末尾の s は単なる接尾辞であることが多く(cats は cat、users は user)、一方 boxes、churches、dishes、buses は歯擦音のあとに es を取り、cities と queries は子音のあとの ies を y に置き換え、knives や wolves は ves を fe または f にします。
日常名詞の一部はこれらの型をまったく無視し、children、men、women、people、mice、geese、feet、teeth、oxen は照合が必要です。複数でも変わらない語もあります。sheep、series、species、deer、fish、aircraft、news はそのままで、s を剥がすと shee や new を捏造します。
本機能はその分岐を決定的パイプラインとして符号化します。照合用に文字種を正規化し、不規則表、不可算表の順に当たり、最も具体的な型から単独の s 削除まで先勝ちの接尾辞リストを辿ります。ties や pies のような短い ies 語は ty や py ではなく tie と pie になります。
ハイフン複合は先頭要素を単数化し、英語が mothers-in-law と passers-by を扱うのと同じです。典型的な複数化の逆は正規表現1本ではなく、コード生成が識別子ごとに、ネットワークも辞書サービスもなしで呼べる小さな順序付き文法です。
名詞単数化が役立つ場面
コード生成と ORM はコレクション名を絶えず反転します。末尾 s の一行置換では categories、companies、children、people、sheep を誤り、誰も望まないクラス名になります。既にある複数形を渡し、単数を保存します。
ローカライズとコンテンツツールも、画面文言が N items と言い、1件用の文面が item に切り替わるとき、あるいは用語集が屈折形の横に見出し語を並べるときに同じ写像を使います。実体ラベルを複数で持つデータ辞書は、TypeScript インタフェース、OpenAPI スキーマ、データベース実体名を出すときラベルごとに解けます。
教員と言語学の演示は、自然言語スタックを立てずに規則英語と不規則英語を示せます。動詞の見出し語化はせず、axes が axis ではなく手斧だったかは判別せず、英語の語でないトークンの単数も捏造しません。それはタグ付け器か人の仕事です。
識別子の屈折、コレクションから型への写像、用語集の整理には、固定規則表とよくある不規則形がちょうどよい道具の大きさです。
活用例
ORM とコード生成の識別子
Users、categories、children のようなコレクション名や表名を、型やモデルファイルを出す前に User、category、child へ変えます。
用語集と画面文面の見出し語
複数の用語集項目と件数依存ラベルを、辞書と1件用文面向けの安定した単数見出し語へ落とします。
よくある質問
英語の複数名詞を単数にするには?
例:cities → city、children → child。
どの不規則複数が使えますか?
よくある children、men、women、people、mice、geese、feet、teeth、oxen と、頻度の高いラテン・ギリシャ形(data、criteria、analyses、matrices、cacti)です。sheep や news のような不可算は変わりません。
単数化は大文字を保ちますか?
はい。 ALL-CAPS 入力は ALL-CAPS のまま(CHILDREN → CHILD)です。Title Case は Title Case のまま(Users → User)です。小文字は小文字のままです。
どの入力が拒否されますか?
text の欠落、文字列でない値、空または空白のみ、空白を含む句、八十文字超のトークン、文字でない文字列(ハイフンは任意)です。
sheep や news のような名詞はどうなりますか?
そのまま返されます。sheep、series、species、deer、fish、aircraft、news は単数でも同じ形なので、末尾の s を削ると shee や new のような存在しない語ができてしまうためです。
関連ツール
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/dev/singularize-word \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"cities"}'const res = await fetch("https://api.kit.forhosting.com/dev/singularize-word", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"text": "cities"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/dev/singularize-word",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"text": "cities"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/dev/singularize-word", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"text":"cities"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"text":"cities"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/dev/singularize-word", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"text": "cities"
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "dev.singularize_word",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}非同期APIです。task_idは即時に返ります。ポーリングは1秒あたり1リクエストまでです。
料金
単価はすべて公開しています。トークン換算や独自クレジットはありません。失敗したタスクは課金されません。
制限
max_chars | 80 |
エラー
| HTTP | コード | 意味 |
|---|---|---|
401 | unauthorized | APIキーが無効か、指定されていません。Authorizationヘッダーを確認してください。 |
402 | insufficient_balance | 残高が不足しています。チャージ後に再度お試しください。 |
404 | unknown_type | 指定されたタスクタイプは存在しません。タイプ名を確認してください。 |
429 | rate_limited | リクエストが多すぎます。しばらく待ってから再度お試しください。 |
技術的な注記
空文字、空白を含む句、文字でないトークンは invalid_input で失敗し課金されません。
英語の複数形が単数形になる仕組み
ラテン語・ギリシャ語由来は API や科学スキーマに現れ—data は datum、criteria は criterion、analyses は analysis、matrices は matrix、cacti は cactus—末尾2文字からは推測できません。
入力契約、応答の形、エラー
値はトリム後に英字のみの英語1語(ハイフンは任意)で、最大八十文字です。空白を含む句は拒否されます。ここは単語の単数化であり文の見出し語化ではないため、cities を送り、句は送らないでください。ALL-CAPS 入力は ALL-CAPS の単数、Title Case 入力は Title Case の単数になり、モデルや表名の生成が期待する形です。検証失敗は課金されません。必須の文字列フィールド text を含む JSON 本体を送ってください。既存の命名パイプラインがキー名を変えなくて済むよう、別名 word、input、value、noun も受け付けます。数字、アンダースコア、内部ハイフン以外の句読点、空または空白のみは、フィールド text を名指しする invalid_input になります。成功時、本体はトリム済み入力を text と word、大文字を復元した結果を singular、既に単数または不可算なら偽になる真偽値 changed、ies_to_y・irregular・drop_es・uncountable・compound:irregular などの安定ラベル rule、記録できる短い要約 message を返します。例:cities は規則 ies_to_y で city、children は irregular で child、boxes は drop_es で box、Users は drop_s で User、sheep は changed が偽のまま sheep です。成功呼び出しは公開の基本料金 $0.002、単位 item です。
名詞単数化が役立つ場面
経路 /users は型 User を欲し、表 orders はモデル Order を欲し、GraphQL の users フィールドはノード User を欲します。本エンドポイントは、そうした命名作業における複数化の逆です。実装は純 parse のティア A なので、対話確認はブラウザで無料、一括は成功 API 1件あたり $0.002 です。
連携の活用例
API とスキーマのフィールド対応
複数のリソース経路と GraphQL リストフィールドを、末尾 s を素朴に削らず単数の型名へ対応づけます。
技術的な質問
英語単語の単数化の料金は?
ブラウザの用具は無料です。API 要求は成功1件あたり $0.002 の前払い KIT 残高を使い、不正入力は課金されません。