我在Syntax official documentation on Github之后下载并安装了SyntaxNet。根据文档(注释语料库),我尝试通过SyntaxNet读取名为.conllwj.conll文件,并将结果写入wj-tagged.conll,但我做不到。我的问题是:

  • SyntaxNet是否总是读取.conll文件? (不是.txt文件?)。我有些困惑,因为我知道SyntaxNet会在训练和测试过程中读取.conll文件,但我有点怀疑是否有必要将.txt文件转换为.conll文件,以使其具有Speach和Dependency解析功能。
  • 如何使SyntaxNet从文件中读取(我厌倦了GitHub文档中有关SyntaxNet的所有可能方法,但对我而言不起作用)
  • 最佳答案

    将这些声明行添加到文件末尾的“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标记运行语法网时在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命令以“|”分隔。

    关于nlp - 注释语料库(语法网),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37464591/

    10-12 21:46