本文转载自公众号“读芯术”(ID:AI_Discovery)
正则表达式是定义文本中搜索模式的特殊字符序列。“re.findall()”是Python中最基本的正则表达式函数之一,提取字符串表达式的开头。本文将用这个函数告诉你,YouTube视频标题与播放量之间的关系。
下面开始吧!
首先,导入python正则表达式模块“re”:
- import re
假设有以下字符串:
- test_string1= 'Python is Amazing!'
可将表达式r“^\w+”与字符串一并传递至“re.findall”,这将返回输入字符串的开头:
- reregex_1 =re.findall(r"^\w+",test_string1)
- print(regex_1)
在表达式r“^\w+”中,字符“^”对应字符串开头,而“\w+”查找字符串中的字母数字字符。
如果去掉“^”,会得到:
- reregex_1 =re.findall(r"\w+",test_string1)
- print(regex_1)
试提取另一个字符串示例的开头:
- test_string2= 'Java is Amazing!'
现在,应用“re.findall()”查找该字符串的第一个单词:
- reregex_2 =re.findall(r"^\w+",test_string2)
- print(regex_2)
接下来,考虑一个更实际的场景。假设有一个YouTube视频标题列表和相应的YouTube观看次数。我们可能对分析视频标题的第一个单词和相应视频观看次数之间的关系感兴趣。考虑以下标题/观看次数元组列表:
- youtube_titles= [("How to Tell if We're Beating COVID-19", 2200000), ("ExtremeCloset Clean Out",326000), ("This is $1,000,000 inFood",8800000), ("How To Tell If Someone Truly Loves You ",2800000), ("How to Tell Real Gold from Fake", 2300000),("Extreme living room transformation ", 25000)]
可以通过以下方式找到每个标题的第一个单词:
- for titlein youtube_titles:
- print(re.findall(r"^\w+",title[0])[0])
可以将这些值添加到列表中:
- first_words= []
- for title in youtube_titles:
- first_words.append(re.findall(r"^\w+",title[0])[0])
- print(first_words)
还可以将观看次数附加到列表中:
- first_words= []
- views = []
- for title in youtube_titles:
- first_words.append(re.findall(r"^\w+",title[0])[0])
- views.append(title[1])
然后,可以创建视频首字值和视频观看次数的数据框:
- importpandas as pd
- df = pd.DataFrame({'first_words': first_words, 'views':views})
- print(df)
之后可以对每个标题首词进行分组,并计算每个标题首词的平均观看次数:
- dfdf =df.groupby('first_words')['views'].mean()
- print(df)
按降序方式对这些值进行排序:
- dfdf =df.groupby('first_words')['views'].mean().sort_values(ascending = False)
- print(df)
假设这些结果来自一个足够大的数据集(比如有数千个标题和观看次数),这种类型的分析可以帮助我们选择最佳的YouTube视频标题。
本文讨论了如何使用python正则表达式模块中的“re.findall()”函数。为提取每个字符串的第一个单词,笔者将该函数应用于两个简单的字符串。然后,考虑了一个实际用例,使用该函数提取YouTube视频标题的第一个单词,并计算第一个单词对应的平均观看次数。
10万+的标题,或许就是这么来的。