簡體   English   中英

NLTK在荷蘭命名實體識別

[英]NLTK named entity recognition in dutch

我試圖從荷蘭文本中提取命名實體。 我使用nltk-trainer在conll2002荷蘭語語料庫上訓練一個tagger和一個chunker。 但是,來自chunker的解析方法未檢測到任何命名實體。 這是我的代碼:

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

而這個程序的輸出:

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

我期待Christiane被檢測為命名實體。 有幫助嗎?

conll2002語料庫有西班牙語和荷蘭語文本,所以你應該確保使用fileids參數,如python train_chunker.py conll2002 --fileids ned.train 西班牙語和荷蘭語的訓練效果不佳。

默認算法是基於Tagger的Chunker,它在conll2002上不能很好地工作。 相反,使用像NaiveBayes這樣的基於分類器的分塊,因此完整命令可能看起來像這樣(並且我已經確認結果chunker確實將“Christiane”識別為“PER”):

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM