对于类似翻译的数据集,NLTK可以使用AlignedCorpusReader读取单词对齐句子的语料库。文件必须具有以下格式:first source sentence
first target sentence
first alignment
second source sentence
second target sentence
second alignment
这意味着假设标记被空格隔开,句子以不同的行开始。例如,假设您有如下目录结构:
^{pr2}$
其中文件的内容是:# en-es.txt
This is an example
Esto es un ejemplo
0-0 1-1 2-2 3-3
以及# en-pt.txt
This is an example
Esto é um exemplo
0-0 1-1 2-2 3-3
可以使用以下脚本加载此玩具示例:# reader.py
from nltk.corpus.reader.aligned import AlignedCorpusReader
reader = AlignedCorpusReader('./data', '.*', '.txt', encoding='utf-8')
for sentence in reader.aligned_sents():
print(sentence.words)
print(sentence.mots)
print(sentence.alignment)
输出['This', 'is', 'an', 'example']
['Esto', 'es', 'un', 'ejemplo']
0-0 1-1 2-2 3-3
['This', 'is', 'an', 'example']
['Esto', 'é', 'um', 'exemplo']
0-0 1-1 2-2 3-3
行reader = AlignedCorpusReader('./data', '.*', '.txt', encoding='utf-8')创建AlignedCorpusReader的一个实例,该实例读取./data'目录中以'.txt'结尾的所有文件。它还指定文件的编码是'utf-8'。AlignedCorpusReader的其他参数是word_tokenizer和{},word_tokenizer被设置为WhitespaceTokenizer(),而{}被设置为RegexpTokenizer('\n', gaps=True)。在
更多信息可以在文档(1和2)中找到。在