Your .data is stored internally as:
[(['A', 'd', 'a', 'm'], ['d', 'a', 'm', '<EOS>'], 'English'),
 (['B', 'i', 'l', 'l'], ['i', 'l', 'l', '<EOS>'], 'English'),
 (['C', 'h', 'e', 't'], ['h', 'e', 't', '<EOS>'], 'English')]

since you are creating a list of tuples of lists here:
self.data = [(list(name), list(name[1:])+['<EOS>'], category) for category in categories for name in temp[category]]

How would you like to store the data instead?
(I couldn’t find a Dataset code by skimming through the tutorial)