Instalación de SpaCy
Antes de empezar, debemos asegurarnos de tener instalada la librería SpaCy. Para ello, podemos utilizar el siguiente comando en la terminal:
!pip install spacy
Descarga de Modelos
El siguiente paso es descargar los modelos necesarios para el análisis lingüístico. En este caso, utilizaremos el modelo «en_core_web_sm», el cual contiene un conjunto de reglas y datos sobre la gramática inglesa. Para descargar el modelo, podemos utilizar el siguiente comando:
!python -m spacy download en_core_web_sm
Análisis de Coherencia
Una vez que tenemos instalada la librería SpaCy y descargado el modelo de lenguaje correspondiente, podemos proceder a la detección de coherencia en el texto. En este ejemplo, utilizaremos el siguiente fragmento:
"El clima estaba cálido y soleado. Decidimos ir a la playa. Allí alquilamos sombrillas y sillas playeras. Después de unos minutos, empezó a llover muy fuerte."
Para hacer el análisis, primero importamos la librería e inicializamos el modelo descargado:
import spacy
nlp = spacy.load('en_core_web_sm')
Luego, creamos un objeto Doc con el texto que deseamos analizar:
doc = nlp("El clima estaba cálido y soleado. Decidimos ir a la playa. Allí alquilamos sombrillas y sillas playeras. Después de unos minutos, empezó a llover muy fuerte.")
Finalmente, podemos acceder a la propiedad «sents» del objeto para obtener una lista de las oraciones detectadas en el texto:
sentences = list(doc.sents)
Visualización de Resultados
Para visualizar los resultados de manera más clara, podemos utilizar la librería displacy de SpaCy. Para ello, importamos los módulos necesarios:
from spacy import displacy
from IPython.core.display import HTML
from IPython.core.display import display
Luego, creamos una función para resaltar en verde las oraciones coherentes y en rojo las incoherentes:
def highlight_coherent(doc):
html = ""
for sent in doc.sents:
if sent.similarity(doc) > 0.7:
html += "" + sent.text + ""
else:
html += "" + sent.text + ""
html = "
Finalmente, llamamos a la función y visualizamos el resultado:
highlight_coherent(doc)
La detección de la coherencia en textos es una tarea importante en cualquier ámbito de la comunicación escrita. La librería SpaCy de Python ofrece una solución efectiva y sencilla para este tipo de análisis lingüístico, permitiendo identificar las oraciones coherentes e incoherentes en un texto de manera rápida y precisa.