python下载网页歌词_python3个人学习笔记-批量下载分析歌词2

我发现之前自己真是太愚蠢了没有搞清楚正则表达的各种用法。

不同词语的筛选根本不用像re.sub('另一个想替换的内容','另一个替换后的内容',re.sub('想要替换的内容','替换后的内容',x))这样傻了吧唧地筛一层又一层……(受linux的pipe荼毒太深)

正则表达中不同字符的or其实大家都知道是[abcde1234]这样的,但是不同词语的时候如果写[(remix)(acoustic)]的话匹配的并不是两个单词而是ra,rc,ro……以此类推。

实际上你需要使用|把两个间隔开后再括上括号([]也行)才可以匹配。

下面我们来看几个例子:

import re

str1='remix acoustic remixxxx acous remi 1234 reacu acoustic1'

str2=re.sub('.*((remix)|(acoustic)).*','替换',str1)

str3=re.sub('.*(remix)|(acoustic).*','替换',str1)

str4=re.sub('(remix)|(acoustic)','替换',str1)

str5=re.sub('[(remix)|(acoustic)]','替换',str1)

print(str2)

print(str3)

print(str4)

print(str5)

######输出结果

#替换

#替换xxx acous remi 1234 reacu 替换

#替换 替换 替换xxx acous remi 1234 reacu 替换1

#替换替换替换替换替换 替换替换替换替换替换替换替换替换 替换替换

#替换替换替换替换替换替换 替换替换替换替换替换 替换替换替换替换 1234 替换替换替换替换替换 替换替换替换替换替换替换替换替换1

所以我们为了筛选出更合适的不重复歌曲,就可以用这样写:

if (re.search(".*((remix)|(acoustic)|(edition)|(feat\.)).*",links))==None:

另外为了防止Taylor最多的词语是shake这种沙雕情况,这次换了一个算法:

lyricswords=[]

for lyric in lyric_dict.values():

lyricswords=lyricswords + list(set(sorted(lyric.split(' ')))) #unique words in one song

#the 300 most frequent words

ly_frenquency=Counter(sorted(lyricswords)).most_common(300)

for item in ly_frenquency:

print(re.sub(r"[()']",'',str(item)))

原理很朴素,就是利用set的特性把这个有重复词语的list变成无重复的set,最后再变回list加入到dict中(其实第二步转换没有必要?)。

那么我们来看一下结果吧!

笑成傻吊了……都怪我觉得说唱歌手词汇更丰富一点,根本就是想太多了。

麻辣鸡的歌词精选:

aint, 33

money, 20

niggas, 18

bitch, 17

nicki, 17

fuck, 17

nigga, 16

bitches, 15

young, 14

queen, 13

ride, 13

hit, 12

ya, 12

boy, 12

ass, 10

pussy, 9

bout, 8

hoes, 8

rap, 8

kiss, 7

fucking, 7

minaj, 5

pink, 5

red, 5

然后再来看一下喇嘛

nigga, 43

shit, 41

down, 40

life, 39

fuck, 37

bitch, 31

man, 31

one, 31

niggas, 31

love, 30

said, 30

look, 30

em, 29 #我觉得这可能是'em而不是真的emmmm吧毕竟英语里都没有这个说法

take, 29

feel, 28

god, 27

yeah, 27

world, 27

black, 27

就真的也没好到哪里去,不过这么简单粗暴的概括语言并不能说明什么,仅供娱乐吧哈哈哈哈。

ps说真的急需一个新project给我玩,可是一时半会儿想不出什么好玩的,想做的微博bot之类的又太超出我现有水平,苦恼.jpg

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/538507.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

使用循环链表实现一个通讯录的管理程序_【LeetCode链表题型总结】

点击上方蓝字,关注公众号链表概念的讲解链表是什么链表是一种线性数据结构,每个节点都存有数据,通过指针将各个节点链接在一起。链表的性质一致性: 每个节点有相同的数据结构,相同的数据大小,内存中占据相同的大小&…

win10 C盘超过50G?教你如何对C盘瘦身!

原文链接:http://blog.csdn.net/u012762305/article/details/53469446 点击阅读原文 ------------------------------------------- 本人C盘是128G SSD硬盘,Win10系统盘和一些常用的程序都装在这个盘(特大程序除外),…

python的kite下载安装及使用_Kite下载|Kite Python编程工具 V1.2020.1203.0 最新版下载 - 下载银行...

Kite是一款专为Python打造的一款代码补全软件,如果你正在学习Python或是从事与Python相关的编程工作,那么这款软件绝对是你的好帮手!其会智能判断用户想要输入的每个代码字段,并在所有库中进行匹配相应的内容,如果看到…

layui前端时间戳转化

https://blog.csdn.net/rightbeforethesix/article/details/80358890转载于:https://www.cnblogs.com/newlangwen/p/9144204.html

单页web应用是什么?它又会给传统网站带来哪些好处?

原文链接:http://blog.csdn.net/zuoninger/article/details/38842823 点击阅读原文 ---------------------------------------------------- 什么是单页应用? 单页应用是指在浏览器中运行的应用,它们在使用期间不会重新加载页面。像所有的…

