clu0=[[分かち書きされ、各単語が''で格納された文章データ1],[同2]...[同n]]
clu1=[[同3],[同4],[同5]...[同m]]
...
のようなデータセットがあるとします。

この時、clu0やclu1の重要単語を抽出したいです。
そこで、3重の入れ子構造のリストを用いてtfidf値を算出しようと

from sklearn.feature_extraction.text import TfidfVectorizer
from sklearn.feature_extraction.text import CountVectorizer
from sklearn.decomposition import TruncatedSVD
from sklearn.preprocessing import Normalizer

def tf(doc):
    vectorizer = CountVectorizer(token_pattern=u'(?u)\\b\\w+\\b')
    features = vectorizer.fit_transform(doc)
    terms = vetures, terms

def tfidf(cludocs_list):

    vectorizer = TfidfVectorizer(min_df=1, max_df=50, token_pattern=u'(?u)\\b\\w+\\b')
    features = vectorizer.fit_transform(cludocs_list)
    terms = vectorizer.get_feature_names()

    return features, terms

def reduction(x, dim=10):

    '''
    dimensionality reduction using LSA
    '''
    lsa = TruncatedSVD()
    x = lsa.fit_transform(x)
    x = Normalizer(copy=False).fit_transform(x)

    return x

if __name__ == '__main__':
    cludocs_list = [clu0_docs,clu1_docs]
    cludocs_list = [' '.join(d) for d in cludocs_list]
    features, terms = tfidf(cludocs_list)

としてtfidf値を計算しようとしたところ

TypeError: sequence item 0: expected str instance, list found

となり、計算出来ませんでした。
このコードによるtfidf計算はcludocs_listの部分が2重の入れ子構造リストでなければ上手くいかない、ということは分かるのですが、clu0やclu1を1つの文章として見立ててしまうと、ほとんどの単語のdfが1になってしまい、重要語ではなく頻度の高い単語が抽出されてしまいます。
『clu0にあってclu1にはない特徴語』を算出するにはどのようにコードを改変すれば良いのでしょうか。

非常にわかりづらい質問かもしれませんが、どなたかご教授いただけますと幸いです。