嵌套列表,列表和字符串如何按行进行词频统计?

在做英文文本的自然语言处理,进行词频统计时遇到了问题
前面部分形成了几种格式的数据,但如果想进行数据按行词频统计都会出现问题:
1.有嵌套列表数据,如何按内部列表进行词频统计?
如有:[[a,b,c,a][a,b,c,b][a,b,c,c]]
希望得到类似: ('a':2,'b':1,'c':1)('a':1,'b':2,'c':1)('a':1,'b':1,'c':2)这样的结果

2.有list数据,每行的元素间由‘\n’分隔(其实是把嵌套列表乱拆了一下,如果有好方法也请告诉我!),如何把这个列表分行,并按行进行词频统计?

3.有分行str数据,如何按单词(因为出现过按单词里的字母统计词频的错误)按行进行词频统计?


words = [['a', 'b', 'c', 'a'],['a', 'b', 'c', 'b'],['a', 'b', 'c', 'c']]


def statistics(words):
    res = []
    for i in words:
        dict = {}
        for word in i:
            if word in dict.keys():
                dict[word] = dict[word] + 1
            else:
                dict[word] = 1
        w_order = sorted(dict.items(), key=lambda x: x[1], reverse=True)
        res.append(w_order)
    return res


print(statistics(words))