Tôi bắt đầu chơi với Syntaxnet hai ngày trước và tôi tự hỏi cách sử dụng/xuất đầu ra (cây ascii hoặc conll) ở định dạng dễ phân tích cú pháp (ví dụ: Json, XML , đồ thị python).Cách sử dụng cú pháp đầu ra
Cảm ơn sự giúp đỡ của bạn!
Tôi bắt đầu chơi với Syntaxnet hai ngày trước và tôi tự hỏi cách sử dụng/xuất đầu ra (cây ascii hoặc conll) ở định dạng dễ phân tích cú pháp (ví dụ: Json, XML , đồ thị python).Cách sử dụng cú pháp đầu ra
Cảm ơn sự giúp đỡ của bạn!
Trước khi đến cây ascii (tôi nghĩ bạn đang theo dõi demo.sh), đầu vào đi qua gắn thẻ và phân tích cú pháp. Loại bỏ bước cuối cùng trong đường dẫn lệnh.
tập tin demo.sh sửa đổi của bạn sẽ trông như thế này: -
PARSER_EVAL=bazel-bin/syntaxnet/parser_eval
MODEL_DIR=syntaxnet/models/parsey_mcparseface
[[ "$1" == "--conll" ]] && INPUT_FORMAT=stdin-conll || INPUT_FORMAT=stdin
$PARSER_EVAL \
--input=$INPUT_FORMAT \
--output=stdout-conll \
--hidden_layer_sizes=64 \
--arg_prefix=brain_tagger \
--graph_builder=structured \
--task_context=$MODEL_DIR/context.pbtxt \
--model_path=$MODEL_DIR/tagger-params \
--slim_model \
--batch_size=1024 \
--alsologtostderr \
| \
$PARSER_EVAL \
--input=stdin-conll \
--output=stdout-conll \
--hidden_layer_sizes=512,512 \
--arg_prefix=brain_parser \
--graph_builder=structured \
--task_context=$MODEL_DIR/context.pbtxt \
--model_path=$MODEL_DIR/parser-params \
--slim_model \
--batch_size=1024 \
--alsologtostderr \
Sau đó bạn có thể chạy: -
$ echo 'Bob brought the pizza to Alice.' | syntaxnet/demo.sh 1>sample.txt 2>dev/null
Bạn dẫn sẽ được lưu trữ trong sample.txt và nó trông như thế này : -
1 Bob _ NOUN NNP _ 2 nsubj _ _
2 brought _ VERB VBD _ 0 ROOT _ _
3 the _ DET DT _ 4 det _ _
4 pizza _ NOUN NN _ 2 dobj _ _
5 to _ ADP IN _ 2 prep _ _
6 Alice _ NOUN NNP _ 5 pobj _ _
7 . _ . . _ 2 punct _ _
Từ đây, bạn có thể dễ dàng lấy thông tin về phần đầu của mỗi từ, phần lời nói và loại bằng cách chia tách dữ liệu với \ n
Cây ascii của chính nó được tạo bằng cách sử dụng ở trên.
Tôi đến đây để tìm kiếm một huyền thoại cho các phần đầu ra của lời nói. Nó được chia sẻ trong một câu trả lời đã bị xóa - mà những người dùng khác có thể không nhìn thấy được.
Các phần của từ viết tắt tiếng nói dường như khớp với số Penn Parts of Speech Tags cho câu của tôi cho đến thời điểm này.Trích dẫn bảng mà ở đây trong trường hợp trang đi xuống hoặc thay đổi:
- CC Phối kết hợp
- CD ĐHY số
- DT determiner
- EX Hiện sinh có
- FW từ Ngoại
- IN Đề xuất hoặc kết hợp cấp dưới
- Tính từ JJ
- JJR Adjective, so sánh
- JJS Adjective, bậc
- LS List item marker
- MD Modal
- NN Noun, số ít hoặc khối lượng
- NNS Noun, số nhiều
- NNP Proper noun, ít
- NNPS Danh từ thích hợp, số nhiều
- PDT Predeterminer
- P OS từ sở hữu kết thúc
- pronoun cá nhân PRP
- PRP $ từ sở hữu pronoun
- RB trạng từ
- RBR Adverb, so sánh
- RBS Adverb, bậc
- RP Hạt
- SYM Symbol
- ĐẾN đến
- UH Interjection
- VB Verb, hình thức cơ bản
- VBD Verb, quá khứ
- VBG Verb, gerund hoặc hiện tại phân
- VBN Verb, quá khứ phân
- VBP Verb, người phi thứ 3 số ít mặt
- VBZ Verb, người thứ 3 có mặt ít
- WDT Wh-determiner
- WP Wh-pronoun
- WP $ từ sở hữu wh-pronoun
- WRB Wh-trạng từ
tôi đã viết một bài đăng blog giải thích làm thế nào để có được đầu ra của SyntaxNet cho bất kỳ ngôn ngữ nào đó, vào Python, đặc biệt vào NLTK, và sử dụng nó là đầu ra với các lớp Graph phụ thuộc và Tree.
Bạn có thể kiểm tra tại đây: http://www.davidsbatista.net/blog/2017/03/25/syntaxnet/
Cảm ơn câu trả lời của bạn. Để phân tích cú pháp tệp đầu ra, tôi đã sử dụng trình đọc tệp CONLL có sẵn trong thư viện Python NLTK. –
Hey có ai biết nơi tôi có thể nhận được một lời giải thích về những gì mỗi hàng đứng cho. Tôi đoán rằng phải có một số "danh mục" chính.Nó cũng lạ mà không bao giờ có vẻ là bất cứ điều gì trong 2 hàng cuối cùng. – Kahless
@ Không có gì bạn có thể tìm thấy giải thích về định dạng CoNLL tại đây: http://ilk.uvt.nl/conll/#dataformat –