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:56]
alfred
ai:nlp_with_nltk [2020/05/09 09:25] (actual)
Línea 97: Línea 97:
 cfd['​news'​]['​could'​] #​ Objeto FreqDist de la palabra '​could'​ en '​news'​ cfd['​news'​]['​could'​] #​ Objeto FreqDist de la palabra '​could'​ en '​news'​
 </​code>​ </​code>​
 +
 +
 +
 +
 +
  
  
Línea 105: Línea 110:
 === Tokenizar === === Tokenizar ===
   * ''​nltk.word_tokenize(s)'',​ separa el texto en distintos tokens a partir de espacios en blanco, saltos de línea...   * ''​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 === === Limpieza ===
   * ''​nltk.clean_html(s)'',​ substrae el texto de un string en formato HTML.   * ''​nltk.clean_html(s)'',​ substrae el texto de un string en formato HTML.
 +
 === Segmentar === === Segmentar ===
 +
 === Lematizar === === 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 === === 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 === === Esquema básico ===
Línea 134: Línea 155:
  
 ===== Notas ===== ===== Notas =====
 +
  
  
Línea 206: 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.1316948184.txt.gz · Última modificación: 2020/05/09 09:24 (editor externo)