Autor
|
Tema: Obtener el porcentaje de oraciones con 1 palabra, 2 palabras, 3 palabras, etc. (Leído 3,696 veces)
|
Wil630
Desconectado
Mensajes: 4
|
[Python][Python][Python][Python][Python][Python][Python][Python][Python][Python][Python]
Hola a todos,
Debo obtener el porcentaje de oraciones con 1 palabra, 2 palabras, etc. en español y francés a partir de algunos libros obtenidos de gutenber.org. Aún no sé cómo llegar a definir el diccionario para que me muestre en el resultado final algo como esto:
{ "español": {1:0.05, 2:0.10, 3:0.15, 4:0.20, 5:0.22, ... }, "francés": {1:0.03, 2:0.14, 3:0.11, 4:0.18, 5:0.29, ... }, "italiano": ..., }
Ya bajé los libros de gutenberg.org, les quité los encabezados, limpié los textos, dividí los textos en oraciones mediante "<>" y dividí las oraciones por palabras. No sé qué más debo hacer para terminar este ejercicio.
Agradezco de antemano su colaboración.
Esto es lo que llevo:
# -*- coding:utf-8 -*-
from gutenberg.acquire import load_etext from gutenberg.cleanup import strip_headers
libros_idiomas={"frances":[17808,16901,10774,33378,27566,26813,18627], "espanol":[16484,42727,25317,1619,27736,11529,31637,31013] }
for idioma in libros_idiomas: dic_cont_palabras_en_oraciones={} print "Idioma", idioma for codigo_libro in libros_idiomas[idioma]: print codigo_libro texto=load_etext(codigo_libro) texto=strip_headers(texto).lower() for caracter_especial in u',".-?¿()¡!«»:;*_~]': texto=texto.replace(caracter_especial, ' ') for separador_oracion in '.'+'.\n': texto=texto.replace(separador_oracion, u'<>') oraciones=texto.split('<>')
for oracion in oraciones: palabras=oracion.split() cantidad_palabras=len(palabras) if len(palabras) in dic_cont_palabras_en_oraciones: dic_cont_palabras_en_oraciones[len(palabras)]+1
else: dic_cont_palabras_en_oraciones[len(palabras)]=1
palabras_en_oraciones=dic_cont_palabras_en_oraciones.keys()
|
|
« Última modificación: 1 Noviembre 2015, 21:14 pm por Wil630 »
|
En línea
|
|
|
|
Wil630
Desconectado
Mensajes: 4
|
[Python] [Python] [Python] [Python] [Python] [Python]
Hola a todos,
Debo obtener el porcentaje de oraciones con 1 palabra, 2 palabras, etc. en español y francés a partir de algunos libros obtenidos de gutenber.org. Aún no sé cómo llegar a definir el diccionario para que me muestre en el resultado final algo como esto:
{ "español": {1:0.05, 2:0.10, 3:0.15, 4:0.20, 5:0.22, ... }, "francés": {1:0.03, 2:0.14, 3:0.11, 4:0.18, 5:0.29, ... }, "italiano": ..., }
Ya bajé los libros de gutenberg.org, les quité los encabezados, limpié los textos, dividí los textos en oraciones mediante "<>" y dividí las oraciones por palabras. No sé qué más debo hacer para terminar este ejercicio.
Agradezco de antemano su colaboración.
Esto es lo que llevo:
# -*- coding:utf-8 -*-
from gutenberg.acquire import load_etext from gutenberg.cleanup import strip_headers
libros_idiomas={"frances":[17808,16901,10774,33378,27566,26813,18627], "espanol":[16484,42727,25317,1619,27736,11529,31637,31013] }
for idioma in libros_idiomas: dic_cont_palabras_en_oraciones={} print "Idioma", idioma for codigo_libro in libros_idiomas[idioma]: print codigo_libro texto=load_etext(codigo_libro) texto=strip_headers(texto).lower() for caracter_especial in u',".-?¿()¡!«»:;*_~]': texto=texto.replace(caracter_especial, ' ') for separador_oracion in '.'+'.\n': texto=texto.replace(separador_oracion, u'<>') oraciones=texto.split('<>')
for oracion in oraciones: palabras=oracion.split() cantidad_palabras=len(palabras) if len(palabras) in dic_cont_palabras_en_oraciones: dic_cont_palabras_en_oraciones[len(palabras)]+1
else: dic_cont_palabras_en_oraciones[len(palabras)]=1
palabras_en_oraciones=dic_cont_palabras_en_oraciones.keys()
|
|
|
En línea
|
|
|
|
tincopasan
Desconectado
Mensajes: 1.286
No es lo mismo conocer el camino que recorrerlo.
|
¿estás teniendo un problema de programación o de lógica? o sea que, o alguna función te da error o no la has desarrollado.Tenés una parte, diría que falta la parte del porcentaje, desarrollala y ahí se verá donde pueda haber errores.
|
|
|
En línea
|
|
|
|
Wil630
Desconectado
Mensajes: 4
|
En realidad no la he desarrollado. Hasta el momento esto es lo que llevo y no sé cómo hacer el código para el porcentaje.
|
|
|
En línea
|
|
|
|
tincopasan
Desconectado
Mensajes: 1.286
No es lo mismo conocer el camino que recorrerlo.
|
veamos...
esto es lo que sabés como obtener total_de_oraciones = 120 oraciones_2_palabras= 8 oraciones_3_palabras= 12
ahora un poco de matemáticas muy básica
si 120(oraciones) es el 100 % entonces oraciones de 8(palabras) = X (porcentaje) por lo tanto X = 8 * 100 / 120
porcentaje_oraciones_2_palabras = 8(cantidad de oraciones con 2 palabras) * 100 / 120 porcentaje_oraciones_3_palabras= 12 * 100 / 120 diccionario = agregar cantidad de oraciones de ("x")en este caso 2 palabras(key):porcentaje de esa cantidad(value) diccionario_porcentaje={2:6.66,3:10}etc.
sería lo mismo para la cantidad de palabras que tengas que agregar
|
|
|
En línea
|
|
|
|
Wil630
Desconectado
Mensajes: 4
|
Muchas gracias. Lo voy a intentar.
Saludos.
|
|
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
palabras
Java
|
andaluz
|
7
|
4,607
|
14 Abril 2010, 11:21 am
por Leyer
|
|
|
Sustituir palabras en palabras...
Java
|
soser
|
4
|
4,662
|
18 Julio 2011, 02:06 am
por Valkyr
|
|
|
Tomar una palabra random de una lista de palabras en un .txt
Programación Visual Basic
|
extreme69
|
8
|
3,460
|
17 Noviembre 2011, 00:02 am
por Pablo Videla
|
|
|
Reconocimiento de Palabras y Oraciones
.NET (C#, VB.NET, ASP)
|
rigorvzla
|
0
|
1,681
|
20 Octubre 2017, 15:12 pm
por rigorvzla
|
|
|
¿Algoritmo para obtener todas las palabras de un fichero en python?
Programación General
|
pran_krr
|
1
|
1,812
|
11 Noviembre 2019, 14:33 pm
por engel lex
|
|