Languages

You are currently browsing the archive for the Languages category.

In “Exploitation of Machine Learning Techniques in Modelling Phrase Movements for Machine Translation“, Ni, Saunders, Szedmak, and Niranjan (2011) create a “phrase reordering model” for statistical machine translation.  They apply their method to a Chinese-English corpus to match phrases in each language.  They compare their method to well known maximum entropy methods, support vector machines, maximum margin regression, and max-margin structure learning while giving short summaries on how each method is applied.  I’m very impressed with their writing style and the content of the paper.  The concept of maximum margin regression (similar to SVM) is explored in “Learning via Linear Operators: Maximum Margin Regression; Multiclass and Multiview Learning at One-class Complexity” by Szedmak, and Shawe-Taylor, and Parado-Hernandez (2006).  Max-margin structure learning is described in “Max–margin markov networks” by Taskar, Guestrin, and Koller (NIPS 2003).

Julia!

I am quite excited about the Julia language (windows download, manual). It’s free. It’s almost the same as Matlab, but it is as fast as C++ (much faster than Matlab and Octave, 160 times faster in the example below). Here is a quick comparison.

Matlab code (primeQ.m):

function b = primeQ( i )
   for j=2:ceil(i/2.0)
       if mod(i,j) == 0
           b = false;
           return
       end
   end
   b = true;
end

Matlab input:

tic; primeQ(71378569); toc

Matlab output:

Elapsed time is 52.608765 seconds.

Julia code (primeQ.jl):

function primeQ( i )
   for j=2:ceil(i/2.0)
       if mod(i,j) == 0
           return false;
       end
   end
   return true 
end

Julia input:

load(“primeQ.jl”)

tic(); primeQ(71378569); toc()

Julia output:

elapsed time: 0.3280000686645508 seconds

Walkingrandomly.com has a post on the Julia computer language which seems to be getting faster. Carl and I have stumbled across many languages in our efforts to get a fast version of lisp with good debugging tools. For a while we thought at one time that Haskell was the answer, but it now seems we are leaning more toward Clojure and Python recently. It is hard to pass up languages that can use tools like WEKA, SciPy, and Numpy. Another option is R, but only one of my friends uses R. Clojure is neat because it runs on the JVM and Javascript (and is being targeted at other languages such as Python, Scheme, and C).

For a speed comparison with Matlab, see this post.

A huge numbers of videos from PyCon 2012 Us are available at pyvideo.org. Marcel Caraciolo at aimotion.blogspot.com posted links to 17 of them on his blog. I have been avoiding Python for machine learning, but maybe I’ve been wrong.

Newer entries »