我需要为大学制定一个命名的实体识别程序。我使用的是nltk和python 2.7。我使用的语料库是nltk拥有的西班牙语。有一种特定的方法在nltk中对这个语料库进行标记化,我使用这种形式的标记化来完成整个程序,但我想现在使用外部语料库并希望以相同的方式对其进行标记,但我不知道如何。
nltk的方法如何标记数据:
[(你'墨尔本',你' NP',你' B-LOC'),(你'(',你' Fpa',u' O'),(u'澳大利亚', 你' NP',你' B-LOC'),(你')',你' Fpt',你' O') ,(你',你' Fc',你' O'),(你' 25', 你' Z' O'),(你可能',你' NC',你' O'),(你& #39;(',你' Fpa',你' O'),(你' EFE', 你' NC',你' B-ORG'),(你')',你' Fpt',你' O') ,(你',你' F',你' O')]
每个句子的列表,每一行都是一个元组
我是怎么做到的:
[u&#39;墨尔本&#39;,你&#39; NP&#39;,你&#39; B-LOC&#39;,你&#39;(&#39;,你&#39; Fpa&#39; ;,你&#39;澳大利亚&#39;, 你&#39; NP&#39;,你&#39; B-LOC&#39;,你&#39;)&#39;,你&#39; Fpt&#39;,你&#39; O&#39;,你&# 39;,&#39;,你&#39; Fc&#39;,你&#39; O&#39;,&#39; 25&#39;,&#39; Z&#39;, 你好,你可以&#39;,你&#39; NC&#39;,你&#39; o&#39;(&#39;,你&#39; Fpa&#39;,你&#39;,你&#39; EFE&#39;,你&#39; NC&#39;, 你&#39; B-ORG&#39;,你&#39;&#39;,你&#39; Fpt&#39;,你&#39; O&#39;,&#39;。&#39;] < / p>
没有元组
我使用的代码:
f = io.open(train_corpus, 'r', encoding='utf8')
raw = f.read()
#my method
tokens = [nltk.word_tokenize(sent) for sent in nltk.sent_tokenize(raw)]
train_sents = nltk.Text(tokens)
#nltk's method
train = list(nltk.corpus.conll2002.iob_sents('esp.train'))
#print results of two forms
print train_sents[0]
print
print train[0]
然后我想知道这个程序的tokenizer如何与nltk为另一个语料库中的语料库完成的标记化方法保持一致。