用Python实现统计一篇英文文章内每个单词出现频率

def get_file_words(path, num):
    """
        用Python实现统计一篇英文文章内每个单词出现频率,并返回出现频率最高的10个单词及其出现次数,并解答以下问题
        1)创建文件对象f后,解释f的readlines和xreadlines方法的区别?
        2)追加需求,引号内元素需要算作一个单词,如何实现?

    :return:
    """
    list_words = []

    obj_file = open(path, "r")
    text = obj_file.read()
    obj_file.close()

    # 引号内元素需要算作一个单词,先用引号切分,偶数再划分单词,奇数直接算作一个单词加入列表
    list_text = text.split('"')
    for i in range(0, len(list_text), 2):
        #
        list_words += re.split("[0-9W]+", list_text[i])
        if i+1 < len(list_text):
            list_words.append(list_text[i+1])

    obj_count = Counter(list_words)
    result = obj_count.most_common(num)
    #print(list_words)

    return result

if __name__ == '__main__':
    print(get_file_words("aa.txt", 10))

  

原文地址:https://www.cnblogs.com/hxiaoli/p/8393002.html