如何在nltk中使用外部语料库

时间:2016-11-17 04:16:06

标签: python nlp nltk

我需要为大学制定一个命名的实体识别程序。我使用的是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为另一个语料库中的语料库完成的标记化方法保持一致。

0 个答案:

没有答案