Tokenizador y Lematizador
Resultado de Tokenización y Lematización
Tokenización:
Lematización:
from flask import Flask, request, jsonify
from flask_cors import CORS
import spacy
app = Flask(__name__)
CORS(app, resources={r"/procesar_texto": {"origins": "https://kawashiro.dev", "methods": ["POST"], "allow_headers": ["Content-Type"]}})
nlp_es = None
def cargar_modelos():
global nlp_es
try:
nlp_es = spacy.load("es_core_news_sm")
print("Modelo de spaCy para español cargado.")
except OSError as e:
print(f"Error al cargar modelo para español: {e}")
print("Asegúrate de haber descargado el modelo 'es_core_news_sm' de spaCy.")
print("Puedes hacerlo ejecutando: python -m spacy download es_core_news_sm")
raise
cargar_modelos()
def tokenizar_lematizar(texto):
global nlp_es
doc = nlp_es(texto)
tokens = [token.text for token in doc]
caracteres_a_excluir = [",", ".", "(", ")", "*", "&", "^", "%", "$", "#", "@", "!"]
lemas_filtrados = [
token.lemma_ for token in doc
if token.lemma_ not in caracteres_a_excluir and token.is_alpha
]
return {"tokens": tokens, "lemas": lemas_filtrados}
@app.route('/procesar_texto', methods=['POST'])
def procesar_texto():
data = request.get_json()
if not data or 'texto' not in data:
return jsonify({"error": "No se proporcionó texto para procesar"}), 400
texto = data['texto']
resultados = tokenizar_lematizar(texto)
return jsonify(resultados)
if __name__ == '__main__':
app.run(debug=False, host='0.0.0.0', port=8000)