El procesamiento del lenguaje natural (NLP) es un subcampo de la informática, la inteligencia artificial, la ingeniería de la información y la interacción humano-computadora. Este campo se enfoca en cómo programar computadoras para procesar y analizar grandes cantidades de datos de lenguaje natural. Es difícil de realizar ya que el proceso de lectura y comprensión de idiomas es mucho más complejo de lo que parece a primera vista.
La tokenización es el proceso de tokenizar o dividir una string, texto en una lista de tokens. Uno puede pensar en token como partes como una palabra es un token en una oración y una oración es un token en un párrafo.
Puntos clave del artículo –
- Texto en tokenización de oraciones
- Frases en palabras tokenización
- Oraciones que usan tokenización de expresiones regulares
Código n.º 1: tokenización de oraciones: división de oraciones en el párrafo
from nltk.tokenize import sent_tokenize text = "Hello everyone. Welcome to GeeksforGeeks. You are studying NLP article" sent_tokenize(text)
Producción :
['Hello everyone.', 'Welcome to GeeksforGeeks.', 'You are studying NLP article']
¿Cómo sent_tokenize
funciona?
La sent_tokenize
función usa una instancia de PunktSentenceTokenizer
from the nltk.tokenize.punkt module
, que ya ha sido entrenada y, por lo tanto, sabe muy bien marcar el final y el comienzo de la oración en qué caracteres y puntuación.
Código #2: PunktSentenceTokenizer
– Cuando tenemos grandes cantidades de datos, entonces es eficiente usarlos.
import nltk.data # Loading PunktSentenceTokenizer using English pickle file tokenizer = nltk.data.load('tokenizers/punkt/PY3/english.pickle') tokenizer.tokenize(text)
Producción :
['Hello everyone.', 'Welcome to GeeksforGeeks.', 'You are studying NLP article']
Código n.º 3: tokenizar oraciones de diferentes idiomas: también se pueden tokenizar oraciones de diferentes idiomas utilizando un archivo pickle diferente al inglés.
import nltk.data spanish_tokenizer = nltk.data.load('tokenizers/punkt/PY3/spanish.pickle') text = 'Hola amigo. Estoy bien.' spanish_tokenizer.tokenize(text)
Producción :
['Hola amigo.', 'Estoy bien.']
Código n.° 4: tokenización de palabras: división de palabras en una oración.
from nltk.tokenize import word_tokenize text = "Hello everyone. Welcome to GeeksforGeeks." word_tokenize(text)
Producción :
['Hello', 'everyone', '.', 'Welcome', 'to', 'GeeksforGeeks', '.']
¿Cómo funciona word_tokenize ? word_tokenize()
La función es una función contenedora que llama a tokenize() en una instancia de TreebankWordTokenizer class
.
Código #5: UsoTreebankWordTokenizer
from nltk.tokenize import TreebankWordTokenizer tokenizer = TreebankWordTokenizer() tokenizer.tokenize(text)
Producción :
['Hello', 'everyone.', 'Welcome', 'to', 'GeeksforGeeks', '.']
Estos tokenizadores funcionan separando las palabras mediante puntuación y espacios. Y como se mencionó en los resultados del código anteriores, no descarta la puntuación, lo que permite al usuario decidir qué hacer con la puntuación en el momento del preprocesamiento.
Código #6: PunktWordTokenizer
– No separa la puntuación de las palabras.
from nltk.tokenize import PunktWordTokenizer tokenizer = PunktWordTokenizer() tokenizer.tokenize("Let's see how it's working.")
Producción :
['Let', "'s", 'see', 'how', 'it', "'s", 'working', '.']
Código #6: WordPunctTokenizer
– Separa la puntuación de las palabras.
from nltk.tokenize import WordPunctTokenizer tokenizer = WordPunctTokenizer() tokenizer.tokenize("Let's see how it's working.")
Producción :
['Let', "'", 's', 'see', 'how', 'it', "'", 's', 'working', '.']
Código #7: Uso de expresiones regulares
from nltk.tokenize import RegexpTokenizer tokenizer = RegexpTokenizer("[\w']+") text = "Let's see how it's working." tokenizer.tokenize(text)
Producción :
["Let's", 'see', 'how', "it's", 'working']
Código #7: Uso de expresiones regulares
from nltk.tokenize import regexp_tokenize text = "Let's see how it's working." regexp_tokenize(text, "[\w']+")
Producción :
["Let's", 'see', 'how', "it's", 'working']
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