Herramientas de usuario

Herramientas del sitio


ai:nlp_with_nltk

Diferencias

Muestra las diferencias entre dos versiones de la página.

Enlace a la vista de comparación

Ambos lados, revisión anterior Revisión previa
Próxima revisión
Revisión previa
ai:nlp_with_nltk [2011/09/25 10:53]
alfred
ai:nlp_with_nltk [2020/05/09 09:25] (actual)
Línea 63: Línea 63:
  
  
-==== Tratar strings (texto raw) ==== +
-  * ''​nltk.word_tokenize(s)'',​ separa el texto en distintos tokens a partir de espacios en blanco, saltos de línea... +
-  * ''​nltk.clean_html(s)'',​ substrae el texto de un string en formato HTML.+
  
  
Línea 102: Línea 100:
  
  
-==== Notas ==== + 
-=== Esquema ​del trato con strings ​===+ 
 + 
 + 
 + 
 + 
 + 
 +==== Preproceso del texto ==== 
 +=== Tokenizar === 
 +  * ''​nltk.word_tokenize(s)'',​ separa el texto en distintos tokens a partir de espacios en blanco, saltos de línea... 
 +  * Podemos tokenizar a partir ​del método ''​re.split(regex,​ text)''​. Con expresiones regulares como ''​r'​\s+'''​ (para espacios en blanco, tabulaciones,​ saltos de línea...), ''​r'​\W+'''​ (para tokens que no contengan puntuación)... 
 +  * ''​nltk.regexp_tokenize(regex,​ s)''​ nos permite tokenizar un texto a partir de una expresión regular. 
 + 
 +=== Limpieza === 
 +  * ''​nltk.clean_html(s)'',​ substrae el texto de un string en formato HTML. 
 + 
 +=== Segmentar === 
 + 
 +=== Lematizar === 
 +NLTK permite lematizar a partir del lematizador de WordNet, este elimina los afijos si la palabra resultante está en el diccionario. 
 +<code python>​ 
 +wnl = nltk.WordNetLemmatizer() 
 +[wnl.lemmatize(t) for t in tokens] 
 +</​code>​ 
 + 
 +=== Stemizar === 
 +NLTK provee de dos stemmers, el de Porter (''​nltk.PorterStemmer''​) y el de Lancaster (''​nltk.LancasterStemmer''​),​ un ejemplo de uso sería: 
 +<code python>​ 
 +porter = nltk.PorterStemmer() 
 +[porter.stem(t) for t in tokens] 
 +</​code>​ 
 + 
 +=== Esquema básico ​===
 <code python> <code python>
 from urllib import urlopen from urllib import urlopen
Línea 115: Línea 144:
 vocab = sorted(set(words)) #​ 5. Lo tratamos (p.ej. extracción de vocabulario) vocab = sorted(set(words)) #​ 5. Lo tratamos (p.ej. extracción de vocabulario)
 </​code>​ </​code>​
-===== Preproceso =====+
  
  
Línea 126: Línea 155:
  
 ===== Notas ===== ===== Notas =====
 +
  
  
Línea 198: Línea 228:
 path = nltk.data.find('​corpora/​unicode_samples/​polish-lat2.txt'​) #​ Devuelve la ruta de polish-lat2.txt path = nltk.data.find('​corpora/​unicode_samples/​polish-lat2.txt'​) #​ Devuelve la ruta de polish-lat2.txt
 </​code>​ </​code>​
 +
 +
 +
 +
 +
 +
 +==== Regex útiles ====
 +^ regex ^ Explicación ^
 +| ''​[aeiou]{2,​}''​ | Palabras con dos vocales seguidas |
 +| ''​^(.*)(ing|ly|ed|ious|ies|ive|es|s|ment)$''​ | Estemiza palabras en inglés, devolviendo el estema y el sufijo |
 +| ''<​.*><​.*><​bro>''​ | Tres palabras seguidas donde la última sea //"​bro"//​ |
 +| ''<​a>​(<​.*>​)<​man>''​ | Los adjetivos que se le agregan a //"a man"//​. |
ai/nlp_with_nltk.1316947983.txt.gz · Última modificación: 2020/05/09 09:24 (editor externo)