Newsgrupos.com  

Retroceder   Newsgrupos.com > Forum > Newsgroup es.comp.lenguajes.* Foro > Newsgroup es.comp.lenguajes.c
Registrarse Preguntas Frecuentes Lista de Foreros Calendario Buscar Temas de Hoy Marcar Foros Como Leídos




Respuesta
 
LinkBack Herramientas Desplegado
  #1 (permalink)  
Antiguo 31-08-2007, 04:43:51
daniel_arv
 
Mensajes: n/a
Predeterminado Sistema texto predictivo

Hola necesito hacer en C un sistema de texto predictivo, es el sistema
que utilizan los celulares para escribir mensajes de texto.
Tengo un diccionario con 85200 palabras mas o menos y lo que
necesitaria es poder realizar el sistema pero sin levantar el
diccionario a memoria, ni leer secuencialmente mas de una vez, pero si
puedo crear varios archivos auxiliares ya que puede que alguna palabra
que escriba no este en el diccionario,
todavia no se me ocurre, si alguno tiene alguna idea sera
bienvenida...

Muchas Gracias.
Y perdon por las molestias.....

Responder Con Cita
Alt Today
Advertising
Google Adsense
 
This advertising will not be shown
in this way to registered members.
Register your free account today
and become a member on
Newsgrupos.com
Standard Sponsored Links

  #2 (permalink)  
Antiguo 31-08-2007, 18:28:01
Pedro Maicas
 
Mensajes: n/a
Predeterminado Re: Sistema texto predictivo

On Thu, 30 Aug 2007 21:43:51 -0700, daniel_arv <daniel_arv***hotmail.com> wrote:

>Hola necesito hacer en C un sistema de texto predictivo, es el sistema
>que utilizan los celulares para escribir mensajes de texto.
>Tengo un diccionario con 85200 palabras mas o menos y lo que
>necesitaria es poder realizar el sistema pero sin levantar el
>diccionario a memoria, ni leer secuencialmente mas de una vez, pero si
>puedo crear varios archivos auxiliares ya que puede que alguna palabra
>que escriba no este en el diccionario,
>todavia no se me ocurre, si alguno tiene alguna idea sera
>bienvenida...


A mi "me se" ha ocurrido una idea porque no es
la primera vez que respondo esta pregunta, aunque yo
nunca lo he hecho.

Puedes generar una lista ordenada en un fichero aparte,
de modo que para buscar una palabra tengas que acceder
pocas veces al fichero, haciendo una busqueda dicotómica
o binaria (como se diga), en 17 accesos tienes que encontrar
cualquier palabra (para menos de 128000 palabras)

Entonces cada vez que el usuario pulsa una tecla buscas
la primera palabra y la ultima que comienzan por
las letras que ya tienes y con eso rellenas una lista.



Saludos :-) -Pedro-

http://www.maicas.net/

e-mail en www.maicas.net
Responder Con Cita
  #3 (permalink)  
Antiguo 31-08-2007, 18:28:01
Pedro Maicas
 
Mensajes: n/a
Predeterminado Re: Sistema texto predictivo

On Thu, 30 Aug 2007 21:43:51 -0700, daniel_arv <daniel_arv***hotmail.com> wrote:

>Hola necesito hacer en C un sistema de texto predictivo, es el sistema
>que utilizan los celulares para escribir mensajes de texto.
>Tengo un diccionario con 85200 palabras mas o menos y lo que
>necesitaria es poder realizar el sistema pero sin levantar el
>diccionario a memoria, ni leer secuencialmente mas de una vez, pero si
>puedo crear varios archivos auxiliares ya que puede que alguna palabra
>que escriba no este en el diccionario,
>todavia no se me ocurre, si alguno tiene alguna idea sera
>bienvenida...


A mi "me se" ha ocurrido una idea porque no es
la primera vez que respondo esta pregunta, aunque yo
nunca lo he hecho.

Puedes generar una lista ordenada en un fichero aparte,
de modo que para buscar una palabra tengas que acceder
pocas veces al fichero, haciendo una busqueda dicotómica
o binaria (como se diga), en 17 accesos tienes que encontrar
cualquier palabra (para menos de 128000 palabras)

