2014-05-23 25 views
7

Używam programu Stanford CRFClifier, a aby go uruchomić, wymaga pliku, który jest wyszkolonym modelem klasyfikatora. Umieściłem ten plik w katalogu zasobów. Z pliku Javadocs dla CRFClassifier http://nlp.stanford.edu/nlp/javadoc/javanlp/edu/stanford/nlp/ie/crf/CRFClassifier.html#getClassifier(java.lang.String) ścieżka do pliku musi być wejściem do obiektu CRFClassifier.getClassifier(), a jest to obiekt java.lang.String. Moje pytanie brzmi: jak mogę powiedzieć .getClassifier(), że plik znajduje się w katalogu zasobów? tj. jak uzyskać ścieżkę do pliku w katalogu zasobów?Scala pobierz ścieżkę do pliku w folderze zasobów

Próbowałem po prostu

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

Ale to zwraca FileNotFoundException.

Próbowałem również

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

która zwraca obiekt BufferedSource, ale nie wiem, jak uzyskać ścieżkę od tego.

Każda pomoc zostanie bardzo doceniona.

+1

będzie to 'CRFClassifier.getClassifier (getClass.getResource ("/split0-ner-modelu. ser.gz "). getPath)' działa dla ciebie? –

+0

Tak właśnie zrobiłem. Dziękuję Ci. – user1893354

Odpowiedz

17

udało mi się być w stanie uzyskać ścieżkę do pliku, wykonując następujące czynności

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

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