Normalización de datos textuales con Python

En este artículo, aprenderemos cómo

  • Los datos textuales solicitan material recopilado sistemáticamente que consta de palabras escritas, impresas o publicadas electrónicamente, generalmente escritas intencionalmente o transcritas del habla.
  • La normalización de texto es el método de transformar texto en una forma canónica que no hubiera tenido antes. La normalización del texto antes de almacenarlo o procesarlo permite la separación de preocupaciones, ya que la entrada seguramente será consistente antes de que se realicen operaciones al respecto. La normalización de texto requiere ser consciente de qué tipo de texto se normalizará y la forma en que se procesará posteriormente; no existe un procedimiento de normalización para todo uso.

Pasos requeridos

Aquí, discutiremos algunos pasos básicos necesarios para la normalización de texto.

  • String de texto de entrada,
  • Convierta todas las letras de la string a un caso (ya sea en minúsculas o en mayúsculas),
  • Si los números son esenciales para convertirlos en palabras, de lo contrario, elimine todos los números,
  • Eliminar puntuaciones, otras formalidades de la gramática,
  • Eliminar espacios en blanco,
  • Quitar palabras vacías,
  • Y cualquier otro cálculo.

Estamos haciendo la normalización de texto con los pasos mencionados anteriormente, cada paso se puede hacer de alguna manera. Así que vamos a discutir todos y cada uno en todo este proceso.

String de texto

Python3

# input string
string = "       Python 3.0, released in 2008, was a major revision of the language that is not completely backward compatible and much Python 2 code does not run unmodified on Python 3. With Python 2's end-of-life, only Python 3.6.x[30] and later are supported, with older versions still supporting e.g. Windows 7 (and old installers not restricted to 64-bit Windows)."
print(string)

Producción:

Python 3.0, lanzado en 2008, fue una revisión importante del lenguaje que no es completamente compatible con versiones anteriores y gran parte del código de Python 2 no se ejecuta sin modificaciones en Python 3. Con el final de la vida útil de Python 2, solo Python 3.6.x[30 ] y posteriores son compatibles, con versiones anteriores que aún son compatibles, por ejemplo, Windows 7 (y los instaladores antiguos no están restringidos a Windows de 64 bits)”.

Conversión de mayúsculas y minúsculas

Python3

# input string
string = "       Python 3.0, released in 2008, was a major revision of the language that is not completely backward compatible and much Python 2 code does not run unmodified on Python 3. With Python 2's end-of-life, only Python 3.6.x[30] and later are supported, with older versions still supporting e.g. Windows 7 (and old installers not restricted to 64-bit Windows)."
 
# convert to lower case
lower_string = string.lower()
print(lower_string)

Producción:

” python 3.0, lanzado en 2008, fue una revisión importante del lenguaje que no es completamente compatible con versiones anteriores y gran parte del código de python 2 no se ejecuta sin modificar en python 3. con el final de la vida útil de python 2, solo python 3.6.x[30 ] y posteriores son compatibles, con versiones anteriores que aún son compatibles, por ejemplo, Windows 7 (y los instaladores antiguos no están restringidos a Windows de 64 bits).

Eliminación de números

Elimine números si no son relevantes para sus análisis. Por lo general, las expresiones regulares se utilizan para eliminar números.

Python3

# import regex
import re
 
# input string
string = "       Python 3.0, released in 2008, was a major revision of the language that is not completely backward compatible and much Python 2 code does not run unmodified on Python 3. With Python 2's end-of-life, only Python 3.6.x[30] and later are supported, with older versions still supporting e.g. Windows 7 (and old installers not restricted to 64-bit Windows)."
 
# convert to lower case
lower_string = string.lower()
 
# remove numbers
no_number_string = re.sub(r'\d+','',lower_string)
print(no_number_string)

Producción:

” python ., lanzado en , fue una revisión importante del lenguaje que no es completamente compatible con versiones anteriores y gran parte del código de python no se ejecuta sin modificaciones en python . con el final de la vida útil de python, solo se admite python ..x[] y versiones posteriores, con versiones anteriores que aún admiten, por ejemplo, Windows (y los instaladores antiguos no están restringidos a ventanas de bits)”.

Eliminación de puntuación

Python3

# import regex
import re
 
# input string
string = "       Python 3.0, released in 2008, was a major revision of the language that is not completely backward compatible and much Python 2 code does not run unmodified on Python 3. With Python 2's end-of-life, only Python 3.6.x[30] and later are supported, with older versions still supporting e.g. Windows 7 (and old installers not restricted to 64-bit Windows)."
 