Entonces cada vez que el usuario pulsa una tecla buscas
la primera palabra y la ultima que comienzan por
las letras que ya tienes y con eso rellenas una lista.



Saludos :-) -Pedro-

http://www.maicas.net/

e-mail en www.maicas.net
Responder Con Cita
  #4 (permalink)  
Antiguo 31-08-2007, 18:28:01
Pedro Maicas
 
Mensajes: n/a
Predeterminado Re: Sistema texto predictivo

On Thu, 30 Aug 2007 21:43:51 -0700, daniel_arv <daniel_arv***hotmail.com> wrote:

>Hola necesito hacer en C un sistema de texto predictivo, es el sistema
>que utilizan los celulares para escribir mensajes de texto.
>Tengo un diccionario con 85200 palabras mas o menos y lo que
>necesitaria es poder realizar el sistema pero sin levantar el
>diccionario a memoria, ni leer secuencialmente mas de una vez, pero si
>puedo crear varios archivos auxiliares ya que puede que alguna palabra
>que escriba no este en el diccionario,
>todavia no se me ocurre, si alguno tiene alguna idea sera
>bienvenida...


A mi "me se" ha ocurrido una idea porque no es
la primera vez que respondo esta pregunta, aunque yo
nunca lo he hecho.

Puedes generar una lista ordenada en un fichero aparte,
de modo que para buscar una palabra tengas que acceder
pocas veces al fichero, haciendo una busqueda dicotómica
o binaria (como se diga), en 17 accesos tienes que encontrar
cualquier palabra (para menos de 128000 palabras)

Entonces cada vez que el usuario pulsa una tecla buscas
la primera palabra y la ultima que comienzan por
las letras que ya tienes y con eso rellenas una lista.



Saludos :-) -Pedro-

http://www.maicas.net/

e-mail en www.maicas.net
Responder Con Cita
  #5 (permalink)  
Antiguo 31-08-2007, 18:28:01
Pedro Maicas
 
Mensajes: n/a
Predeterminado Re: Sistema texto predictivo

On Thu, 30 Aug 2007 21:43:51 -0700, daniel_arv <daniel_arv***hotmail.com> wrote:

>Hola necesito hacer en C un sistema de texto predictivo, es el sistema
>que utilizan los celulares para escribir mensajes de texto.
>Tengo un diccionario con 85200 palabras mas o menos y lo que
>necesitaria es poder realizar el sistema pero sin levantar el
>diccionario a memoria, ni leer secuencialmente mas de una vez, pero si
>puedo crear varios archivos auxiliares ya que puede que alguna palabra
>que escriba no este en el diccionario,
>todavia no se me ocurre, si alguno tiene alguna idea sera
>bienvenida...


A mi "me se" ha ocurrido una idea porque no es
la primera vez que respondo esta pregunta, aunque yo
nunca lo he hecho.

Puedes generar una lista ordenada en un fichero aparte,
de modo que para buscar una palabra tengas que acceder
pocas veces al fichero, haciendo una busqueda dicotómica
o binaria (como se diga), en 17 accesos tienes que encontrar
cualquier palabra (para menos de 128000 palabras)

Entonces cada vez que el usuario pulsa una tecla buscas
la primera palabra y la ultima que comienzan por
las letras que ya tienes y con eso rellenas una lista.



Saludos :-) -Pedro-

http://www.maicas.net/

e-mail en www.maicas.net
Responder Con Cita
  #6 (permalink)  
Antiguo 01-09-2007, 13:24:45
Oscar Garcia
 
Mensajes: n/a
Predeterminado Re: Sistema texto predictivo

Pedro Maicas escribió:
> On Thu, 30 Aug 2007 21:43:51 -0700, daniel_arv <daniel_arv***hotmail.com> wrote:
>> Hola necesito hacer en C un sistema de texto predictivo, es el sistema
>> que utilizan los celulares para escribir mensajes de texto.
>> Tengo un diccionario con 85200 palabras mas o menos y lo que
>> necesitaria es poder realizar el sistema pero sin levantar el
>> diccionario a memoria, ni leer secuencialmente mas de una vez, pero si
>> puedo crear varios archivos auxiliares ya que puede que alguna palabra
>> que escriba no este en el diccionario,
>> todavia no se me ocurre, si alguno tiene alguna idea sera
>> bienvenida...

