2012-07-02 27 views
7

Tôi đang cố gắng trích xuất các thực thể được đặt tên từ văn bản tiếng Hà Lan. Tôi đã sử dụng nltk-trainer để đào tạo một người gắn thẻ và một chunker trên corpus conll2002 dutch. Tuy nhiên, phương thức phân tích cú pháp từ chunker không phát hiện bất kỳ thực thể có tên nào. Đây là mã của tôi:NLTK được gọi là nhận dạng đối tượng bằng tiếng Hà Lan

str = 'Christiane heeft een lam.' 

tagger = nltk.data.load('taggers/dutch.pickle') 
chunker = nltk.data.load('chunkers/dutch.pickle') 

str_tags = tagger.tag(nltk.word_tokenize(str)) 
print str_tags 

str_chunks = chunker.parse(str_tags) 
print str_chunks 

Và đầu ra của chương trình này:

[('Christiane', u'N'), ('heeft', u'V'), ('een', u'Art'), ('lam', u'Adj'), ('.', u'Punc')] 
(S Christiane/N heeft/V een/Art lam/Adj ./Punc) 

tôi đã mong Christiane được phát hiện như một thực thể được đặt tên. Bất kỳ trợ giúp nào?

+0

gì sẽ xảy ra khi "Christiane" xuất hiện ở giữa câu? –

+0

@larsmans Không có tổ chức nào. Tôi thậm chí đã thử với một câu từ kho tập luyện, nhưng không may mắn. Tôi đã sử dụng train_chunker.py trên tập conll2002 (ned.train) – user1491915

+0

Bạn có thể cho biết chính xác cách bạn đã sử dụng train_chunker.py không? Bản demo của tôi tại http://text-processing.com/demo/tag/ nhận ra Christiane, tất nhiên tôi đã sử dụng train_chunker trên conll2002, vì vậy phải có sự khác biệt trong các đối số đào tạo. – Jacob

Trả lời

7

Kho ảnh conll2002 có cả văn bản tiếng Tây Ban Nha và tiếng Hà Lan, vì vậy bạn nên đảm bảo sử dụng thông số fileids, như trong python train_chunker.py conll2002 --fileids ned.train. Đào tạo trên cả tiếng Tây Ban Nha và tiếng Hà Lan sẽ có kết quả kém.

Thuật toán mặc định là Chunker dựa trên Tagger, không hoạt động tốt trên conll2002. Thay vào đó, sử dụng một bộ phân loại dựa chunker như NaiveBayes, vì vậy toàn bộ lệnh có thể trông như thế này (và tôi đã xác nhận rằng các chunker kết quả không nhận ra "Christiane" như là một "PER"):

python train_chunker.py conll2002 --fileids ned.train --classifier NaiveBayes --filename ~/nltk_data/chunkers/conll2002_ned_NaiveBayes.pickle

+0

Tôi đã sao chép vấn đề được đề cập, và nó xảy ra ngay cả khi người gắn thẻ và chunker được đào tạo chỉ trên ned.train. Hơn nữa, các chunker dường như không thể xác định bất kỳ NEs ngay cả trên các câu từ corpus đào tạo với các thẻ POS vàng. – Qnan

+0

Thú vị ... Điều đó làm cho nó hoạt động. Cảm ơn, @Jacob. – Qnan

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