找到 “Take me hand’和 “Dream It Possible’ 的英文歌词,并分别保存到 lyricl.txt 和1yric2.txt。分别从两个文件中,按行读取歌词,计算每首歌词中单词的出现频次。对单词的频次进行升序排序,将数据分别写入到sort1. txt 和sort2.txt 中。排序后的文件内容以 “单词:频次”的方式保
存,如下所示:
hand: 10
dream: 9
观察两首歌中的高频单词有什么特点,并如何处理将这些单词去除
有人知道这个代码怎么写吗
- 写回答
- 好问题 0 提建议
- 关注问题
- 邀请回答
-
3条回答 默认 最新
关注首先,需要先自行寻找歌词文件,放在程序的同一目录下,然后读取并分析。由于这是一个文本处理任务,我们需要用到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无用