Skip to main content

Cli.java won't compile in jahmm

Problem:

When you compile Cli.class in terminal or Eclipse, you may get the following error:

Cli.java:27: package be.ac.ulg.montefiore.run.jahmm.io does not exist import be.ac.ulg.montefiore.run.jahmm.io.FileFormatException; ^ Cli.java:54: cannot find symbol symbol : class AbnormalTerminationException
9 more errors

Solution:

You must to pass parameters to your class. The class takes 5 parameters which are:
  • Parameter 1: should be one of the following:
    • create: creates a new HMM description file,
    • print: prints a HMM
    • learn-kmeans: applies the k-Means algorithm
    • learn-bw: applies the Baum-Welch algorithm
    • generate:  generates an observation sequence given a HMM
    • distance-kl:  computes the distance between two HMMs
  • Parameter 2:
    • -opdf. It takes one of the following:
    • -r: argument describes that HMM will take 4 integers. For example, -r 4 means that HMM takes 0.25 0.25 0.25 0.25 observations probabilities. The model in Jahmm assign the same probabilities.
    • -ng: specify the number of gaussians distribution. For example, -ng 2.
    • -d: specify the vector dimension. For example, -d 2, means that the model will create a matrix of 2*2 probabilities.
    • -n: specify the number of states to build the model. For example, -n 4.
    • -o: specify the name of your output file. For example, -o  output.hmm.

From Eclipse:
  • Add your Junit.jar and jahmm-0.6.1.jar.
    • Right click on your project > Properties > Java Build Path > Libraries > Add JARS (if it is within your project folder), or Add External JARS (if the jar outside your project folder).
    • Apply.
  • Then,
    • Go to Cli.java that exists in cli in your source code folder.
    • Right click on Cli.java > Run As > Run Configurations > select Arguments tab and Enter:
      • create -opdf integer -r 4 -n 3 -o test.hmm
    • Then click Apply and Run.



The output will look like the following: (of course it will differ based on your configuration to the parameters)


Problem Source:

JAHMM User Guide:

Comments

Popular posts from this blog

An attempt was made to insert a node where it is not permitted

Do you face this Error while you are writing code to generate xml file from java? Exception in thread "main" org.w3c.dom.DOMException : HIERARCHY_REQUEST_ERR: An attempt was made to insert a node where it is not permitted.        at com.sun.org.apache.xerces.internal.dom.CoreDocumentImpl.insertBefore(Unknown Source)        at com.sun.org.apache.xerces.internal.dom.NodeImpl.appendChild(Unknown Source)        at generatexml.WriteXMLFile.main( WriteXMLFile.java:30 ) Well the answer is: Don't insert the node where it isn't permitted. Change your generated directory file path from 'C' to other directory ex, D or to any directory you have. Make sure the ‘appendChild’ is referring to the right element. Don’t appending twice, only make it once. Ex, //Writetoxml.java   Element rootElement = doc . createElement ( " Company " );   doc . appendChild ( ro...

Error Class names are only accepted if annotation processing is explicitly requested

Do you get the following error? Class names, 'Hello', are only accepted if annotation processing is explicitly requested 1 error In case you got this error, then you forget to add .java to the file name when you compile it So when you want to compile a file using cmd console window write the filename.java extension Example: Javac Hello.java If you write it in this way the error will go away. So don’t forget to include suffix with your file name during compilation.