Я думаю, что запятые в конце этих двух строк создают список переменных, которые вы пытаетесь обработать.
tokens = re.split('\W+', text), # <---- These commas at the end
tex = " ".join([word for word in tokens if word not in cachedStopWords]), # <----
Это приведет к примерно так же, как если бы вы сделали что-то подобное (отредактировано для лучшего примера):
x = 12 * 24,
y = x * 10,
z = 40
print(f"X = {x}\n"
f"Y = {y}\n"
f"Z = {z}\n")
Вывод:
X = (288,)
Y = ((288, 288, 288, 288, 288, 288, 288, 288, 288, 288),)
Z = 40
Запятые приводят к упаковке и распаковке ваших переменных.