2014-05-23 10 views
7

Ich verwende den Stanford CRFClassifier und um zu starten, benötigt es eine Datei, die das trainierte Klassifikatormodell ist. Ich habe diese Datei im Ressourcenverzeichnis abgelegt. Von den Javadocs für den CRFClassifier http://nlp.stanford.edu/nlp/javadoc/javanlp/edu/stanford/nlp/ie/crf/CRFClassifier.html#getClassifier(java.lang.String) muss der Pfad zu der Datei eine Eingabe für CRFClassifier.getClassifier() sein und es ist ein java.lang.String-Objekt. Meine Frage ist also, wie ich .getClassifier() sagen kann, dass die Datei im Resources-Verzeichnis ist? Wie bekomme ich den Dateipfad einer Datei im Ressourcenverzeichnis?Scala Dateipfad der Datei im Ressourcenordner

Ich habe einfach versucht,

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

Aber das gibt eine FileNotFoundException.

Ich habe auch versucht,

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

, die ein BufferedSource Objekt zurückgibt, aber ich weiß nicht, wie einen Dateipfad von diesem zu erhalten.

Jede Hilfe würde sehr geschätzt werden.

+1

nach dem, indem Sie den Dateipfad zu bekommen, um in der Lage wäre diese 'CRFClassifier.getClassifier (getClass.getResource ("/split0-ner-Modell. ser.gz "). getPath)' Arbeit für dich? –

+0

Ja, das habe ich getan. Vielen Dank. – user1893354

Antwort

17

ich es geschafft,

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

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