Exemple #1
0
    def __init__(self, stdscr):
        profiles = Profiles()
        profile_data = ProfileData()
        stdscr.refresh()
        stdscr.clear()
        wordbook = WordBook()

        #iterate over every word in the dictionary forever until the user enters nothing
        for word in wordbook.generate_words(train=False):
            stdscr.addstr(0, 0, "%s" % (" " * 100))
            stdscr.addstr(0, 0, "-> %s " % (word))
            stdscr.refresh()
            start = time.time()
            count, user_word = self.read_char(stdscr)
            end = time.time()

            stdscr.addstr(
                3, 0,
                "Time taken: %i, times_corrected: %i" % (end - start, count))
            data_point = DataPoint(time=end - start,
                                   error_count=count,
                                   distance=Levenshtein.distance(
                                       word, user_word))
            break

        classifier = svm.SVC(gamma=1)
        (features, targets) = profiles.get_classifier_data()

        classifier.fit(features, targets)
        predicted = classifier.predict(
            [[data_point.time, data_point.error_count, data_point.distance]])
        print "\nYou're probably.. %s " % predicted[0]
Exemple #2
0
    def __init__(self, stdscr):
        wordbook = WordBook()
        stdscr.addstr("What is your name?")
        profiles = Profiles()
        profile_data = ProfileData()
        stdscr.refresh()
        name = stdscr.getstr(1, 0, 15)
        profile_data.set_name(name)
        profiles.append_profile(profile_data)
        stdscr.clear()

        #iterate over every word in the dictionary forever until the user enters nothing
        for word in wordbook.generate_words(train=True):
            stdscr.addstr(0, 0, "%s" % (" " * 100))
            stdscr.addstr(0, 0, "-> %s " % (word))
            stdscr.refresh()
            start = time.time()
            count, user_word = self.read_char(stdscr)
            end = time.time()

            stdscr.addstr(
                3, 0,
                "Time taken: %i, times_corrected: %i" % (end - start, count))

            if user_word == "":
                break

            #create a data point with the Levenshtein distance,
            #count of errors user made while typing, and how long the process took
            data_point = DataPoint(time=end - start,
                                   error_count=count,
                                   distance=Levenshtein.distance(
                                       word, user_word))
            profile_data.append_point(data_point)
        profiles.flush()