Word2Vec中new LineSentenceIterator()默认File类型,multipartfile咋整?

发布于 2022-09-11 21:13:20 字数 1334 浏览 17 评论 0

看到的好多资料是,在加载语料库的时候是直接给定某个路径下的文件,比如:

SentenceIterator iter = new LineSentenceIterator(new File("/Users/cvn/Desktop/file.txt"));

但是,我现在需要在springboot下用multipartfile来传入,不想把路径直接写死,想让用户随便选择分好词的文件,部分代码如下:

public train(MultipartFile source_file, MultipartFile des_file,Integer m1,Integer m2,Integer m3,Integer m4,Integer m5) throws IOException {
        
        SentenceIterator iter = new LineSentenceIterator(new File(source_file.getOriginalFilename()));

getOriginalFilename()---该方法有个提示是:This may contain path information depending on the browser used,but it typically will not with any other than Opera.

所以,在测试的时候IE浏览器显示了盘符,运行正常,但是谷歌浏览器加载文件只是显示了文件名,就一直报错:"Please specify an existing file"

看了下源代码,这是没有找到还是没转换成file的意思??
public LineSentenceIterator(File f) {
        if (!f.exists() || !f.isFile())
            throw new IllegalArgumentException("Please specify an existing file");
        try {
            this.f = f;
            this.file = new BufferedInputStream(new FileInputStream(f));
            iter = IOUtils.lineIterator(this.file, "UTF-8");
        } catch (IOException e) {
            throw new RuntimeException(e);
        }
    }

现在不知道要怎么改,才能解决谷歌浏览器不报错,请大家帮帮忙!!( T﹏T )

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

御守 2022-09-18 21:13:20

后面看到有人解答的简书链接,之前有看到过,本觉得用不上,后来再看一遍,到提示了我,可以换个能够接受String类型的方法,刚好有个Collection类,虽然可以保留Multipartfile,但是目标文件不方便处理,所以最后还是全部换成了File类型,然后前端改为input type="text",由用户直接输入文件路径。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文