# convert to lower case
lower_string = string.lower()
 
# remove numbers
no_number_string = re.sub(r'\d+','',lower_string)
 
# remove all punctuation except words and space
no_punc_string = re.sub(r'[^\w\s]','', no_number_string)
print(no_punc_string)

Producción:

‘ python lanzado en fue una revisión importante del lenguaje que no es completamente compatible con versiones anteriores y gran parte del código de python no se ejecuta sin modificar en python con python s endoflife solo python x y posteriores son compatibles con versiones anteriores que aún son compatibles, por ejemplo, Windows e instaladores antiguos no restringidos morder ventanas’

Eliminando espacios en blanco

la tira()

Python3

# import regex
import re
 
# input string
string = "       Python 3.0, released in 2008, was a major revision of the language that is not completely backward compatible and much Python 2 code does not run unmodified on Python 3. With Python 2's end-of-life, only Python 3.6.x[30] and later are supported, with older versions still supporting e.g. Windows 7 (and old installers not restricted to 64-bit Windows)."
 
# convert to lower case
lower_string = string.lower()
 
# remove numbers
no_number_string = re.sub(r'\d+','',lower_string)
 
# remove all punctuation except words and space
no_punc_string = re.sub(r'[^\w\s]','', no_number_string)
 
# remove white spaces
no_wspace_string = no_punc_string.strip()
print(no_wspace_string)

Producción:

‘Python lanzado en fue una revisión importante del lenguaje que no es completamente compatible con versiones anteriores y gran parte del código de Python no se ejecuta sin modificar en Python con el final de la vida útil de Python, solo Python X y posteriores son compatibles con versiones anteriores que aún son compatibles, por ejemplo, Windows y los instaladores antiguos no están restringidos morder ventanas’

Eliminar palabras vacías

Las palabras vacías” son las palabras más comunes en un idioma como “el”, “a”, “en”, “es”, “todo”. Estas palabras no tienen un significado importante y generalmente están lejos de los textos. Es posible deshacerse de las palabras vacías utilizando tongue Toolkit (NLTK), un conjunto de bibliotecas y programas para el procesamiento simbólico y estadístico de la lengua.

Python3

# download stpwords
import nltk
nltk.download('stopwords')
 
# import nltk for stopwords
from nltk.corpus import stopwords
stop_words = set(stopwords.words('english'))
print(stop_words)
 
# assign string
no_wspace_string='python  released in  was a major revision of the language that is not completely backward compatible and much python  code does not run unmodified on python  with python s endoflife only python x and later are supported with older versions still supporting eg windows  and old installers not restricted to bit windows'
 
# convert string to list of words
lst_string = [no_wspace_string][0].split()
print(lst_string)
 
# remove stopwords
no_stpwords_string=""
for i in lst_string:
    if not i in stop_words:
        no_stpwords_string += i+' '
         
# removing last space
no_stpwords_string = no_stpwords_string[:-1]
print(no_stpwords_string)

Producción: 

En esto, podemos normalizar los datos textuales usando Python. A continuación se muestra el programa Python completo:

Python3

# import regex
import re
 
# download stpwords
import nltk
nltk.download('stopwords')
 
# import nltk for stopwords
from nltk.corpus import stopwords
stop_words = set(stopwords.words('english'))
 
 
# input string
string = "       Python 3.0, released in 2008, was a major revision of the language that is not completely backward compatible and much Python 2 code does not run unmodified on Python 3. With Python 2's end-of-life, only Python 3.6.x[30] and later are supported, with older versions still supporting e.g. Windows 7 (and old installers not restricted to 64-bit Windows)."
 
# convert to lower case
lower_string = string.lower()
 
# remove numbers
no_number_string = re.sub(r'\d+','',lower_string)
 
# remove all punctuation except words and space
no_punc_string = re.sub(r'[^\w\s]','', no_number_string)
 
# remove white spaces
no_wspace_string = no_punc_string.strip()
no_wspace_string
 
# convert string to list of words
lst_string = [no_wspace_string][0].split()
print(lst_string)
 
# remove stopwords
no_stpwords_string=""
for i in lst_string:
    if not i in stop_words:
        no_stpwords_string += i+' '
         
# removing last space
no_stpwords_string = no_stpwords_string[:-1]
 
# output
print(no_stpwords_string)

Producción:

Publicación traducida automáticamente

Artículo escrito por deepanshu_rustagi 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 *