Commit 537d95fbc7c1f240e6b3e57767c5f3a99d2400f8

Authored by Erickson Silva
1 parent 2c6cd32d
Exists in master and in 1 other branch devel

Corrige tratamento de plural

Showing 1 changed file with 12 additions and 7 deletions   Show diff stats
src/AplicaRegras.py
@@ -417,24 +417,29 @@ class AplicaRegras(object): @@ -417,24 +417,29 @@ class AplicaRegras(object):
417 def analisar_plural(self, token): 417 def analisar_plural(self, token):
418 '''Altera uma palavra do plural para o singular de acordo com o final da mesma. 418 '''Altera uma palavra do plural para o singular de acordo com o final da mesma.
419 ''' 419 '''
420 - if(token[-3:] == "ões".decode('utf-8') or token[-2:] == "ães".decode('utf-8') or token[-2:] == "ãos".decode('utf-8')):  
421 - return token[0:-3]+"ão".decode('utf-8')  
422 - elif(token[-3:] == "res" or token[-2:] == "zes" or token[-2:] == "nes"): 420 + vogais = ['a','e','i','o','u']
  421 + if(token[-3:] == "ões".decode('utf-8') or token[-3:] == "ães".decode('utf-8') or token[-3:] == "ãos".decode('utf-8')):
  422 + return token[:-3]+"ão".decode('utf-8')
  423 + elif(token[-3:] == "res" or token[-3:] == "zes" or token[-3:] == "nes"):
  424 + if token[-4] not in vogais:
  425 + return token[:-1]
423 return token[0:-2] 426 return token[0:-2]
424 elif(token[-3:] == "ses"): 427 elif(token[-3:] == "ses"):
425 #TODO: Algumas palavras possuem marcações gráficas na raiz singular. Ex: Gás – Gases 428 #TODO: Algumas palavras possuem marcações gráficas na raiz singular. Ex: Gás – Gases
426 - return token[0:-2] 429 + if token[-4] not in vogais:
  430 + return token[:-1]
  431 + return token[:-2]
427 elif(token[-2:] == "ns"): 432 elif(token[-2:] == "ns"):
428 return token[0:-2]+"m" 433 return token[0:-2]+"m"
429 elif(token[-3:] == "eis"): 434 elif(token[-3:] == "eis"):
430 - return token[0:-3]+"il" 435 + return token[:-3]+"il"
431 elif(token[-2:] == "is"): 436 elif(token[-2:] == "is"):
432 if(token[-3] == "a" or token[-3] == "e" or token[-3] == "o" or token[-3] == "u"): 437 if(token[-3] == "a" or token[-3] == "e" or token[-3] == "o" or token[-3] == "u"):
433 - return token[0:-2]+"l" 438 + return token[:-2]+"l"
434 return token 439 return token
435 elif(token[-1] == "s"): 440 elif(token[-1] == "s"):
436 #TODO: Palavras paroxítonas ou proparoxítonas terminadas em S. Ex: lápis, vírus, tagênis, ônibus, etc 441 #TODO: Palavras paroxítonas ou proparoxítonas terminadas em S. Ex: lápis, vírus, tagênis, ônibus, etc
437 - return token[0:-1] 442 + return token[:-1]
438 else: 443 else:
439 return token 444 return token
440 445