Take the 2-minute tour ×
Mathematica Stack Exchange is a question and answer site for users of Mathematica. It's 100% free, no registration required.

I would like to know if it's possible to use/install this java library on Mathematica. This library, named SimMetrics, has a lot of string similarity functions that I would like to test.

Here is the list of functions:

Levenstein, NeedlemanWunch, SmithWaterman, SmithWatermanGotoh, SmithWatermanGotohWindowedAffine, Jaro, JaroWinkler, ChapmanLengthDeviation, ChapmanMeanLength, QGramsDistance, BlockDistance, CosineSimilarity, DiceSimilarity, EuclideanDistance, JaccardSimilarity, MatchingCoefficient, MongeElkan, OverlapCoefficient.

I have no knowledge on Java and use a MAC. A thought in Leonid Java Reloader, but it's a complete .jar file, not a small class.

Update

I download the simmetrics_jar_v1_6_2_d07_02_07.jar from the link above, saved it on notebook directory and tryed:

Needs["JLink`"]
ReinstallJava[ClassPath->"/System/Library/Java/JavaVirtualMachines/:"<>NotebookDirectory[]<>"simmetrics_jar_v1_6_2_d07_02_07.jar"]    

Now I have to use LoadJavaClass? How can a list the available classes?

If I unzip the .jar file, the classes are inside this folder: uk/ac/shef/wit/simmetrics/similaritymetrics/

for example: Levenshtein.class

share|improve this question
1  
Many of these distance functions are built in to Mathematica as well, mostly with the same names. –  bill s Aug 12 '13 at 2:25
1  
Given that you could do it with .NET dlls, I'd say its also possible with Java libraries. Have you tried following this? reference.wolfram.com/mathematica/JLink/tutorial/… –  Jonie Aug 12 '13 at 3:26
    
tks @Jonie, it was a begin. –  Murta Aug 12 '13 at 10:42
add comment

1 Answer

up vote 2 down vote accepted

Looking at this it is easy to figure out what to do:

c = LoadJavaClass[ "uk.ac.shef.wit.simmetrics.similaritymetrics.Levenshtein"]

Then

Constructors@c

and

Methods@c

will get you going. I tried things on Windows, but it should work on Mac alike:

Mathematica graphics

share|improve this answer
3  
I just want to add a couple remarks to Rolf's excellent answer. I want to discourage the use of an idiom like ReinstallJava[ClassPath->NotebookDirectory[]] for modifying the Java classpath. ReinstallJava is a destructive operation that might impact other J/Link-using packages currently in use on your system. Instead, use AddToClassPath["some dir containing jar files"]. The Simmetrics library also has a full set of JavaDocs that you can download separately from the site. That type of documentation is indispensable when tinkering with a library via J/Link. –  Todd Gayley Aug 13 '13 at 15:28
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.