>
> A mi "me se" ha ocurrido una idea porque no es
> la primera vez que respondo esta pregunta, aunque yo
> nunca lo he hecho.
>
> Puedes generar una lista ordenada en un fichero aparte,
> de modo que para buscar una palabra tengas que acceder
> pocas veces al fichero, haciendo una busqueda dicotómica
> o binaria (como se diga), en 17 accesos tienes que encontrar
> cualquier palabra (para menos de 128000 palabras)
>
> Entonces cada vez que el usuario pulsa una tecla buscas
> la primera palabra y la ultima que comienzan por
> las letras que ya tienes y con eso rellenas una lista.


A mí "se me" ha ocurrido otra idea mejor.

Teniendo en cuenta que has dicho que puedes generar archivos auxiliares
yo te propondría el siguiente esquema:

1.- Convertir el texto tecleado a "teclado numérico". Por ejemplo "casa"
se convertiría en "2272" y "emprendedor" en "36773633367".
2.- Acceder al directorio o archivo en el que se almacenan las palabras
que empiezan por la raiz tecleada. Por ejemplo, si hemos tecleado
"emprend" (3677363) accedemos al archivo ./3/6/7/7/3/6/3/palabras.txt o
../36/77/36/3.palabras.txt o simplemente ./3677363.palabras.txt. En él
habremos almacenado las palabras que comienzan por dicha combinación.
3.- Cuando agreguemos una palabra nueva al diccionario deberemos
agregarlo al archivo de cada una de sus raices. Ejemplos con "emprendedor":
* Usando directorios de un nivel:
../3/palabras.txt
../3/6/palabras.txt
../3/6/7/palabras.txt
../3/6/7/7/palabras.txt
../3/6/7/7/3/palabras.txt
../3/6/7/7/3/6/palabras.txt
../3/6/7/7/3/6/3/palabras.txt
etc...
* Usando directorios de dos niveles:
../3.palabras.txt
../36/palabras.txt
../36/7.palabras.txt
../36/77/palabras.txt
../36/77/3.palabras.txt
../36/77/36/palabras.txt
../36/77/36/3.palabras.txt
etc...
* Archivos en un mismo directorio:
../3.palabras.txt
../36.palabras.txt
../367.palabras.txt
../3677.palabras.txt
../36773.palabras.txt
../367736.palabras.txt
../3677363.palabras.txt
etc...

Con este sistema cada vez que teclees algo tendrás acceso inmediato al
archivo que contiene las palabras exactas, ni más ni menos.

Espero que te sea de utilidad la idea. Un saludo.

--
Óscar Javier García Baudet
LinaresDigital
Responder Con Cita
  #7 (permalink)  
Antiguo 01-09-2007, 13:24:45
Oscar Garcia
 
Mensajes: n/a
Predeterminado Re: Sistema texto predictivo

Pedro Maicas escribió:
> On Thu, 30 Aug 2007 21:43:51 -0700, daniel_arv <daniel_arv***hotmail.com> wrote:
>> Hola necesito hacer en C un sistema de texto predictivo, es el sistema
>> que utilizan los celulares para escribir mensajes de texto.
>> Tengo un diccionario con 85200 palabras mas o menos y lo que
>> necesitaria es poder realizar el sistema pero sin levantar el
>> diccionario a memoria, ni leer secuencialmente mas de una vez, pero si
>> puedo crear varios archivos auxiliares ya que puede que alguna palabra
>> que escriba no este en el diccionario,
>> todavia no se me ocurre, si alguno tiene alguna idea sera
>> bienvenida...

>
> A mi "me se" ha ocurrido una idea porque no es
> la primera vez que respondo esta pregunta, aunque yo
> nunca lo he hecho.
>
> Puedes generar una lista ordenada en un fichero aparte,
> de modo que para buscar una palabra tengas que acceder
> pocas veces al fichero, haciendo una busqueda dicotómica
> o binaria (como se diga), en 17 accesos tienes que encontrar
> cualquier palabra (para menos de 128000 palabras)
>
> Entonces cada vez que el usuario pulsa una tecla buscas
> la primera palabra y la ultima que comienzan por
> las letras que ya tienes y con eso rellenas una lista.


A mí "se me" ha ocurrido otra idea mejor.

Teniendo en cuenta que has dicho que puedes generar archivos auxiliares
yo te propondría el siguiente esquema:

1.- Convertir el texto tecleado a "teclado numérico". Por ejemplo "casa"
se convertiría en "2272" y "emprendedor" en "36773633367".
2.- Acceder al directorio o archivo en el que se almacenan las palabras
que empiezan por la raiz tecleada. Por ejemplo, si hemos tecleado
"emprend" (3677363) accedemos al archivo ./3/6/7/7/3/6/3/palabras.txt o
../36/77/36/3.palabras.txt o simplemente ./3677363.palabras.txt. En él
habremos almacenado las palabras que comienzan por dicha combinación.
3.- Cuando agreguemos una palabra nueva al diccionario deberemos
agregarlo al archivo de cada una de sus raices. Ejemplos con "emprendedor":
* Usando directorios de un nivel:
../3/palabras.txt
../3/6/palabras.txt
../3/6/7/palabras.txt
../3/6/7/7/palabras.txt
../3/6/7/7/3/palabras.txt
../3/6/7/7/3/6/palabras.txt
../3/6/7/7/3/6/3/palabras.txt
etc...
* Usando directorios de dos niveles:
../3.palabras.txt
../36/palabras.txt
../36/7.palabras.txt
../36/77/palabras.txt
../36/77/3.palabras.txt
../36/77/36/palabras.txt
../36/77/36/3.palabras.txt
etc...
* Archivos en un mismo directorio:
../3.palabras.txt
../36.palabras.txt
../367.palabras.txt
../3677.palabras.txt
../36773.palabras.txt
../367736.palabras.txt
../3677363.palabras.txt
etc...

Con este sistema cada vez que teclees algo tendrás acceso inmediato al
archivo que contiene las palabras exactas, ni más ni menos.

Espero que te sea de utilidad la idea. Un saludo.

--
Óscar Javier García Baudet
LinaresDigital
Responder Con Cita
  #8 (permalink)  
Antiguo 01-09-2007, 13:24:45
Oscar Garcia
 
Mensajes: n/a
Predeterminado Re: Sistema texto predictivo

Pedro Maicas escribió:
> On Thu, 30 Aug 2007 21:43:51 -0700, daniel_arv <daniel_arv***hotmail.com> wrote:
>> Hola necesito hacer en C un sistema de texto predictivo, es el sistema
>> que utilizan los celulares para escribir mensajes de texto.
>> Tengo un diccionario con 85200 palabras mas o menos y lo que
>> necesitaria es poder realizar el sistema pero sin levantar el
>> diccionario a memoria, ni leer secuencialmente mas de una vez, pero si
>> puedo crear varios archivos auxiliares ya que puede que alguna palabra
>> que escriba no este en el diccionario,
>> todavia no se me ocurre, si alguno tiene alguna idea sera
>> bienvenida...

>
> A mi "me se" ha ocurrido una idea porque no es
> la primera vez que respondo esta pregunta, aunque yo
> nunca lo he hecho.
>
> Puedes generar una lista ordenada en un fichero aparte,
> de modo que para buscar una palabra tengas que acceder
> pocas veces al fichero, haciendo una busqueda dicotómica
> o binaria (como se diga), en 17 accesos tienes que encontrar
> cualquier palabra (para menos de 128000 palabras)
>
> Entonces cada vez que el usuario pulsa una tecla buscas
> la primera palabra y la ultima que comienzan por
> las letras que ya tienes y con eso rellenas una lista.


A mí "se me" ha ocurrido otra idea mejor.

Teniendo en cuenta que has dicho que puedes generar archivos auxiliares
yo te propondría el siguiente esquema:

1.- Convertir el texto tecleado a "teclado numérico". Por ejemplo "casa"
se convertiría en "2272" y "emprendedor" en "36773633367".
2.- Acceder al directorio o archivo en el que se almacenan las palabras
que empiezan por la raiz tecleada. Por ejemplo, si hemos tecleado
"emprend" (3677363) accedemos al archivo ./3/6/7/7/3/6/3/palabras.txt o
../36/77/36/3.palabras.txt o simplemente ./3677363.palabras.txt. En él
habremos almacenado las palabras que comienzan por dicha combinación.
3.- Cuando agreguemos una palabra nueva al diccionario deberemos
agregarlo al archivo de cada una de sus raices. Ejemplos con "emprendedor":
* Usando directorios de un nivel:
../3/palabras.txt
../3/6/palabras.txt
../3/6/7/palabras.txt
../3/6/7/7/palabras.txt
../3/6/7/7/3/palabras.txt
../3/6/7/7/3/6/palabras.txt
../3/6/7/7/3/6/3/palabras.txt
etc...
* Usando directorios de dos niveles:
../3.palabras.txt
../36/palabras.txt
../36/7.palabras.txt
../36/77/palabras.txt
../36/77/3.palabras.txt
../36/77/36/palabras.txt
../36/77/36/3.palabras.txt
etc...
* Archivos en un mismo directorio:
../3.palabras.txt
../36.palabras.txt
../367.palabras.txt
../3677.palabras.txt
../36773.palabras.txt
../367736.palabras.txt
../3677363.palabras.txt
etc...

Con este sistema cada vez que teclees algo tendrás acceso inmediato al
archivo que contiene las palabras exactas, ni más ni menos.

Espero que te sea de utilidad la idea. Un saludo.

--
Óscar Javier García Baudet
LinaresDigital
Responder Con Cita
  #9 (permalink)  
Antiguo 01-09-2007, 13:24:45
Oscar Garcia
 
Mensajes: n/a
Predeterminado Re: Sistema texto predictivo

Pedro Maicas escribió:
> On Thu, 30 Aug 2007 21:43:51 -0700, daniel_arv <daniel_arv***hotmail.com> wrote:
>> Hola necesito hacer en C un sistema de texto predictivo, es el sistema
>> que utilizan los celulares para escribir mensajes de texto.
>> Tengo un diccionario con 85200 palabras mas o menos y lo que
>> necesitaria es poder realizar el sistema pero sin levantar el
>> diccionario a memoria, ni leer secuencialmente mas de una vez, pero si
>> puedo crear varios archivos auxiliares ya que puede que alguna palabra
>> que escriba no este en el diccionario,
>> todavia no se me ocurre, si alguno tiene alguna idea sera
>> bienvenida...

>
> A mi "me se" ha ocurrido una idea porque no es
> la primera vez que respondo esta pregunta, aunque yo
> nunca lo he hecho.
>
> Puedes generar una lista ordenada en un fichero aparte,
> de modo que para buscar una palabra tengas que acceder
> pocas veces al fichero, haciendo una busqueda dicotómica
> o binaria (como se diga), en 17 accesos tienes que encontrar
> cualquier palabra (para menos de 128000 palabras)
>
> Entonces cada vez que el usuario pulsa una tecla buscas
> la primera palabra y la ultima que comienzan por
> las letras que ya tienes y con eso rellenas una lista.


A mí "se me" ha ocurrido otra idea mejor.

Teniendo en cuenta que has dicho que puedes generar archivos auxiliares
yo te propondría el siguiente esquema:

1.- Convertir el texto tecleado a "teclado numérico". Por ejemplo "casa"
se convertiría en "2272" y "emprendedor" en "36773633367".
2.- Acceder al directorio o archivo en el que se almacenan las palabras
que empiezan por la raiz tecleada. Por ejemplo, si hemos tecleado
"emprend" (3677363) accedemos al archivo ./3/6/7/7/3/6/3/palabras.txt o
../36/77/36/3.palabras.txt o simplemente ./3677363.palabras.txt. En él
habremos almacenado las palabras que comienzan por dicha combinación.
3.- Cuando agreguemos una palabra nueva al diccionario deberemos
agregarlo al archivo de cada una de sus raices. Ejemplos con "emprendedor":
* Usando directorios de un nivel:
../3/palabras.txt
../3/6/palabras.txt
../3/6/7/palabras.txt
../3/6/7/7/palabras.txt
../3/6/7/7/3/palabras.txt
../3/6/7/7/3/6/palabras.txt
../3/6/7/7/3/6/3/palabras.txt
etc...
* Usando directorios de dos niveles:
../3.palabras.txt
../36/palabras.txt
../36/7.palabras.txt
../36/77/palabras.txt
../36/77/3.palabras.txt
../36/77/36/palabras.txt
../36/77/36/3.palabras.txt
etc...
* Archivos en un mismo directorio:
../3.palabras.txt
../36.palabras.txt
../367.palabras.txt
../3677.palabras.txt
../36773.palabras.txt
../367736.palabras.txt
../3677363.palabras.txt
etc...

