通过列表的形式进行文本关键词检索,进行博彩类预测,查看程序时间:
import jieba
import pandas as pd
import numpy as np
import os
from collections import Counter
from time import *
root_dir = os.path.realpath(__file__ + "/..")
betting_keys = []
betting_path = root_dir + "/betting_keys.csv"
betting_df = pd.read_csv(betting_path)
######################## 列表形式#####################
betting_keys = np.array(betting_df['关键词']).tolist()
def predict_betting(title, content, search_keys=''):
count = 0
text = title + content + search_keys
words = jieba.lcut(text.strip())
for i in words:
############列表的检索################
if i in betting_keys :
count += 1
if count > 1:
return 'True'
else:
return 'False'
if __name__ == '__main__':
begin_time = time()
print(predict_betting('超级网络"赌局" 赌金每天约5000万',
'小王在过去一个半月的时间里,每天做的事情就是用手机玩德州扑克赌博游戏,每天赌博的时间至少是8个小时,几乎从睡醒后就开始上网赌博。他说:“没办法,上瘾了,睁眼开始就想赌,想赢钱。”'))
end_time = time()
run_time = end_time-begin_time
print(run_time)
结果为:
修改两个地方:
##############关键词形式为字典############
betting_keys = np.array(betting_df['关键词']).tolist() # 赌博类关键词
betting_keys_dict=dict(Counter(betting_keys))
###############字典检索##################
if i in betting_keys_dict:
查看结果:
虽然相差不多,但是却有提升,和数据的大小有关,数据越大,越能看出差距。