Проблема
data = mycursor.fetchall()
возвращает список кортежей , даже если запрос возвращает один столбец.
Так что вместо того, чтобы возвращать что-то вроде
['a', 'b', 'c', 'd', 'e', 'f']
возвращает
[('a',), ('b',), ('c',), ('d',), ('e',), ('f',)]
Решение состоит в том, чтобы передать первый элемент каждого кортежа в функцию sent_tokenize
.
for row in data:
text_sents = sent_tokenize(row[0])