13

I am using the Stanford CRFClassifier and in order to run, it requires a file that is the trained classifier model. I have put this file in the resources directory. From the Javadocs for the CRFClassifier http://nlp.stanford.edu/nlp/javadoc/javanlp/edu/stanford/nlp/ie/crf/CRFClassifier.html#getClassifier(java.lang.String) the path to the file must be an input to CRFClassifier.getClassifier() and it is a java.lang.String object. So my question is how do I tell .getClassifier() that the file is in the resources directory? i.e. how do I get the file path of a file in the resources directory?

I have tried simply

val classifier = CRFClassifier.getClassifier("./src/main/resources/my_model.ser.gz")

But this returns a FileNotFoundException.

I have also tried

Source.fromURL(getClass.getResource("/my_model.ser.gz"))

which returns a BufferedSource object, but I do not know how to get a file path from this.

Any help would be greatly appreciated.

user1893354
  • 5,778
  • 12
  • 46
  • 83

1 Answers1

24

I managed to be able to get the file path by doing the following

val url=getClass.getResource("/my_model.ser.gz")

val classifier = CRFClassifier.getClassifier(url.getPath())

user1893354
  • 5,778
  • 12
  • 46
  • 83