Spaces:
Running on Zero
Running on Zero
Update app.py
Browse files
app.py
CHANGED
|
@@ -236,37 +236,36 @@ def analisar_texto(texto):
|
|
| 236 |
morph_info = str(token.morph).replace("Case=", "").replace("Gender=", "").replace("Number=", "").replace("VerbForm=", "").replace("Person=", "").replace("Tense=", "").replace("Mood=", "").replace("Voice=", "")
|
| 237 |
if not morph_info: morph_info = "-"
|
| 238 |
|
| 239 |
-
|
|
|
|
|
|
|
| 240 |
tem_no_ddgp = l_norm in INDEX_LEMAS
|
| 241 |
lemas_nominais = ('ος', 'ις', 'ας', 'ης', 'ον')
|
| 242 |
|
| 243 |
-
# 1.
|
| 244 |
-
pos_final = pos_pt
|
| 245 |
l_final = l_orig
|
|
|
|
| 246 |
morph_final = morph_info
|
| 247 |
|
| 248 |
-
# 2.
|
|
|
|
|
|
|
| 249 |
if analise_sais and "Lema Nominal" in analise_sais:
|
| 250 |
-
pos_final = "Substantivo/Adj"
|
| 251 |
l_final = analise_sais.split(": ")[1]
|
| 252 |
-
|
|
|
|
| 253 |
|
| 254 |
-
#
|
| 255 |
-
# Se o Alpheios tiver uma análise, ela SEMPRE ganha da IA
|
| 256 |
if correcao_paradigma:
|
| 257 |
pos_final = "Substantivo"
|
| 258 |
morph_final = correcao_paradigma
|
| 259 |
-
|
| 260 |
-
#
|
| 261 |
elif pos_pt == "Verbo" and tem_no_ddgp and l_norm.endswith(lemas_nominais):
|
| 262 |
pos_final = "Substantivo"
|
| 263 |
-
morph_final = f"Morfologia nominal: {morph_info}
|
| 264 |
-
|
| 265 |
-
# Ajuste especial: Se for uma das nossas exceções e a morfologia ainda estiver vazia
|
| 266 |
-
if analise_sais and morph_final == "-":
|
| 267 |
-
morph_final = "Análise nominal (ver Alpheios)"
|
| 268 |
|
| 269 |
-
#
|
| 270 |
if token.pos_ not in ['PUNCT', 'SYM', 'SPACE']:
|
| 271 |
dados.append({
|
| 272 |
'Palavra': token.text,
|
|
|
|
| 236 |
morph_info = str(token.morph).replace("Case=", "").replace("Gender=", "").replace("Number=", "").replace("VerbForm=", "").replace("Person=", "").replace("Tense=", "").replace("Mood=", "").replace("Voice=", "")
|
| 237 |
if not morph_info: morph_info = "-"
|
| 238 |
|
| 239 |
+
# --- E. HIERARQUIA DE DECISÃO (SEGURA) ---
|
| 240 |
+
analise_sais = lematizar_sais(token.text)
|
| 241 |
+
correcao_paradigma = validar_substantivo_2a(token.text, l_orig)
|
| 242 |
tem_no_ddgp = l_norm in INDEX_LEMAS
|
| 243 |
lemas_nominais = ('ος', 'ις', 'ας', 'ης', 'ον')
|
| 244 |
|
| 245 |
+
# 1. Definimos o padrão (IA)
|
|
|
|
| 246 |
l_final = l_orig
|
| 247 |
+
pos_final = pos_pt
|
| 248 |
morph_final = morph_info
|
| 249 |
|
| 250 |
+
# 2. Aplicamos as correções por ordem de importância
|
| 251 |
+
|
| 252 |
+
# Se for uma exceção de -sais, corrigimos o LEMA e a CLASSE
|
| 253 |
if analise_sais and "Lema Nominal" in analise_sais:
|
|
|
|
| 254 |
l_final = analise_sais.split(": ")[1]
|
| 255 |
+
pos_final = "Substantivo/Adj"
|
| 256 |
+
# Mantemos o morph_final da IA ou Alpheios para ver se é Dativo ou Particípio
|
| 257 |
|
| 258 |
+
# Se o Alpheios (Paradigma) encontrou algo, ele define a Morfologia
|
|
|
|
| 259 |
if correcao_paradigma:
|
| 260 |
pos_final = "Substantivo"
|
| 261 |
morph_final = correcao_paradigma
|
| 262 |
+
|
| 263 |
+
# Regra do DDGP (Se a IA confundir substantivo com verbo)
|
| 264 |
elif pos_pt == "Verbo" and tem_no_ddgp and l_norm.endswith(lemas_nominais):
|
| 265 |
pos_final = "Substantivo"
|
| 266 |
+
morph_final = f"Morfologia nominal (IA: {morph_info})"
|
|
|
|
|
|
|
|
|
|
|
|
|
| 267 |
|
| 268 |
+
# --- F. ALIMENTAR A TABELA (Este bloco PRECISA estar aqui) ---
|
| 269 |
if token.pos_ not in ['PUNCT', 'SYM', 'SPACE']:
|
| 270 |
dados.append({
|
| 271 |
'Palavra': token.text,
|