我在Syntax official documentation on Github之后下载并安装了SyntaxNet。根据文档(注释语料库),我尝试通过SyntaxNet读取名为.conll
的wj.conll
文件,并将结果写入wj-tagged.conll
,但我做不到。我的问题是:
.conll
文件? (不是.txt
文件?)。我有些困惑,因为我知道SyntaxNet会在训练和测试过程中读取.conll
文件,但我有点怀疑是否有必要将.txt
文件转换为.conll
文件,以使其具有Speach和Dependency解析功能。 最佳答案
将这些声明行添加到文件末尾的“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/