2011-12-03 62 views
5

Tôi đang cố gắng sử dụng CRFSuite nhưng tôi không thể tìm ra cách để sử dụng ví dụ/ner.py và pos.pyChạy ví dụ CRFSuite

Chính xác, làm thế nào để làm cho một đầu vào có dạng:

# Ner.py 
fields = 'y w pos chk' 

hoặc

# Pos.py 
fields = 'w num cap sym p1 p2 p3 p4 s1 s2 s3 s4 y' 

các "yw pos" tôi có thể nhận được từ một mô hình CoNNL, ví dụ, nhưng "chk" phần và tất cả những lĩnh vực trong pos.py tôi không thực sự có được .

Ngoài ra, có cách nào để xử lý văn bản thô (không có tất cả các thẻ đó) với CRFSuite do tôi có mô hình được đào tạo không?

+0

tôi cũng vậy, tôi quan tâm đến việc giải quyết vấn đề này; Paticularly, bắt đầu từ dữ liệu CoNLL trích dẫn (2000 cho chunking, 2003 cho NER, nhưng những gì để sử dụng cho PoS?), Làm thế nào để tôi tạo ra các dữ liệu PoS. Như đã trích dẫn, đầu vào phải là ''w num cap sym p1 p2 p4 s4 s2 s3 s4 y'', có nghĩa là từ đầu tiên và thẻ PoS cuối cùng. Nhưng tất cả những thứ ở giữa và làm thế nào để có được và tạo ra nó? – fnl

+0

Có lẽ câu hỏi liên quan đến phần PoS chính xác hơn là: Làm thế nào để tạo ra định dạng đầu vào gắn thẻ PoS từ một tệp OWPL được gắn thẻ PoS thường xuyên ('" thẻ từ \ n "...') bằng cách sử dụng các tập lệnh này? – fnl

Trả lời

1

Bạn không thể sử dụng ner.py hoặc pos.py với dữ liệu do tác giả của hướng dẫn cung cấp. Bạn cần một bộ dữ liệu CoNLL-2000 thích hợp. :)

Chỉ cần làm ví dụ, bạn có thể tìm thấy nó here

Tôi hy vọng tôi đã trả lời một cách chính xác cho câu hỏi của bạn.

+0

Có, loại, nhưng làm thế nào để tạo ra dữ liệu đầu vào CRFsuite để gắn thẻ PoS? Tức là, tập dữ liệu gốc được sử dụng để tạo các tệp đào tạo/kiểm tra bằng cách sử dụng mẫu PoS với các trường như được hiển thị trong câu hỏi? (Tệp ner.py cho biết mỗi trường thực sự có nghĩa là gì (num, cap, sym, p1-4 và s1-4).) – fnl

+0

Để lấy tập dữ liệu CoNLL-2000 (tiếng Anh): 'import nltk; train_sents = list (nltk.corpus.conll2000.iob_sents ('train.txt')); test_sents = list (nltk.corpus.conll2000.iob_sents ('test.txt')) ' –

0

Hóa ra việc sửa đổi tệp pos.py đơn giản hơn để thực hiện những gì cần làm. Bây giờ định dạng đầu vào cho pos.py'w y', trong khi các tính năng 'num cap sym p1 p2 p3 p4 s1 s2 s3 s4' được tạo bởi chính tập lệnh. Điều này sẽ giải quyết các vấn đề pos.py. Dưới đây là các ý chính:

https://gist.github.com/fnl/21116fa57527946c5dbe

Đối với ner.py kịch bản, như trả lời bằng cách @Legend đã có, định dạng dữ liệu đầu vào có liên quan có thể được tìm thấy, ví dụ, ở đây:

http://www.cnts.ua.ac.be/conll2003/ner/