Wednesday, July 9, 2014

Error lucene Mahout and Carrot2

En un proyecto hemos intentado generar un servicio con los cluster de Mahout Kmeans y los de Carrot2. Nos da un error de mahout-math ya que en de la version 0.6 a la 0.9 pasa una clase de interface a clase abstracta y no se pueden utilizar las 2 juntas. Mahout kmeans usa Mahout -math 0.9 y Carrot2 3.9.2 usa Mahout-math-0.6. La solución es recompilar y cambiar el nombre tanto de mahout-math.0.6 y sus referencias a Carrot2. Como uso Maven tambien tengo que publicarlo con otro groupid quitando las dependecias e integrando todo en un único jar. como he odiado este error. java.lang.IncompatibleClassChangeError: Implementing class

Tuesday, July 8, 2014

Regresion lineal con octave.

La regresion lineal sirve para apatir de un gran conjunto de historicos datos, entrenar un algoritmo para a partir de estos datos predecir futuros comportamientos. Parece complejo, pero con Octave es muy sencillo. simplemente cargas los datos de histórico a partir de un fichero csv. Estos datos en la primera columna tenemos la variable a predecir.

 //crea matriz X = dlmread('datos.csv', ";");
//Como hemos comentado en la primera columna está la variable a predecir
Y Y =X(:,1);
//con convencion ponemos a 1 la primera columna.
X(:,1)=1;
//normalizamos dividiendo por el maximo valor de cada columna
X2 = bsxfun(@rdivide,X, max(X));
//calculamos el valor de theta a partir de esta formula matricial
theta=pinv(X'*X)*X'*Y;
//dibujamos los puntos por pantalla. plot(X2(:,2), X2*theta, '-')
 //para saber el valor que predecimos si es correcto o no comprobar los valores de Y con los de
X*theta
//comprobar el error y ajustaremos los modelos matriciales para ver si el error se puede corregir. //añadiremos mas columnas al modelo X dependiendo el tipo de curva que se adapte a nuestro modelo
//por ejemplo añadiendo al modelo distintas columnas. Ten en cuenta que todo aquí son matrices y el tiempo de cálculo se eleva considerablemente.

 =====Solucion =====
X = dlmread('datos.csv', ";");
Y =X(:,1);
X(:,1)=1;
X2 = bsxfun(@rdivide,X, max(X));
X3 = pow2(X2)
X4 = sqrt(X2)
X5 = pow2(X2,3)
X6 = [X2 X3 X4 X5]
theta6=pinv(X6'*X6)*X6'*Y; X6*theta6

sony xperia C5303 arreglado el tema del altavoz y del microfono

Llevo varios días intentando usar mi teléfono móvil, pero no funcionaba ni el micro ni el altavoz externo. Es como si estuviera el jack de los cascos activados. En un foro he leído que simplemente metiendo un destornillador por el jack de los auriculares funcionaba de nuevo. Como no me atrevo a meter un objeto metálico, a ver si lo rompo del todo. He cogido un bastoncillo de los oídos y lo he cortado con las tijeras. La parte que he cortado lo he metido un par de veces hasta el fondo del jack, magia, ha vuelto a funcionar. Solucionado el tema del teléfono.

Monday, June 9, 2014

java and access

to connect access form java, i get this error. Error: java.sql.SQLException: [Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified To connect java 64 bit with access, it 's necesary install driver 64 bit download and install http://download.microsoft.com/download/0/B/8/0B8EFDD9-8CE5-405C-A28D-A108A63AE2FC/AccessDatabaseEngine_X64.exe And if you want read all query and launch this query "SELECT [Name] FROM MSysObjects WHERE Name Like 'MSys*' ORDER BY [Name]" you get this error: error: READ en 'MSysObjects' You must execute a macro http://stackoverflow.com/questions/19971082/no-read-permission-on-msysobjects strDdl = "GRANT SELECT ON MSysObjects TO Admin;" CurrentProject.Connection.Execute strDdl If you get this error "ODBC Driver Manager 'invalid string or buffer length' error " , my solver is update java 1.7.70 at least.

Thursday, November 14, 2013

install jdk7 in ubuntu

To install jdk7 in ubuntu follow next step
sudo apt-get install python-software-properties
if dont install this error is show "Ubuntu: add-apt-repository: command not found" when execute next step
 sudo add-apt-repository ppa:webupd8team/java
 sudo apt-get update
 sudo apt-get install oracle-java7-installer

Monday, September 2, 2013

make a mirror dbpedia in 5 steps

to make a mirror, you follow 5 simples steps. you must install virtuoso database. and change virtuoso.ini to read files
DirsAllowed              = ., /path/files/script 
1º download files from dbpedia with command
wget -r -np -nd -nc -A'*.nt.bz2' http://downloads.dbpedia.org/3.8/en/
2º decompress files
for i in `ls ./download/*.bz2` ; do
  bzcat $i | gzip --fast > ${i%.bz2}.gz && mv ./download/*.gz ./decompress/ && rm $i ;
done &
3º deletes triplets more long 1024 chars.
cd decompress;
for i in *.gz  ; do
  echo -n "cleaning $i..."
  zcat $i | grep -v -E '^<.+> <.+> <.{1025,}> \.$'  > $i.clean
  mv *clean ../fixed/
  echo "done."
done
4º split files in small files.
cd fixed
for i in *clean ; do

  split_size=$(stat -c%s "$i")

  echo "Size = $split_size"

  echo -n "slipting  $i..."

  if [ $split_size -gt 5000000 ]; then
        echo "File is large."

        echo "Performing split on file $i"

        split -a 10 -l 50000 $i "split/$i" ;
  else
        mv $i split/ ;
   fi

done;
5º execute insert command in virtuoso database
echo "creating load statement"

cd  slipt

for file in `ls *`
do
        load_target="/home/user/split/$file"
        load_query="EXEC=TTLP_MT(file_to_string_output('$load_target'), '', 'http://dbpedia.org', 255);commit WORK;"
        isql-vt 1111  dba dba  "$load_query"
     #  echo "$virt_isql" "$virt_port" "$virt_userName" "$virt_passWord" "$load_query"
 if [ $?  -ne 1 ]; then
  #echo "execution ok. move data"
  ls  split/ | wc -l
  mv "$load_target"  process-files/
  echo "procesando $file"
 else
   echo "error to process file $file"
   exit;
 fi
done;
echo "done"