2013-05-28 54 views
6

Tôi đang thực hiện gắn thẻ POS với Stanford POS Tagger. Trình gắn thẻ chỉ trả về một khả năng gắn thẻ cho câu đầu vào. Ví dụ, khi được cung cấp với câu đầu vào "The clown weeps.", Trình gắn thẻ POS tạo ra (sai) "The_DT clown_NN weeps_NNS ._.".Nhận được nhiều thẻ gắn thẻ với Stanford POS Tagger

Tuy nhiên, ứng dụng của tôi sẽ cố phân tích kết quả và có thể từ chối gắn thẻ POS vì không có cách nào để phân tích cú pháp. Do đó, trong ví dụ này, nó sẽ từ chối "The_DT clown_NN weeps_NNS ._." nhưng sẽ chấp nhận "The_DT clown_NN weeps_VBZ ._." mà tôi giả định là gắn thẻ tin cậy thấp hơn cho trình phân tích cú pháp.

Do đó, tôi sẽ thích trình gắn thẻ POS để cung cấp nhiều giả thuyết cho việc gắn thẻ từng từ, được chú thích bởi một số loại giá trị tin cậy. Bằng cách này, ứng dụng của tôi có thể chọn gắn thẻ POS với độ tin cậy cao nhất để đạt được phân tích cú pháp hợp lệ cho các mục đích của nó.

Tôi không tìm được cách nào để yêu cầu Trình gắn thẻ POS của Stanford sản xuất nhiều giả thuyết gắn thẻ (n-tốt nhất) cho mỗi từ (hoặc thậm chí cho toàn bộ câu). Có cách nào để làm việc này không? (Ngoài ra, tôi cũng OK khi sử dụng một trình gắn thẻ POS khác có hiệu suất tương đương có thể hỗ trợ cho điều này.)

+0

Có thể liên quan đến này (cũng chưa được trả lời) Câu hỏi http://stackoverflow.com/questions/15574915/stanford-core-nlp-how-to-get-the-probability-margin -hoặc lỗi –

Trả lời

-1

Chúng tôi nhận thấy rằng mô hình mặc định cho thẻ POS không đủ tốt. Hóa ra là sử dụng một thẻ mô hình khác tốt hơn nhiều. Chúng tôi hiện đang sử dụng wsj-0-18-hai chiều-distsim và hiệu suất là đủ tốt cho hầu hết các nhiệm vụ. Tôi cho nó như vậy:

props.put("pos.model", 
    "edu/stanford/nlp/models/pos-tagger/wsj-bidirectional/wsj-0-18-bidirectional-distsim.tagger"); 
props.put("annotators", "tokenize, ssplit, pos, ..."); 
pipeline = new StanfordCoreNLP(props); 
+0

Mẹo thú vị, nhưng không thực sự trả lời câu hỏi của tôi. :) – a3nm

Các vấn đề liên quan