You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
37 lines
1.2 KiB
37 lines
1.2 KiB
from get_danmu import get_danmu
|
|
#def get_danmu(urls):
|
|
|
|
|
|
def is_related(danmu, keyword_string): #判断弹幕是否和keyword相关
|
|
for string in keyword_string:
|
|
if string in danmu:
|
|
return True
|
|
return False
|
|
|
|
|
|
def danmu_about_AI(urls,keywords):
|
|
all_danmu = get_danmu(urls)
|
|
|
|
#初始化保存结果的字典
|
|
keyword_count = {i: 0 for i in keywords} #保存数量
|
|
keyword_dist = {i: [] for i in keywords} #保存相关弹幕
|
|
|
|
|
|
#遍历每一个弹幕,若和某一个关键字相关则统计
|
|
for danmu in all_danmu:
|
|
for keyword, keyword_string in keywords.items():
|
|
if is_related(danmu, keyword_string):
|
|
keyword_count[keyword] += 1
|
|
keyword_dist[keyword].append(danmu)
|
|
break
|
|
else:
|
|
continue
|
|
#得到前八个keyword和他们的count
|
|
top_8_AI = sorted(keyword_count.items(), key=lambda item: item[1], reverse=True)[:8]
|
|
|
|
#统计得到前八个相关技术的所有弹幕
|
|
top_8_danmu = []
|
|
for keyword,_ in top_8_AI:
|
|
for danmu in keyword_dist[keyword]:
|
|
top_8_danmu.append(danmu)
|
|
return top_8_danmu,top_8_AI |