python图像等比例压缩_python使用pil进行图像处理(等比例压缩、裁剪)实例代码

PIL中设计的几个基本概念1.通道(bands):即使图像的波段数,RGB图像,灰度图像以RGB图像为例:>>>from PIL import Image>>>im Image.open(*.jpg) # 打开一张RGB图像>>>im_bands im.getbands() # 获取RG…

python的urllib四大模块_Python常用的内建模块4:urllib

urllib提供了一系列用于操作URL的功能Geturllib的request模块可以非常方便的抓取URL的内容, 也就是发送一个GET请求到制定的页面, 然后返回HTTP的响应:例如, 对豆瓣的一个URLhttps://api.douban.com/v2/book/2129650进行抓取, 并返回响应:from urllib import requestwith reque…

Linux 升级 Python 至 3.x

原文链接:http://blog.csdn.net/liang19890820/article/details/51079633 -------------------------------------------- 简述 CentOS 7 中默认安装了 Python,版本比较低(2.7.5),为了使用新版 3.x,需要对…

Sublime Text 3 配置python交互运行环境的快捷键

2019独角兽企业重金招聘Python工程师标准>>> 使用Sublime Text 3能以轻量级的环境写python脚本,运行python代码。为了更加方便地调用python脚本,通过在Sublime Text 3中绑定快捷键的方式,实现一键调用python交互运行环境&#xff…

xftp如何搜索文件_头条搜索站长平台如何添加网站和sitemap文件?附图文教程

头条搜索站长平台已经上线了,目前我们广大站长都可以登录该平台后添加新网站和提交 sitemap 地图文件,建议大家可以前往尝试一下,多一个搜索平台就多一条路,认为倒是挺好的。下面就跟大家简单介绍头条搜索站长平台如何添加网站和提…

Angular4中常用管道

原文链接:http://blog.csdn.net/haijing1995/article/details/71404350 ----------------------------------------------------- Angular4中常用管道 通常我们需要使用管道实现对数据的格式化,Angular4中的管道和之前有了一些变化,下面说一…

mysql死锁无法查询_MySQL死锁导致无法查询

客服反馈后台无法查询,原因大概知道,是因为MySQL的事务产生了死锁,以往都不知道是哪个事务锁住了,只能很粗暴地重启MySQL最近查找到一个方法,不用重启MySQL,记录如下登录到MySQL,来看下有哪些My…

彩铅练习,花船

图片发自简书App图片发自简书App

python 百度ocr识别_Python使用百度Ocr识别文字保存CSV

1.准备:1)Python开发环境, 笔者用的是3.7; 工具用的是Pycharm2)百度云后台创建文字识别的应用, 获取AppID, API key, Secret Key百度云后台创建文字识别的应用3) 百度模块pip install baidu-aip安装百度模块4) 要保存成csv需要用到pandas模块pip Install pandas安装…

chrome解决跨域(CORS)问题---chrome插件

1、chrome浏览器 chrome中跨域问题,可以安装插件解决, 插件地址 https://chrome.google.com/webstore/detail/allow-control-allow-origi/nlfbmbojpeacfghkpbjhddihlkkiljbi 地址需要翻墙 翻墙hosts:https://laod.cn/hosts/2017-google-host…

我的女朋友漏电了–论C++中的失败(failure),缺陷(bug)和异常(exception)

先做个广告置入,如果喜欢这篇文章,你可以到 zhaoyan.website/blog 去查看于此类似的C/C文章。 我承认有点标题党了,不过这真的是一篇写软件的文章,所以如果你已经抽出了一张面巾纸,那么趁早再把它完美的放回去。这篇软…

SQLplus 和mysql区别_mysql和oracle的区别有哪些

MySQL和Oracle都是流行的关系数据库管理系统(RDBMS),在世界各地广泛使用;大多数数据库以类似的方式工作,但MySQL和Oracle的这里和那里总是存在一些差异的。本篇文章就给大家比较Oracle和MySQL,介绍Oracle和MySQL之间的区别&#x…

127.0.0.1与localhost的区别

2019独角兽企业重金招聘Python工程师标准>>> 区别1: localhost也叫local ,正确的解释是:本地服务器 127.0.0.1在windows等系统的正确解释是:本机地址(本机服务器) 他们的解析通过本机的host文件,windows自动将localhost解析为127.…

一个项目经理的贪嗔痴

我有时候在想,自己到底是一个什么角色?产品经理?还是一个项目经理?或者只是一个技术经理。 身边一些朋友说,自己想转行做一个产品经理,做一个伟大的产品。我奉劝他们说还是省省吧,在这样一个二三…

mysql 索引_MySQL之索引

索引查找算法BTREEBTREE查找算法演变B-TREE :普通 BTREE,平衡多路查找树(B-Tree)BTREE :叶子节点双向指针BTREE(B*TREE):枝节点的双向指针普通B-TREE增强版BTREE(B*TREE)总结:从上图看出,在BTree上有两个头…