我正在使用多头注意力转换器模型进行文本简化项目。同样,我使用 torchtext 进行标记化和数字化。数据集包含两个用于训练的对齐文件和两个用于测试的对齐文件。在训练文件中,一个文件包含复杂句子,而另一个文件包含相应的简化句子。
我是这样阅读文件的:
training_sentences = open(path + "train.en" , encoding = "utf-8").read().split("\n")
target_sentences = open(path + "train.sen" , encoding = "utf-8").read().split("\n")
接下来,我将它们标记为:
complicated = spacy.load('en')
simple = spacy.load('en')
def tokenize_complicated(sentence):
return [tok.text for tok in complicated.tokenizer(sentence)]
def tokenize_simple(sentence):
return [tok.text for tok in simple.tokenizer(sentence)]
C_TEXT = Field(tokenize=tokenize_complicated, fix_length = 100)
S_TEXT = Field(tokenize=tokenize_simple, fix_length = 100, init_token = "<sos>", eos_token = "<eos>")
然后我转换成 torchtext 的 TabularDataset 对象。
import pandas as pd
raw_data = {'Complicated' : [line for line in training_sentences],
'Simple': [line for line in target_sentences]}
df = pd.DataFrame(raw_data, columns=["Complicated", "Simple"])
df.to_csv("df.csv", index=False)
data_fields = [('Complicated', C_TEXT), ('Simple', S_TEXT)]
train = torchtext.data.TabularDataset.splits(path='./', train = "df.csv", format='csv', fields=data_fields, skip_header = True)
然后创建词汇
C_TEXT.build_vocab(train)
S_TEXT.build_vocab(train)
但是,这样做我得到了这个错误:
TypeError:“示例”和“示例”的实例之间不支持“<”
在搜索时,我在这里遇到了这个解决方案,错误消失了。但是,我不明白这是否使模型只采用一个实例还是采用所有数据集?我想知道索引的重要性,[0]以便我可以为我的模型有效地操纵它。
手掌心
慕雪6442864
相关分类