elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Trabajando con las ramas de git (tercera parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  ¿Algoritmo para obtener todas las palabras de un fichero en python?
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: ¿Algoritmo para obtener todas las palabras de un fichero en python?  (Leído 1,445 veces)
pran_krr

Desconectado Desconectado

Mensajes: 2


Ver Perfil
¿Algoritmo para obtener todas las palabras de un fichero en python?
« en: 11 Noviembre 2019, 10:38 am »

Lo que intento es leer un fichero y hacer una lista con todas las palabras del fichero de la forma más eficiente posible y quería saber si existe algún tipo de algoritmo que lo realice de la forma más eficiente posible. He probado con .split() pero no valdría ya que el fichero contiene caracteres los cuales no reconocería (p.e "," "-" "(" ...). Se hacerlo con el método de ir reconociendo cada caracter y cuando el que reconozca no sea una letra unir todos los caracteres y formar palabra y seguir haciendo esto en todo el fichero pero no se si hay alguna otra forma de hacerlo.


En línea

engel lex
Moderador Global
***
Desconectado Desconectado

Mensajes: 15.514



Ver Perfil
Re: ¿Algoritmo para obtener todas las palabras de un fichero en python?
« Respuesta #1 en: 11 Noviembre 2019, 14:33 pm »

la forma mas facil que se me ocurre es con regex,

un ejemplo

Código
  1. import re
  2. text = "Lo que intento es leer un fichero y hacer una lista con todas las palabras del fichero de la forma más eficiente posible y quería saber si existe algún tipo de algoritmo que lo realice de la forma más eficiente posible. He probado con .split() pero no valdría ya que el fichero contiene caracteres los cuales no reconocería (p.e "," "-" "(" ...). Se hacerlo con el método de ir reconociendo cada caracter y cuando el que reconozca no sea una letra unir todos los caracteres y formar palabra y seguir haciendo esto en todo el fichero pero no se si hay alguna otra forma de hacerlo."
  3.  
  4. parts = re.findall(r"[a-záéíóúÁÉÍÓÚ]+",text,re.I)
  5.  
  6. # parts es un list que contiene lo siguiente
  7. # ['Lo', 'que', 'intento', 'es', 'leer', 'un', 'fichero', 'y', 'hacer', 'una', 'lista', 'con', 'todas', 'las',
  8. # 'palabras', 'del', 'fichero', 'de', 'la', 'forma', 'más', 'eficiente', 'posible', 'y', 'quería', 'saber',
  9. # 'si', 'existe', 'algún', 'tipo', 'de', 'algoritmo', 'que', 'lo', 'realice', 'de', 'la', 'forma', 'más',
  10. # 'eficiente', 'posible', 'He', 'probado', 'con', 'split', 'pero', 'no', 'valdría', 'ya', 'que', 'el',
  11. # 'fichero', 'contiene', 'caracteres', 'los', 'cuales', 'no', 'reconocería', 'p', 'e', 'Se', 'hacerlo',
  12. # 'con', 'el', 'método', 'de', 'ir', 'reconociendo', 'cada', 'caracter', 'y', 'cuando', 'el', 'que',
  13. # 'reconozca', 'no', 'sea', 'una', 'letra', 'unir', 'todos', 'los', 'caracteres', 'y', 'formar', 'palabra',
  14. # 'y', 'seguir', 'haciendo', 'esto', 'en', 'todo', 'el', 'fichero', 'pero', 'no', 'se', 'si', 'hay', 'alguna',
  15. # 'otra', 'forma', 'de', 'hacerlo']
  16.  

como regex nativamente no digiere las letras con acento las tuve que agregar (mayusculas y minusculas ya que no conoce ese concepto en esas letras), asi que cualquier otra (como ñ letras con dieresis, etc) deben ser agregadas a necesidad


En línea

El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines