-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathsel.py
61 lines (50 loc) · 1.76 KB
/
sel.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.common.by import By
import time
import schedule
import time
import numpy as np
import pandas as pd
import itertools
import pickle
from sklearn.model_selection import train_test_split
from sklearn.feature_extraction.text import TfidfVectorizer
from sklearn.linear_model import PassiveAggressiveClassifier
from sklearn.metrics import accuracy_score, confusion_matrix
from sklearn.feature_extraction.text import TfidfVectorizer
DRIVER_PATH = 'chromedriver.exe'
wd = webdriver.Chrome()
wd.get("https://www.youtube.com/")
filename = "finalized_model.sav"
pac = pickle.load(open(filename, 'rb'))
df = pd.read_csv("hi.csv")
tfidf_vectorizer=TfidfVectorizer(stop_words='english', max_df=0.7)
convert_dict = {
'title': str,
}
compiled = df.astype(convert_dict)
tfidf_train=tfidf_vectorizer.fit_transform(df['title'])
def predictor(inp):
data = [str(inp)]
d = pd.DataFrame(data, columns=['title'])
tfidf_reviews=tfidf_vectorizer.transform(d['title'])
y_pred=pac.predict(tfidf_reviews)
if y_pred == 0:
return "Not educational"
elif y_pred == 1:
return "Educational"
def url_check():
title = wd.title
print(title)
if title[-7:] == "YouTube":
if wd.current_url == "https://www.youtube.com/" or wd.current_url == "https://www.youtube.com/watch?v=dQw4w9WgXcQ&ab_channel=RickAstley" or wd.current_url == "https://www.youtube.com/watch?v=dQw4w9WgXcQ":
pass
else:
prediction = predictor(title)
if prediction == "Not educational":
wd.get("https://www.youtube.com/")
schedule.every(2).seconds.do(url_check)
while True:
schedule.run_pending()
time.sleep(1)