Video sobre como usar qlearnphrases.
Todavía sigo luchando con el algoritmo para crear textos decentes. En concreto estoy intentando que a partir de un título, se cree un texto relacionado con el texto. Estoy publicando los resultados en este otro blog: La biblia es verso.
miércoles, 21 de septiembre de 2011
Video qlearnphrases
Etiquetas:
qlearnphrases
Ubicación:
Madrid, España
miércoles, 7 de septiembre de 2011
qlearnphrases
A raiz de un articulo publicado en en divertimentosinformaticos he desarrollado una pequeña aplicación llamada qlearnphrases.
El fin de esta aplicación es aprender palabras y formar frases con más o menos sentido de las palabras aprendidas. Admite dos métodos para aprender palabras; desde fichero de texto y desde una caja de texto.
Además permite guardar las palabras aprendidas a fichero, aunque el almacenamiento no es muy optimo. Y saca un listado con todas las palabras aprendidas ordenadas por orden alfabético y con enlaces a las posibles palabras que le sucederán en las frases generadas.
He subido a google code el código del proyecto, para obtenerlo basta con escribir desde consola;
He usado git, porque nunca había trabajado con este gestor de código y siempre viene bien aprender algo nuevo.
Por lo demás sólo decir que el código no es muy decente, no libero ningún tipo de memoria, pero sólo es la primera versión, esper poder ir mejorando el programa poco a poco.
Como ejemplo la siguiente es una frase generada automáticamente por el programa:
No es muy coherente pero tengo que mejorar muchas cosas antes de ponerme a perfeccionar el algoritmo para generar frases.
Enjoy developing :)
El fin de esta aplicación es aprender palabras y formar frases con más o menos sentido de las palabras aprendidas. Admite dos métodos para aprender palabras; desde fichero de texto y desde una caja de texto.
Además permite guardar las palabras aprendidas a fichero, aunque el almacenamiento no es muy optimo. Y saca un listado con todas las palabras aprendidas ordenadas por orden alfabético y con enlaces a las posibles palabras que le sucederán en las frases generadas.
He subido a google code el código del proyecto, para obtenerlo basta con escribir desde consola;
git clone https://code.google.com/p/qlearnphrases/
He usado git, porque nunca había trabajado con este gestor de código y siempre viene bien aprender algo nuevo.
Por lo demás sólo decir que el código no es muy decente, no libero ningún tipo de memoria, pero sólo es la primera versión, esper poder ir mejorando el programa poco a poco.
Como ejemplo la siguiente es una frase generada automáticamente por el programa:
Ser maestro implica gran prestigio y lo siguiente:
Que si dentro de los misales y Usuarios OCU asciende a la zona de ahorros.
Y como futuros docentes a la posterior se trata de nosotros.
No es muy coherente pero tengo que mejorar muchas cosas antes de ponerme a perfeccionar el algoritmo para generar frases.
Enjoy developing :)
Etiquetas:
c++,
divertimentosinformaticos,
git,
qlearnphrases,
qt,
redes probabilisticas
Ubicación:
Madrid, España
viernes, 26 de agosto de 2011
Deselecionar filas en un QTableWidget.
He estado intentando eliminar la selección de una tabla QTableWidget, y la verdad es que me he demorado más de lo común debido a la forma en que se hace con qt.
La forma que me ha resultado más sencilla es la siguiente:
- Obtenemos el rango seleccionado mediante la función selectedRanges() del QTableWidget.
- Vamos recorriendo el rango y llamando a la función setRangeSelected() pasandole cada uno de los elementos QTableWidgetSelectionRange y el parámetro false para quitar la selección.
Aquí dejo el código de ejemplo, está hecho en java con qtjambi
ListunselectRange = ui.tableWidgetUsers.selectedRanges(); for(QTableWidgetSelectionRange range : unselectRange) { ui.tableWidgetUsers.setRangeSelected(range, false); }
Etiquetas:
java,
qt,
QTableWidget,
QTableWidgetSelectionRange,
qtjambi
Ubicación:
Madrid, España
viernes, 19 de agosto de 2011
Aplicando parches con diff.
En los proyectos de software libre es común que los programadores envíen sus parches de código fuente a un proyecto dado. La forma de aplicar los parches es con el comando patch.
Supongamos que tenemos el siguiente código fuente:
fib1.c
Supongamos que tenemos el siguiente código fuente:
fib1.c
#includeY hemos recibido el siguiente parche: fib-linear-time.patch#include /* Find the nth Fibonacci number. */ static int fib(int n) { if (n <= 0) return 0; if (n == 1) return 1; return fib(n - 1) + fib(n - 2); } int main(int argc, char** argv) { if (argc < 2) { fprintf(stderr, "Need an argument.\n"); return 1; } printf("%d\n", fib(atoi(argv[1]))); return 0; }
--- fib1.c
+++ fib2.c
@@ -4,11 +4,17 @@
/* Find the nth Fibonacci number. */
static int fib(int n)
{
- if (n <= 0)
- return 0;
- if (n == 1)
- return 1;
- return fib(n - 1) + fib(n - 2);
+ int prev = 1;
+ int current = 0;
+ int i;
+
+ for (i = 0; i < n; i++) {
+ int next = current + prev;
+ prev = current;
+ current = next;
+ }
+
+ return current;
}
int main(int argc, char** argv)
Para aplicar el parche simplemente debemos ejecutar la siguiente orden desde consola:
patch < fib-linear-time.patchY con esto nuestro archivo fib1.c quedaría de la forma siguiente: fib1.c
#include#include /* Find the nth Fibonacci number. */ static int fib(int n) { int prev = 1; int current = 0; int i; for (i = 0; i < n; i++) { int next = current + prev; prev = current; current = next; } return current; } int main(int argc, char** argv) { if (argc < 2) { fprintf(stderr, "Need an argument.\n"); return 1; } printf("%d\n", fib(atoi(argv[1]))); return 0; }
Ubicación:
Madrid, España
QString to const char*. Convetir QString a const char*
Cuando empezamos a programar en qt es común que no sepamos convertir converir un QString en char*.
Una forma rápida y sencilla de convertir un QString en un const char* es la siguiente.
Una forma rápida y sencilla de convertir un QString en un const char* es la siguiente.
String str("hello");
const char* ch = str.toLocal8Bit().constData();
Etiquetas:
c++,
const char,
programación,
QString,
qt
Ubicación:
Madrid, España
lunes, 15 de agosto de 2011
Usar qDebug con QString
Últimamente he estado teniendo problemas al usar la función qDebug y pasarle un QString como parámetro.
El problema, como podemos ver, es que no hay ninguna función qDebug que acepte un QString como parámetro.
La solución es usar el operador << para indicarle que QString queremos imprimir. Sería algo así:
"no matching function for call to 'qDegug(Qstring&)"
El problema, como podemos ver, es que no hay ninguna función qDebug que acepte un QString como parámetro.
La solución es usar el operador << para indicarle que QString queremos imprimir. Sería algo así:
QString text("hello qt");
qDegug() << text;
Ubicación:
Madrid, España
lunes, 25 de julio de 2011
Añadir elementos a una QToolBar
Para añadir elementos desde el diseñador a una QToolBar hace falta en primer lugar crear QActions, estos se pueden crear fácilmente desde la vista de diseñar widgets, una vez creados, hay que pinchar sobre el QAction en cuestión que queremos añadir y arrastrarlo hacia la QToolBar.
Además si queremos que los QActions luzcan con icono, debemos crearnos un fichero de recursos qrc, allí iremos importando los iconos necesarios y posteriormente se los asignamos a los QActions.
Acabo de crear los botones de la barra de herramientas de la aplicación y de asignarle sus iconos correspondientes. He obtenido los iconos de freeiconsdownload ya que tienen una licencia que permite usarlos en proyectos no comercial.
Dejo una captura de pantalla del estado actual de la aplicación. En principio está desarrollada como MDI.
El código de esta versión se puede descargar desde aquí:
svn checkout http://infobasic.googlecode.com/svn/tags/infobasic-0.0.4 infobasic-read-only
Además si queremos que los QActions luzcan con icono, debemos crearnos un fichero de recursos qrc, allí iremos importando los iconos necesarios y posteriormente se los asignamos a los QActions.
Acabo de crear los botones de la barra de herramientas de la aplicación y de asignarle sus iconos correspondientes. He obtenido los iconos de freeiconsdownload ya que tienen una licencia que permite usarlos en proyectos no comercial.
Dejo una captura de pantalla del estado actual de la aplicación. En principio está desarrollada como MDI.
El código de esta versión se puede descargar desde aquí:
svn checkout http://infobasic.googlecode.com/svn/tags/infobasic-0.0.4 infobasic-read-only
Ubicación:
Madrid, España
Suscribirse a:
Entradas (Atom)
