1. 简介
本文介绍了一种使用分词能力分析周杰伦歌词数据的方法,这里我们采用达摩院基于预训练语言模型构建的分词模型作为我们的分词工具
2. 操作步骤
参考快速开始,里面有一些关于ModelScope的基本介绍
2.1 环境准备
- jupyter简易环境,python3.7.x及以上
pip3 install torch torchvision torchaudio pip install "modelscope[nlp]" -f https://modelscope.oss-cn-beijing.aliyuncs.com/releases/repo.html
2.2 文本分词
这里, 我们采用Model scope提供的pipeline调用方式对杰伦的歌词数据进行分词, 下面是单条数据的分词示例
frommodelscope.modelsimportModelfrommodelscope.pipelinesimportpipelinefrommodelscope.utils.constantimportTasksfrommodelscope.preprocessorsimportTokenClassificationPreprocessorpipeline_ins=pipeline(task=Tasks.word_segmentation) result=pipeline_ins(input="透明的让我感动的可爱女人") result: {'output': '透明 的 让 我 感动 的 可爱 女人'}
部分分词结果示例如下图所示
2.3 词频统计
通过对分词结果的进行词频统计,发现在杰伦的歌词里面最高频出现的top词汇是
('回忆', 71) ('离开', 71) ('时间', 56) ('微笑', 51) ('等待', 48) ('不用', 45) ('眼泪', 40) ('世界', 40)
2.4 词云展示
当然,我们也可以用词云的方式更加直观的展示杰伦歌词的里面词汇分布情况,这里可以采用wordcloud第三方库作为辅助,实操代码如下
fromwordcloudimportWordCloudfromPILimportImageimportnumpyasnpf3=open('result.txt','r') text=f3.read() jay_mask=np.array(Image.open('Jay_photo.png')) wc=WordCloud(background_color='white', mask=jay_mask, font_path='msyh.ttf', width=1960, height=1080) wc.generate(text) wc.to_file('result.png') f3.close()
- 其中“result.txt”存放分词结果(去除通用词)
- Jay_photo.png是杰伦照片,
- "msyh.ttf"存放的是对应的字体文件(可随意切换成自己想要的字体)
结果展示
回忆、微笑、离开、可爱, 这些高频词汇有没有让你快速想起杰伦的某一首经典呢?