#!/usr/bin/env python
# coding: utf-8

# # Instalación de NLTK

# In[1]:


pip install nltk


# In[1]:


# Instalaciónn de paquetes
import nltk
nltk.download()


# In[ ]:


# Instalar todos los paquetes.


# ### Ejemplo Tokenización

# In[2]:


from nltk.tokenize import WordPunctTokenizer 
texto_pablito = "Pablito clavó un clavito cuantos clavitos clava pablito"
pablito_tokenizado = WordPunctTokenizer().tokenize(texto_pablito)
print(pablito_tokenizado)


# Agunas palabras tienen el mismo significado o muy parecido y nos gustaría tokenizarlas como la misma. Por ejemplo: clavó y clava, clavito y clavitos y Pablito y pablito. Si bien el sustantivo propio con minúscula corresponde a un error, podemos encontrarnos con cosas de este tipo en un corpus de texto real.

# ### Ejemplo de steeming

# In[3]:


from nltk.stem import SnowballStemmer
stemmer = SnowballStemmer('spanish')
stemmed_text = [stemmer.stem(i) for i in pablito_tokenizado]

print(stemmed_text)


# ### Ejemplo de lemmatización

# La lemmatization es un poco más compleja y busca la mejor palabra de origen de las que tenemos

# In[4]:


from nltk.stem import WordNetLemmatizer
nltk.download('wordnet')
wnl = WordNetLemmatizer()
lemmatized_text = [wnl.lemmatize(i) for i in pablito_tokenizado]
print(lemmatized_text)


# ### Ejemplo de lemmatización con Stanza

# In[ ]:


import stanza
stanza.download("es")
nlp = stanza.Pipeline(lang='es', processors='tokenize,mwt,pos,lemma')
texto_pablito = "Pablito clavó un clavito cuantos clavitos clava pablito"
doc = nlp(texto_pablito)
print(*[f'Palabra: {word.text+" "}\tLemma: {word.lemma}' for sent in doc.sentences for word in sent.words], sep='\n')


# In[ ]:




