PNL | Corrección de formas verbales

Entendamos esto con un ejemplo:

  1. ¿Nuestro hijo está entrenando lo suficiente?
  2. ¿Nuestro hijo está entrenando lo suficiente?

El verbo ‘es’ solo se puede usar con sustantivos singulares. Para los sustantivos en plural usamos ‘are’. Este problema es muy común en el mundo real y podemos corregir este error creando asignaciones de corrección de verbos que se usan dependiendo de si hay un sustantivo en plural o singular en el fragmento.

Código #1: Definición de las asignaciones de corrección de verbos

# singular to plural mapping
  
plural_verb_forms = {
        ('is', 'VBZ'): ('are', 'VBP'),
        ('was', 'VBD'): ('were', 'VBD')
        }
  
# plural to singular mapping
singular_verb_forms = {
        ('are', 'VBP'): ('is', 'VBZ'),
        ('were', 'VBD'): ('was', 'VBD')
        }

Estamos buscando en el fragmento la posición de la primera palabra etiquetada usando el método first_chunk_index(). Este método tenía un parámetro ‘pred’ que toma una tupla (palabra, etiqueta) y devuelve Verdadero o Falso.

Código #2: first_chunk_index()

def first_chunk_index(chunk, pred, start = 0, step = 1):
      
    l = len(chunk)
    end = l if step > 0 else -1
      
    for i in range(start, end, step):
        if pred(chunk[i]):
            return i
          
    return None

La función de predicado en el código a continuación devuelve True si la etiqueta en el argumento (palabra, etiqueta) comienza con un prefijo de etiqueta dado. De lo contrario, falso.

Código #3:

def tag_startswith(prefix):
    def f(wt):
        return wt[1].startswith(prefix)
    return f

Código #4: Corrijamos las formas verbales

from transforms import correct_verbs
  
print ("Corrected verb forms : \n", 
       correct_verbs([('is', 'VBZ'), ('our', 'PRP$'), 
                      ('children', 'NNS'), ('learning', 'VBG')]))

Producción :

Corrected verb forms : 
[('are', 'VBP'), ('our', 'PRP$'), ('children', 'NNS'), ('learning',
'VBG')]

Publicación traducida automáticamente

Artículo escrito por Mohit Gupta_OMG 🙂 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *