Hi Guilherme,
Currently, most of the algorithms we have are based around words, rather than documents. However, you could also try the VectorSpaceModel, which is very similar to LSA but doesn't perform the singular value decomposition on the documents.
Another alternative is to use any of the algorithms to build a SemanticSpace object and then use the
DocumentVectorBuilder class to construct vectors for new documents. This class will sum the vectors of the words in the new document. By summing the vectors, the DocumentVectorBuilder is using a weak form of composition: documents that contain the same kinds of terms end up having very similar vectors. However, this approach is very simple and ignores lots of important things like word order ("john killed the dog" versus "the dog killed john") and negation ("she is pretty" versus "she is not pretty").
My guess is that LSA will give you better documents, but you still might see reasonable results with DocumentVectorBuilder depending on the content of your students' answers. If we can be of any help, please let us know,
Thanks,
David