Desde hace poco estoy siguiendo las
extensiones de OpenOffice.org y he visto que hay unos cuantos
diccionarios. Me llamó la atención
OpenMedSpell que contiene casi 50000 términos (en inglés) relacionados con la medicina. Así que pensé ¿por qué no crear un diccionario con términos relacionados con la ciencia y tecnología de los alimentos? Vaya esto parece una buena idea, por lo que me puse a investigar cómo crear diccionarios para OpenOffice.org.
Así descubrí que la extensión instala una serie de ficheros y entre ellos, uno con la extensión .dic que no es más que una lista de palabras ordenadas alfabéticamente. Por otra parte, OOo te deja definir tus propios diccionarios, pero su manejo deja bastante que desear:
Para teclear así prefiero un editor de texto normal y corriente. Dicho y hecho: abrí mi editor de texto, puse las manos en el teclado y... no llegué a las 25 palabras, típica situación en la que no te acuerdas de lo que te tienes que acordar y con la dificultad añadida de que tienes que escribirlas bien, si no, sería un trabajo inútil. Me quedé pensando en cómo automatizar el proceso de obtención de una lista de términos, hasta que caí en la cuenta de que en Linux, al seleccionar una palabra con el ratón ya se ha copiado al portapapeles (para entendernos). Si tuviera una forma de acceder al portapapeles, podría escribir su contenido a un fichero y crear así de forma sencilla y rápida la lista de palabras desde cualquier fuente de texto: la web, correos electrónicos, PDFs, etc.
Hay programas sencillos para acceder al portapapeles como xclip o xsel, pero no hacían lo que yo quería y otros programas permiten una gestión del portapapeles con más características como parcellite y glipper (o klipper). Del primero no saqué nada claro e instalar el segundo requería casi 100 MB de espacio en disco, excesivo para lo que quería. Con ganas de hacer algo en python, me puse a buscar por Google "python clipboard" y encontré varias páginas con ejemplos para acceder al portapapeles, entre ellas ésta que permite el
el paso del contenido del portapapeles entre dos ordenadores. Entre eso y la documentación de python, he hecho este miniscript.
from __future__ import with_statement
import pygtk
pygtk.require('2.0')
import gtk
import time
import sys
cbp = gtk.Clipboard(display=gtk.gdk.display_get_default(), selection="PRIMARY")
with open(sys.argv[1], 'a') as fichero:
while (True):
prev = cbp.wait_for_text()
while (prev == (cbp.wait_for_text())):
time.sleep(1)
prev = cbp.wait_for_text()
fichero.write(prev + '\n')
La única opción que permite es el nombre del fichero que guardará la lista de palabras y para detenerlo hay que hacerlo «a las bravas» (Ctrl-C), pero cumple lo que quería, capturar las palabras que voy seleccionando con el ratón y guardarlas en el fichero. No me preocupo de que no estén ordenadas o repetidas, para eso ya están los programas «sort» y «uniq». La primera vez que lo he puesto a prueba he llegado a las 122 palabras.
Comentarios