Hoy me he inscrito en Data Camp. He visto que hay algunos cursos específicos de Python con NLP. Justo lo que necesito ahora mismo. La suscripción a los cursos es de unos 33$ al mes, así que me parece razonable también.
He empezado el curso «Natural Language Processing Fundamentals with Python«. Estoy con el módulo 1, que es gratuito: Regular expressions & word tokenization. Algunas de estas cosas ya las sé, pero me ha obligado a crearme un Jupyter Notebook nuevo y empezar a trastear. Ya vale de lecturas y podcasts!
¿Qué he aprendido hoy?
REGEX con Python (siempre había trabajado con Regex en Perl)
- El módulo de Python para expresiones regulares es «re»: import re
- re.split: nos permite usar la expresión en REGEX como separador. Lo más común es usar el espacio como separador. Por tanto,
- re.split(‘\s+’, ‘Split on spaces.’) => [‘Split’, ‘on’, ‘spaces.’]
- re.findall(regex, string) => encuentra todos los casos de esa regex en el texto o string dada.
- re.search(): el patrón que busquemos puede estar en cualquier parte del string/documento.
- re.match(): el patrón que busquemos tiene que estar al principio del string.
- if you need to match at the beginning of the string, or to match the entire string use
match
. It is faster. Otherwise usesearch
.
- if you need to match at the beginning of the string, or to match the entire string use
TOKENIZATION con Python
- Un módulo que podemos usar para tokenizar es NLTK.
- Simplemente lo importamos en Python (import nltk) y dentro de él, usaremos el tokenizador: from nltk import word_tokenize
- Lo usaremos así: word_tokenize(«Hi there!»)
- Otros módulos de NLTK que podemos usar para tokenizar el texto:
- sent_tokenize: separa todo el texto en frases.
- regexp_tokenize: separa un texto o un string en base a una Regex que le indiquemos.
- TweetTokenizer: especial para tokenizar tweets (hashtags, menciones, etc.)
Otras notas:
- Buscar el tutorial de cómo crear un chatbot usando RASA NLU: te dice paso a paso cómo crear y entrenar tu chatbot usando Spacy así que me parece muy interesante para hacerlo como ejercicio.