Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from sklearn.svm import OneClassSVM
- import os
- import json
- from funcy import pairwise, pluck
- from tkinter import *
- os.system('xset r off')
- c = OneClassSVM('poly', degree=2, nu=0.4)
- with open('params', 'r') as fp:
- features = json.loads(fp.read())
- c.fit(features)
- def normalize(timeline, passphrase):
- """Reorganize timeline to keep corresponding events nearly."""
- result = []
- timeline = timeline[:]
- for passchar in passphrase:
- cnt = 0
- for index, (timestamp, char) in enumerate(timeline[:]):
- if cnt == 2:
- break
- if char == passchar:
- timeline.pop(index) if not cnt else timeline.pop(index-1)
- cnt += 1
- result.append((timestamp, char))
- return result
- def to_differences(timeline):
- return [t2-t1 for t1, t2 in pairwise(pluck(0, timeline))]
- timeline = []
- def keypress(event):
- global num
- if event.keycode == 36:
- a = to_differences(normalize(timeline, 'близнецы'))
- if len(a) != len(features[0]):
- print('error')
- a = [0] * len(features[0])
- print(c.decision_function([a]))
- print(c.predict([a]))
- while timeline:
- timeline.pop()
- timeline.append((event.time, event.char))
- def keyrelease(event):
- global num
- if event.keycode == 36:
- return
- timeline.append((event.time, event.char))
- def focus(event):
- frame.focus_set()
- try:
- root = Tk()
- frame = Frame(root, width=100, height=100)
- frame.bind("<KeyPress>", keypress)
- frame.bind("<KeyRelease>", keyrelease)
- frame.bind("<Button-1>", focus)
- frame.pack()
- root.mainloop()
- finally:
- os.system('xset r on')
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement