Scala获取资源文件夹中文件的文件路径

13
我正在使用斯坦福CRFClassifier,为了运行,它需要一个训练好的分类器模型文件。我已经将这个文件放在资源目录中。从CRFClassifier的Javadocshttp://nlp.stanford.edu/nlp/javadoc/javanlp/edu/stanford/nlp/ie/crf/CRFClassifier.html#getClassifier(java.lang.String)中可以看到,文件路径必须作为输入传递给CRFClassifier.getClassifier()方法,并且它是一个java.lang.String对象。所以我的问题是如何告诉.getClassifier()方法文件在资源目录中?也就是说,如何获取资源目录中文件的路径?
我已经尝试简单地:
val classifier = CRFClassifier.getClassifier("./src/main/resources/my_model.ser.gz")

但是这会返回一个FileNotFoundException(文件未找到)错误。

我也尝试过

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

该函数返回一个BufferedSource对象,但我不知道如何从中获取文件路径。

非常感谢任何帮助。


1
这个 CRFClassifier.getClassifier(getClass.getResource("/split0-ner-model.ser.gz").getPath) 对你有用吗? - Volker Stampa
是的,那就是我最终做的。谢谢。 - user1893354
1个回答

24

我成功地通过以下方法获得了文件路径:

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

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接