taoyuannainailin 2023-10-25 15:23 采纳率: 100%
浏览 6
已结题

有人知道这个代码怎么写吗

找到 “Take me hand’和 “Dream It Possible’ 的英文歌词,并分别保存到 lyricl.txt 和1yric2.txt。分别从两个文件中,按行读取歌词,计算每首歌词中单词的出现频次。对单词的频次进行升序排序,将数据分别写入到sort1. txt 和sort2.txt 中。排序后的文件内容以 “单词:频次”的方式保
存,如下所示:
hand: 10
dream: 9
观察两首歌中的高频单词有什么特点,并如何处理将这些单词去除

  • 写回答

3条回答 默认 最新

  • 专业研究祖传Bug编写术 新星创作者: 编程框架技术领域 2023-10-25 15:29
    关注

    首先,需要先自行寻找歌词文件,放在程序的同一目录下,然后读取并分析。由于这是一个文本处理任务,我们需要用到Python的内置库如os、re和collections。
    以下是一个示例的Python程序:

    python
    import os  
    import re  
    from collections import Counter  
      
    def count_words(filename):  
        with open(filename, 'r') as f:  
            text = f.read()  
        words = re.findall(r'\b\w+\b', text)  
        counter = Counter(words)  
        return counter  
      
    def write_words(filename, counter):  
        with open(filename, 'w') as f:  
            for word, count in counter.items():  
                f.write(f'{word}: {count}\n')  
      
    def main():  
        # 从文件中读取歌词并计算单词频次  
        lyric1 = count_words('lyric1.txt')  
        lyric2 = count_words('lyric2.txt')  
      
        # 分别将结果写入到sort1.txt 和sort2.txt 中  
        write_words('sort1.txt', lyric1)  
        write_words('sort2.txt', lyric2)  
      
        # 找到每首歌的高频单词  
        high_frequency_words1 = {word for word, count in lyric1.items() if count > 5}  
        high_frequency_words2 = {word for word, count in lyric2.items() if count > 5}  
      
        print(f"在'Dream It Possible'中,高频单词有:{high_frequency_words2}")  
        print(f"在'Take me hand'中,高频单词有:{high_frequency_words1}")  
      
    if __name__ == "__main__":  
        main()
    

    这个程序首先读取歌词文件,然后使用正则表达式找到所有的单词(连续的字母或数字),然后使用Counter来计算每个单词的出现次数。最后,它将结果写入到一个新的文件中,每个文件中的每行包含一个单词和它的出现次数。程序也会找到每首歌的高频单词(出现次数超过5的单词)。这只是一个基本的例子,具体的单词选择和频次阈值可能需要根据你的实际需求进行调整。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
    1人已打赏
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 11月2日
  • 已采纳回答 10月25日
  • 创建了问题 10月25日