5

我按照Github 上的 Syntax 官方文档下载并安装了 SyntaxNet 。按照文档(注释语料库),我尝试读取一个由 SyntaxNet.conll命名的文件并将结果写入其中,但我做不到。我的问题是:wj.conllwj-tagged.conll

  1. SyntaxNet 总是读取.conll文件吗?(不是.txt文件?)。我有点困惑,因为我知道 SyntaxNet 读取.conll文件用于训练和测试过程,但我有点怀疑是否有必要将文件转换为.txt文件.conll才能进行词性分析和依赖分析。

  2. 如何使 SyntaxNet 从文件中读取(我厌倦了 GitHub 文档中有关 SyntaxNet 的所有可能方式解释,但它对我不起作用)

4

2 回答 2

6

将这些声明行添加到文件末尾的“context.pbtxt”。这里的“inp”和“out”是存在于 syntexnet 根目录中的文本文件。

   input {
   name: 'inp_file'
   record_format: 'english-text'
     Part {
     file_pattern: 'inp'
     }
   }
   input {
   name: 'out_file'
   record_format: 'english-text'
     Part {
     file_pattern: 'out'
     }
   }

将句子添加到您希望为其完成标记的“inp”文件中,并在下次使用 --input 和 --output 标签运行 syntaxnet 时在 shell 中指定它们。

只是为了帮助您多一点,我正在粘贴一个示例 shell 命令。

bazel-bin/syntaxnet/parser_eval \
--input inp_file \
--output stdout-conll \
--model syntaxnet/models/parsey_mcparseface/tagger-params \
--task_context syntaxnet/models/parsey_mcparseface/context.pbtxt \
--hidden_layer_sizes 64 \
--arg_prefix brain_tagger \
--graph_builder structured \
--slim_model \
--batch_size 1024 | bazel-bin/syntaxnet/parser_eval \
--input stdout-conll  \
--output out_file \
--hidden_layer_sizes 512,512 \
--arg_prefix brain_parser \
--graph_builder structured \
--task_context syntaxnet/models/parsey_mcparseface/context.pbtxt \
--model_path syntaxnet/models/parsey_mcparseface/parser-params \
--slim_model --batch_size 1024

在上述脚本中,第一个 shell 命令的输出(POS 标记)用作第二个 shell 命令的输入,其中两个 shell 命令用“|”分隔

于 2016-05-28T06:58:15.877 回答
-1

如果您想将 demo 的输出保存在 .txt 文件中,这只是一个快速帮助:

试试echo "open file X with application Y" | ./demo.sh > output.txt 它会给你句子树到当前目录。

于 2016-06-08T20:42:58.400 回答