文章から句読点や記号をオンラインで削除
句読点削除は、雑多な文章を文字・数字・空白だけの読みやすい並びに整えます。コンマ、ピリオド、引用符、括弧、ダッシュ、通貨記号、絵文字などを取り除き、Unicodeで扱える各種文字体系の単語と数値は保ちます。処理は常に同じ結果を返し、通信や言語モデルを使用しません。元の空白、タブ、改行も維持されます。そのため、トークン化、検索索引、単語頻度集計、重複除去、単純な文章比較の前処理として安心してお使いいただけます。
無料で実行
保持する文字と削除する文字
この機能は入力をUnicodeの文字単位で調べます。文字、アクセントを構成する結合文字、数字、空白文字を保持し、それ以外を削除します。コンマ、ピリオド、アポストロフィ、引用符、コロン、セミコロン、括弧、スラッシュ、ダッシュに加え、通貨記号、演算記号、絵文字も対象です。既存の空白、タブ、改行は元の位置に残り、まとめたり前後から削ったりしません。このため、隣り合う記号を除いた場所に複数の空白が残る場合があります。位置情報や文書構造を勝手に変えないための仕様です。Unicodeの分類を利用するので、英語以外の文字や、別の結合文字として保存されたアクセントも失われません。
分析用テキストの準備方法
元の文章をtext欄に貼り付けるか送信して実行してください。応答には、処理済みの内容が1つのtext欄として返ります。そのままトークン化、小文字化、単語数集計、索引作成へ渡せます。処理順は用途に合わせてお選びください。分割前に句読点を消すと、コンマ付きの単語と同じ単語を同一視できます。一方、アポストロフィやハイフンを消すと両側が連結します。別々の語にしたい場合は、先に対象記号を空白へ置換してください。この機能は言語判定、スペル修正、翻字、大文字小文字変換、意味解釈を行いません。同じ入力からは必ず同じ出力が得られます。
自動処理での利用方法
一度だけ整える場合は、ブラウザー版でもAPIと同じ決定的な処理を利用できます。自動処理では、各文字列を1項目として送り、返されたtext欄をお読みください。APIは1回$0.002で、課金単位が1項目のため従量加算はありません。句読点に意味がある場合は必ず原文を保存してください。小数点、プログラム構文、メールアドレスの記号、URL区切り、文の境界も消えるため、結果は分析用の派生データであり復元可能な写しではありません。空白は保持しますが整理せず、発音区別符号や大文字小文字も変更しません。記号だけの入力から空文字列が返るのは正しい動作です。
活用例
頻度集計用の語を準備
同じ単語が付随する記号の違いで別々に数えられることを防ぎます。
索引登録前に値を整理
ラベルや文書を文字と数字中心の表現にしてから、簡単な検索索引へ登録できます。
比較対象を正規化
照合処理で大文字小文字や空白を整える前に、装飾記号と句読点を除去します。
よくある質問
どの文字が保持されますか?
Unicodeの文字、結合文字、数字、空白文字を保持し、句読点と記号を削除します。
英語以外の文章にも対応しますか?
はい。Unicode分類を使うため、対応する各種文字体系の文字と数字を維持します。
絵文字や通貨記号も削除されますか?
はい。文字、数字、空白ではなく記号に分類されるため削除されます。
空白や改行はまとめられますか?
いいえ。既存の空白をそのまま保ちます。整理が必要な場合は別の処理を追加してください。
APIの料金はいくらですか?
1回のリクエストは$0.002です。同じ決定的な処理をブラウザーでも利用できます。
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/str/remove-punctuation \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"Hello, world! Room #42 costs $9."}'const res = await fetch("https://api.kit.forhosting.com/str/remove-punctuation", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"text": "Hello, world! Room #42 costs $9."
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/str/remove-punctuation",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"text": "Hello, world! Room #42 costs $9."
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/str/remove-punctuation", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"text":"Hello, world! Room #42 costs $9."}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"text":"Hello, world! Room #42 costs $9."}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/str/remove-punctuation", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"text": "Hello, world! Room #42 costs $9."
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "str.remove_punctuation",
"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 | リクエストが多すぎます。しばらく待ってから再度お試しください。 |