Dividere testo in frasi
Incolli un paragrafo e ottenga una frase per riga: «Hello world. This is a second sentence! Is this a third?» diventa tre righe. Più segni di fila contano come un'unica fine e l'ultima frase senza punto viene conservata. Gratis nel suo browser.
- Gratis
- Funziona nel suo browser
- Senza registrazione
- I suoi dati restano sul dispositivo
Esegui gratis nel browser
Esempio risolto
- Testo
- Hello world. This is a second sentence! Is this a third?
- Numero di frasi
- 3
- Righe
- Hello world. This is a second sentence! Is this a third?
- Operazione
- split_sentences
Un separatore di frasi trasforma un blocco denso di prosa in un elenco pulito di frasi così che Lei possa rivedere, numerare, modificare o inviare ogni unità al passo successivo di una pipeline. I redattori incollano una bozza ed esaminano una frase per riga per lunghezza e ritmo. Gli insegnanti scompongono i paragrafi degli studenti in affermazioni atomiche prima della valutazione. Editor e team di localizzazione isolano le frasi sorgente prima della consultazione della memoria di traduzione. I team di supporto e prodotto trasformano note di ticket e testi di release in unità rivedibili senza aprire un intero stack NLP. Questa capacità scansiona il Suo testo semplice alla ricerca di punteggiatura terminale—punti, esclamativi e interrogativi—e restituisce sia un array ordinato di frasi sia una stringa unita da a capo pronta da incollare. Sequenze dello stesso segno terminale contano come una sola fine, le virgolette di chiusura opzionali sono tollerate, e una clausola finale senza punto diventa comunque una frase propria così le note informali non vengono scartate. L'input vuoto o solo spazi viene rifiutato con un errore di validazione chiaro invece di un elenco vuoto silenzioso.
Come il separatore di frasi rileva i confini
Il rilevatore percorre il Suo testo semplice e tratta un confine di frase come una sequenza di caratteri di punteggiatura terminale tratti dall'insieme punto, esclamativo e interrogativo. Una sequenza come tre esclamativi o un interrogativo seguito da una sequenza di punti in stile ellissi resta una sola fine, così la punteggiatura drammatica non crea frammenti vuoti. Virgolette o parentesi di chiusura immediatamente dopo la sequenza terminale sono consentite e restano attaccate alla frase che chiudono.
Dopo una fine, il successivo carattere non spazio inizia la frase seguente, e ogni segmento viene trimmato affinché spazi iniziali e finali non inquinino l'elenco. Se la clausola finale del testo non ha alcuna marca terminale, quel frammento finale diventa comunque una frase, il che coincide con il modo in cui si redigono messaggi e note a elenco senza chiudere ogni riga con un punto.
Abbreviazioni come Doctor o Mister che usano un punto possono dividersi prima di quanto preferirebbe un editor umano; tratti il risultato come una divisione rapida per punteggiatura terminale per la revisione, non come un'analisi linguistica completa.
Dove le divisioni in frasi compaiono nel lavoro reale
Coach di scrittura e classi di lingua delle superiori scompongono i paragrafi in frasi così che gli studenti rivedano lunghezza, accordo e forza dell'affermazione un'unità alla volta. I marketer di contenuti incollano hero di landing e aperture di e-mail per vedere se dominano righe corte o lunghe clausole impilate prima di un test A/B. I team di localizzazione dividono le stringhe sorgente in righe di frasi per la memoria di traduzione e le code di revisione, poi riassemblano dopo l'approvazione.
I team di supporto e legali scorrono estratti di policy e modelli di ticket riga per riga per mantenere le risposte scansionabili. Gli ingegneri di prodotto filtrano campi di form, prompt di recensione ed esempi di addestramento chatbot espandendo un blocco in frasi discrete prima dei controlli di accettazione. Se in seguito le serve solo un totale senza elenco, una riscrittura sentence case o un conteggio parole e caratteri, li tratti come intenzioni di ricerca e landing distinte invece di sovraccaricare questa pagina incentrata sul separatore di frasi.
Casi d'uso
Revisione editoriale una frase per riga
Incolli un paragrafo bozza e ottenga ogni frase sulla propria riga per verificare lunghezza, ritmo e chiarezza prima della pubblicazione.
Controlli di affermazioni in aula e compiti
Divida i temi degli studenti in frasi individuali per revisione tra pari, auto-valutatori o script del docente che valutano un'affermazione alla volta.
Righe di frasi in localizzazione e CMS
Scomponga il copy sorgente in unità di frase per memoria di traduzione, tabelle CMS e gate di qualità prima del riassemblaggio.
Domande frequenti
Come decide il separatore dove termina una frase?
Rileva la punteggiatura terminale: punti, esclamativi e interrogativi. Una sequenza di quei segni conta come una sola fine. Virgolette o parentesi di chiusura opzionali dopo la sequenza restano su quella frase. Una clausola finale senza marca diventa comunque una frase.
Cosa succede se invio testo vuoto?
Stringhe vuote e solo spazi non sono consentite; fornisca una stringa non vuota da dividere.
Questo conta soltanto le frasi?
No. Questa landing restituisce l'elenco reale delle frasi e una stringa una per riga. Per un totale senza l'elenco diviso, usi la pagina del contatore di frasi.
Quanto costa?
Lo strumento browser è gratis e gira in locale.
Le abbreviazioni come Dott. o Sig. vengono rispettate?
Non sempre. Ogni punto viene letto come fine di frase, quindi un titolo abbreviato con il punto può spezzare la frase in anticipo. Ricontrolli quelle righe e le riunisca dove serve.
Strumenti correlati
Per sviluppatori — accesso via API
Tutto quello che vedi in questa pagina è disponibile anche via API. Questa sezione è per i team che vogliono integrarlo nei propri sistemi; chi non ne ha bisogno può semplicemente usare lo strumento qui sopra.
Endpoint
Autenticazione con Bearer token: un POST mette in coda l'attività e il risultato arriva via webhook o link firmato.
Chiamala dal tuo stack
curl -X POST https://api.kit.forhosting.com/str/split-sentences \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"Hello world. This is a second sentence! Is this a third?"}'const res = await fetch("https://api.kit.forhosting.com/str/split-sentences", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"text": "Hello world. This is a second sentence! Is this a third?"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/str/split-sentences",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"text": "Hello world. This is a second sentence! Is this a third?"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/str/split-sentences", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"text":"Hello world. This is a second sentence! Is this a third?"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"text":"Hello world. This is a second sentence! Is this a third?"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/str/split-sentences", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Esempio di richiesta
{
"text": "Hello world. This is a second sentence! Is this a third?"
}Esempio di risposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "str.split_sentences",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}L'API è asincrona: ricevi subito un task_id e puoi fare polling fino a 1 richiesta al secondo.
Prezzi
Prezzo pubblicato, senza token né crediti. Se l'attività fallisce, non paghi.
Errori
| HTTP | Codice | Significato |
|---|---|---|
401 | unauthorized | Chiave API mancante o non valida: controlla l'header Authorization. |
402 | insufficient_balance | Credito esaurito: ricarica per continuare a eseguire attività. |
404 | unknown_type | Tipo di attività sconosciuto: controlla il campo type della richiesta. |
429 | rate_limited | Troppe richieste in poco tempo: rallenta e riprova tra qualche secondo. |
Note tecniche
Come il separatore di frasi rileva i confini
Stringhe vuote e solo spazi vengono rifiutate con invalid_input così i chiamanti non scambiano un incolla vuoto per una divisione riuscita a zero frasi. L'algoritmo è una scansione di stringa pura e deterministica: senza semi casuali, senza timestamp di orologio, senza chiamate di rete e senza modello linguistico, così lo stesso input produce sempre lo stesso JSON.
Cosa invia Lei e cosa riceve in risposta
Invii un campo stringa obbligatorio chiamato text, oppure uno degli alias documentati come content, body, message o input. Il payload di esempio del contratto è un breve campione di tre frasi così che il modulo gratuito e la sonda API condividano un caso di lavoro che Lei può copiare. In caso di successo la risposta riecheggia il text originale, restituisce sentences come array ordinato di stringhe trimmate con le marche terminali su ciascuna unità, ripete la lunghezza sotto sentence_count per controlli rapidi, e costruisce lines unendo quelle frasi con caratteri di nuova riga così ottiene una frase per riga senza post-elaborazione. Il campo operation è sempre la costante split_sentences per log e dashboard multi-strumento. Text mancante, stringhe vuote, solo spazi, sostituti numerici non finiti e oggetti che non sono stringhe falliscono con invalid_input e non vengono addebitati. Payload molto grandi oltre il tetto di caratteri vengono rifiutati con un messaggio di lunghezza chiaro così i worker restano limitati. Il prezzo delle chiamate API riuscite è la base pubblicata di $0.002 per elemento; i fallimenti di validazione non consumano saldo prepagato, il che mantiene economiche le sonde esplorative mentre regola gli input.
Dove le divisioni in frasi compaiono nel lavoro reale
Poiché questa capacità è un motore di parse puro, il prezzo API è la base pubblicata di $0.002 per elemento riuscito e la validazione fallita non consuma saldo.
Domande tecniche
Qual è la differenza tra sentences e lines?
sentences è un array JSON ordinato di ogni frase trimmata. lines è lo stesso elenco unito con caratteri di nuova riga così Lei può incollare una frase per riga in un editor o foglio di revisione.