在 Mallet(终端,OSx)中使用带空格的文件路径的技巧?
Trick to use file paths with spaces in Mallet (Terminal, OSx)?
是否有技巧可以通过 mac 上的终端在 Mallet 中使用带有 space 的文件路径?
例如,以下所有都给我错误:
逃离 space
./bin/mallet import-dir --input /Volumes/Macintosh\ HD/Users/MY_NAME/Desktop/en --output /Users/MY_NAME/Desktop/en.mallet --remove-stopwords TRUE --keep-sequence TRUE
双引号,无转义
./bin/mallet import-dir --input "/Volumes/Macintosh HD/Users/MY_NAME/Desktop/en" --output /Users/MY_NAME/Desktop/en.mallet --remove-stopwords TRUE --keep-sequence TRUE
and,带双引号
./bin/mallet import-dir --input "/Volumes/Macintosh\ HD/Users/MY_NAME/Desktop/en" --output /Users/MY_NAME/Desktop/en.mallet --remove-stopwords TRUE --keep-sequence TRUE
最后用单引号
./bin/mallet import-dir --input '/Volumes/Macintosh\ HD/Users/MY_NAME/Desktop/en' --output /Users/MY_NAME/Desktop/en.mallet --remove-stopwords TRUE --keep-sequence TRUE
他们都想把文件夹当成多个文件夹,拆分在space:
Labels =
/Volumes/Macintosh\
HD/Users/MY_NAME/Desktop/en
Exception in thread "main" java.lang.IllegalArgumentException: /Volumes/Macintosh\ is not a directory.
at cc.mallet.pipe.iterator.FileIterator.<init>(FileIterator.java:108)
at cc.mallet.pipe.iterator.FileIterator.<init>(FileIterator.java:145)
at cc.mallet.classify.tui.Text2Vectors.main(Text2Vectors.java:322)
除了将我所有带有 space 的文件重命名为下划线之外,还有什么办法吗? (我知道我不需要输入 /Volumes/Macintosh\HD/... 但可以从 /Users 开始。这只是一个例子。)
问题在于 import-dir
旨在将多个目录作为输入。参数解析器需要一种方法将此用例与 "escaped space" 用例区分开来,请记住 Windows 路径可以以 \
.
结尾
支持这两种情况的最佳方法可能是添加一个 --single-input
选项,将其参数作为单个字符串。
我还发现电子表格样式 import-file
命令几乎总是比使用目录更可取。
作为解决方法,您可以:
(1) 编写一些代码来读取目录内容并生成一个示例文件以用于:
bin/mallet 输入文件
这是用于导入的 mallet 快速启动页面,其中描述了输入文件版本:http://mallet.cs.umass.edu/import.php
(2) 生成符号 link 到文件夹中没有任何空格的位置
是否有技巧可以通过 mac 上的终端在 Mallet 中使用带有 space 的文件路径?
例如,以下所有都给我错误:
逃离 space
./bin/mallet import-dir --input /Volumes/Macintosh\ HD/Users/MY_NAME/Desktop/en --output /Users/MY_NAME/Desktop/en.mallet --remove-stopwords TRUE --keep-sequence TRUE
双引号,无转义
./bin/mallet import-dir --input "/Volumes/Macintosh HD/Users/MY_NAME/Desktop/en" --output /Users/MY_NAME/Desktop/en.mallet --remove-stopwords TRUE --keep-sequence TRUE
and,带双引号
./bin/mallet import-dir --input "/Volumes/Macintosh\ HD/Users/MY_NAME/Desktop/en" --output /Users/MY_NAME/Desktop/en.mallet --remove-stopwords TRUE --keep-sequence TRUE
最后用单引号
./bin/mallet import-dir --input '/Volumes/Macintosh\ HD/Users/MY_NAME/Desktop/en' --output /Users/MY_NAME/Desktop/en.mallet --remove-stopwords TRUE --keep-sequence TRUE
他们都想把文件夹当成多个文件夹,拆分在space:
Labels =
/Volumes/Macintosh\
HD/Users/MY_NAME/Desktop/en
Exception in thread "main" java.lang.IllegalArgumentException: /Volumes/Macintosh\ is not a directory.
at cc.mallet.pipe.iterator.FileIterator.<init>(FileIterator.java:108)
at cc.mallet.pipe.iterator.FileIterator.<init>(FileIterator.java:145)
at cc.mallet.classify.tui.Text2Vectors.main(Text2Vectors.java:322)
除了将我所有带有 space 的文件重命名为下划线之外,还有什么办法吗? (我知道我不需要输入 /Volumes/Macintosh\HD/... 但可以从 /Users 开始。这只是一个例子。)
问题在于 import-dir
旨在将多个目录作为输入。参数解析器需要一种方法将此用例与 "escaped space" 用例区分开来,请记住 Windows 路径可以以 \
.
支持这两种情况的最佳方法可能是添加一个 --single-input
选项,将其参数作为单个字符串。
我还发现电子表格样式 import-file
命令几乎总是比使用目录更可取。
作为解决方法,您可以:
(1) 编写一些代码来读取目录内容并生成一个示例文件以用于:
bin/mallet 输入文件
这是用于导入的 mallet 快速启动页面,其中描述了输入文件版本:http://mallet.cs.umass.edu/import.php
(2) 生成符号 link 到文件夹中没有任何空格的位置