Stanford tokenizer 运行 从命令行管道输出到文件
Stanford tokenizer run from command line pipe output to file
我找遍了所有地方以确定是否可以从命令行 运行 Stanford CoreNLP 分词器组件并将输出直接通过管道传输到文件(就像使用 Stanford Chinese Word Segmenter),我还没有看到任何明确的答案,所以我把它作为一个独特的问题在这里提出,这可能吗?如果可以,怎么做?
我尝试使用 CoreNLP website 上指定的命令,即
java -cp "*" -Xmx2g edu.stanford.nlp.pipeline.StanfordCoreNLP -annotators tokenize,ssplit,pos,lemma,ner,parse,dcoref -file input.txt
最后添加了 >> output.txt
的修改,我意识到这很简单,但正如我上面提到的,对于有效的分段器。
这会告诉我有多少令牌,作为终端的输出,但 output.txt 文件总是空的,这是为什么?也许我可以采用一些替代管道策略?
理想情况下,我想要的是将所有标记分隔到输出文件中的不同行。
此时我在想,我将不得不编写一个小的 Java 程序来完成任务,是这样吗?
更新:
就是这样。回答我自己的问题。好像没错。只需将解析器添加到类路径中,然后就可以在命令行中使用命令。出于某种原因,它不适用于将 CoreNLP 添加到类路径。
我想我需要做的是先将分词器放到 java CLASSPATH 中,然后才能从命令行使用它,这就是上面代码中的 -cp 所指的内容。虽然,出于某种原因,我无法让它坚持下去。这听起来正确吗?
我找遍了所有地方以确定是否可以从命令行 运行 Stanford CoreNLP 分词器组件并将输出直接通过管道传输到文件(就像使用 Stanford Chinese Word Segmenter),我还没有看到任何明确的答案,所以我把它作为一个独特的问题在这里提出,这可能吗?如果可以,怎么做?
我尝试使用 CoreNLP website 上指定的命令,即
java -cp "*" -Xmx2g edu.stanford.nlp.pipeline.StanfordCoreNLP -annotators tokenize,ssplit,pos,lemma,ner,parse,dcoref -file input.txt
最后添加了 >> output.txt
的修改,我意识到这很简单,但正如我上面提到的,对于有效的分段器。
这会告诉我有多少令牌,作为终端的输出,但 output.txt 文件总是空的,这是为什么?也许我可以采用一些替代管道策略?
理想情况下,我想要的是将所有标记分隔到输出文件中的不同行。
此时我在想,我将不得不编写一个小的 Java 程序来完成任务,是这样吗?
更新:
就是这样。回答我自己的问题。好像没错。只需将解析器添加到类路径中,然后就可以在命令行中使用命令。出于某种原因,它不适用于将 CoreNLP 添加到类路径。
我想我需要做的是先将分词器放到 java CLASSPATH 中,然后才能从命令行使用它,这就是上面代码中的 -cp 所指的内容。虽然,出于某种原因,我无法让它坚持下去。这听起来正确吗?