Con este sistema cada vez que teclees algo tendrás acceso inmediato al
archivo que contiene las palabras exactas, ni más ni menos.

Espero que te sea de utilidad la idea. Un saludo.

--
Óscar Javier García Baudet
LinaresDigital
Responder Con Cita
  #10 (permalink)  
Antiguo 02-09-2007, 08:49:20
Pedro Maicas
 
Mensajes: n/a
Predeterminado Re: Sistema texto predictivo

On Sat, 01 Sep 2007 15:24:45 +0200, Oscar Garcia
<redstarQUITARSPAM23***terra.es> wrote:

>Con este sistema cada vez que teclees algo tendrás acceso inmediato al
>archivo que contiene las palabras exactas, ni más ni menos.


Mmmmmmmmmmm no estoy de acerdo en casi nada de lo dices
en este mensaje.

No veo el "acceso inmediato", lo que tu no hagas lo tendrá
que hacer el sistema operativo y nadie te garantiza que
sea mas eficiente que si implementas la busqueda tu mismo,
y raro sería que el sistema operativo implemente un sistema
de busqueda que no se pueda mejorar, si fuera una base
de datos probablemente si, pero el sistema operativo no
creo.

Lo de los numeros no le veo la necesidad, con poner a cada directorio
el nombre de la primera palabra almacenada en esa rama sería lo mismo,
y te permitiría balancear el tamaño de los ficheros, aunque insisto en
que un solo fichero es más eficiente.

Si piensas que las primeras busquedas van a ser muy repetitivas y que
por eso ahorras tiempo haciendolo así, ten en cuenta que un programa
buscando sobre un solo fichero tambien puede mantener una cache del arbol
de índices.

Además haciendolo tu todo en tu programa, puedes hacer una búsqueda
anticipada, para cada pulsacion buscas las palabras en los dos extremos
, presentas los resultados, y hasta la proxima pulsacion puedes ir
explorando las ramas que cuelgan de esta parte y cargandolas en memoria.
(me refiero a los índices, no a las palabras)

Por otro lado, al final vas a tener que buscar en un fichero
con muchas palabras (no creo que propongas llegar a un fichero
por palabra), por lo que tendrás que indexar ese ultimo fichero
igualmente.

Y si quieres disminuir el numero de busquedas puedes recurrir
a un arbol con más ramas en cada nodo, aunque con dos ramas
todo es más facil.

Saludos :-) -Pedro-

http://www.maicas.net/

e-mail en www.maicas.net
Responder Con Cita
 
Respuesta


Herramientas
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Trackbacks are habilitado
Pingbacks are habilitado
Refbacks are habilitado


Temas Similares
Tema Autor Foro Respuestas Último mensaje
Cambiar a un numero a formato texto y añadirle otro texto. antoni Newsgroup microsoft.public.es.excel 5 24-11-2007 08:37:59
Convertir Cuadro de Texto a Solo Texto Cristhian Nunez Newsgroup microsoft.public.es.powerpoint 2 29-08-2007 11:04:01
Texto Fecha y "se pega el sistema". Enrique Newsgroup microsoft.public.es.vfoxpro.datos 12 21-07-2007 15:44:22
No puedo teclear en los campos de texto del explorer ni en el campo de texto de los mensajes aki ni en ningun campo de texto, ayuda vorpatril Newsgroup es.comp.infosistemas.internet 4 24-04-2005 18:19:24
autocompletar o texto predictivo Remedios Iranzo Newsgroup microsoft.public.es.works 0 16-01-2004 17:52:24





Powered by: vBulletin, Versión 3.6.8
Derechos de Autor ©2000 - 2008, Jelsoft Enterprises Ltd.

LinkBacks Enabled by vBSEO 3.1.0 © 2007, Crawlability, Inc.