Extracción de oraciones¶
ests.extractors.SentsExtractor
Descripción¶
Módulo para extraer oraciones de un texto. Permite usar distintos tokenizadores y fijar la longitud mínima y máxima de las oraciones extraídas.
Nota
El tokenizador por defecto es la función sentenize de ests.utils, basada en reglas. Una oración termina con un punto, un signo de exclamación o de interrogación o unos puntos suspensivos, seguidos opcionalmente de comillas o paréntesis de cierre, cuando la palabra siguiente empieza por mayúscula, cifra, signo de apertura ¿ ¡, comilla o paréntesis de apertura o raya; una línea en blanco también cierra la oración. Las abreviaturas (Sr., Dra., p. ej., EE. UU., a. m.), las iniciales (J. L. Borges) y los marcadores de lista al principio de la oración o de la línea (1., 2.1., IV.) no cierran la oración - decisión tomada a sabiendas. Ante una palabra en minúscula la lista no decide nada, porque una minúscula nunca abre una oración; decide ante una mayúscula o una cifra, y ahí las dos lecturas chocan: a las 5 p. m. 30 personas esperaban es una sola oración, Llegó a las 5 p. m. Luego se fue. son dos, y ninguna regla las distingue. Mantener la abreviatura une las dos, y unir dos oraciones cuesta menos que partir una por la mitad - una palabra en minúscula tras puntos suspensivos o signo de exclamación la continúa, y un salto de línea simple no la divide, así que los textos con líneas cortadas se tratan bien. Las oraciones se devuelven sin espacios en los extremos.
Nota
El sentencizer de spaCy no se usa a propósito: pega ¡ y « a la oración anterior y no corta en .... Aun así se puede pasar un pipeline de spaCy como tokenizador: tokenizer=lambda text: (sent.text for sent in nlp(text).sents).
Parámetros¶
| Parámetro | Tipo | Por defecto | Descripción |
|---|---|---|---|
tokenizer |
Pattern/Callable | None |
Tokenizador o expresión regular |
min_len |
int | 0 |
Longitud mínima de la oración extraída |
max_len |
int | 0 |
Longitud máxima de la oración extraída |
Métodos¶
extract¶
Extrae las oraciones de un texto.
Parámetros:
| Parámetro | Tipo | Por defecto | Descripción |
|---|---|---|---|
text |
str | - |
Cadena de texto |
Ejemplo de extracción de oraciones con el tokenizador por defecto:
Ejemplo
Código:
# Importar la biblioteca
from ests import SentsExtractor
# Preparar los datos
text = "¿No tienes cien euros? ¡Ten cien amigos! El Sr. García lo dijo... Y se fue."
# Extraer las oraciones
se = SentsExtractor()
se.extract(text)
Resultado:
('¿No tienes cien euros?', '¡Ten cien amigos!', 'El Sr. García lo dijo...', 'Y se fue.')
Ejemplo de extracción de oraciones con una expresión regular como tokenizador:
Ejemplo
Código:
# Importar las bibliotecas
import re
from ests import SentsExtractor
# Preparar los datos
text = "No tengas 100 euros, ten 100 amigos"
# Extraer las oraciones
se = SentsExtractor(tokenizer=re.compile(r", "))
se.extract(text)
Resultado:
('No tengas 100 euros', 'ten 100 amigos')