Text Mining课程的group work我们小组打算做一个基于歌词的情感分析,然后要对我们下载的歌词做一下处理,去掉中文翻译的部分以及前面的时间轴,将处理后的歌词文本保存到txt中,一行为一首歌的歌词。
[00:00.00] 作曲 : Alison Sudol
[00:01.00] 作词 : Alison Sudol
[00:14.539]Your fingertips across my skin
[00:14.539]你的指尖轻滑过我的肌肤
[00:19.577]The palm trees swaying in the wind, images
[00:19.577]棕榈树在风中翩翩起舞
可以看到,下载下来的歌词是由一行英文,一行中文组成,并且以[00:00:00]这样的时间格式开头,我们要做的是保留英文的部分。
使用split以“]”为界限将一行文本分成两个部分,后半部分即为歌词部分
lyrics=line.split(']')
single_lyrics=lyrics[-1]
然后判断是否是中文
zhPattern=re.compile(u'[\u4e00-\u9fa5]+')
match=zhPattern.search(lyric)
if not match:
print(lyric)
import sys
import re
import glob
txt_filenames=glob.glob('D:/lyrics/sad/*.txt')
zhPattern=re.compile(u'[\u4e00-\u9fa5]+')
fw=open(r'D:/lyrics/sad.txt',mode='a',encoding='utf-8')
for filename in txt_filenames:
f=open(filename,mode='r',encoding='utf-8')
while True:
line=f.readline()
if not line:
break
lyrics=line.split(']')
single_lyrics=lyrics[-1]
single_lyric=single_lyrics.split('\n')
lyric=single_lyric[0]
match=zhPattern.search(lyric)
if not match:
print(lyric)
fw.write(lyric)
fw.write(' ')
f.close()
fw.write('\n')
fw.close()