Ejemplo n.º 1
0
 def setUp(self):
     self.known = open(os.path.join(TEST_DIR, 'known_words.txt'))
     self.unknown = open(os.path.join(TEST_DIR, 'unknown_words.txt'))
     self.similar = open(os.path.join(TEST_DIR, 'similar_words.txt'))
     self.known_words = list(map(normalize, self.known.read().replace('\n', ' ').split(' ')))
     self.unknown_words = list(map(normalize, self.unknown.read().replace('\n', ' ').split(' ')))
     self.similar_words = list(map(normalize, self.similar.read().replace('\n', ' ').split(' ')))
     # self.known_words = ['one', 'two', 'three', 'four', 'mother', 'father']
     # self.unknown_words = ['qwe', 'test']
     self.mixed_words = self.known_words[:len(self.known_words) // 2] \
                        + self.unknown_words[len(self.unknown_words) // 2:]
     # self.similar_words = ['onn', 'twoo', 'feur', 'ffur', 'mather', 'fother', 'one']
     self.spellchecker = Spellchecker()
     self.spellchecker.load_words(self.known_words)
Ejemplo n.º 2
0
class TestSpellchecher(unittest.TestCase):
    """ test of main class"""
    def setUp(self):
        self.s = Spellchecker()

    def test_read_file_error(self):
        """test of fail for change file"""
        self.assertRaises(FileNotFoundError,
                          Spellchecker.read_file('asdf.txt'))

    def test_quit(self):
        """ test clear trie """
        q = Spellchecker.quit('hopplabalobaquit')
        self.assertEqual(True, q)

    def test_set_trie(self):
        """ test setup, a change of trie object"""
        old_list = self.s.get_list()
        self.s.set_trie('apa.txt')
        new_list = self.s.get_list()
        self.assertGreaterEqual(new_list, old_list)
Ejemplo n.º 3
0
def main():
    languages = None
    while languages is None:
        languages = handle_language_selection()
        if languages is None:
            print "At least one of those dictionaries doesn't exist.\n"
    spellchecker = Spellchecker(languages)

    while True:
        repl_input = raw_input("Enter a sentence or command => ")
        output = handle_input(spellchecker, repl_input)
        if output is None:
            break
        print output
    print "Exiting the spellchecker"
Ejemplo n.º 4
0
#import time
from functools import partial
from spellchecker import Spellchecker
from tkinter import *

#time.clock()

spl = Spellchecker()
st = ["abyss", "abyse", "recomendations"]
f = Frame()
f.pack()
txt = Text(f)
finput = []
disabled = False
lb = Listbox()
lstr = []


def close(ind, curr):
    global disabled
    txt.tag_remove('sel', "1." + str(curr),
                   "1." + str(curr + len(finput[ind])))
    root.destroy()
    checkfrom(ind + 1, curr + len(finput[ind]) + 1)


def done(ind, curr):
    global lb, lstr
    tp = lb.curselection()
    txt.tag_remove('sel', "1." + str(curr),
                   "1." + str(curr + len(finput[ind])))
Ejemplo n.º 5
0
 def setUp(self):
     dictionaries = {"english": load_dictionary("english")}
     self.spellchecker = Spellchecker(dictionaries)
Ejemplo n.º 6
0
# coding: utf-8

import cyclone.web
import re
from spellchecker import Spellchecker
from word_list import Word

spellchecker = Spellchecker('words')


class CheckWordHandler(cyclone.web.RequestHandler):
    def get(self, word):
        self.set_header("Content-Type", "application/json")
        self.write(spellchecker.verify_and_analyze(word))


class CheckTextHandler(cyclone.web.RequestHandler):
    def post(self):
        text = self.request.body.decode('utf-8')
        self.set_header("Content-Type", "application/json")
        self.write(spellchecker.verify_and_analyze_text(text))


class WordListHandler(cyclone.web.RequestHandler):
    def post(self):
        self.set_header("Content-Type", "application/json")

        word = self.get_argument('word')
        author = self.get_argument('author')

        w = Word(word, author)
Ejemplo n.º 7
0
 def test_quit(self):
     """ test clear trie """
     q = Spellchecker.quit('hopplabalobaquit')
     self.assertEqual(True, q)
Ejemplo n.º 8
0
 def test_read_file_error(self):
     """test of fail for change file"""
     self.assertRaises(FileNotFoundError,
                       Spellchecker.read_file('asdf.txt'))
Ejemplo n.º 9
0
 def setUp(self):
     self.s = Spellchecker()
Ejemplo n.º 10
0
__author__ = "Just_kiy"

from spellchecker import Spellchecker
import os


def normalize(word: str):
    return word.lower().strip()


if __name__ == "__main__":
    checker = Spellchecker()

    # Loading words base from txt file
    words = []
    with open(os.path.join(os.path.dirname(__file__),"test/known_words.txt")) as f:
        for line in f:
            words += line.split(' ')
    words = list(map(normalize, words))
    checker.load_words(map(normalize, words))

    while True:
        user_input = input("Write any word: ")
        result = checker.suggest_corrections_by_word(word=normalize(user_input))
        # if not result.count():
        #     print("full")
        # else:
        #     print("empty")
        if len(result) > 0:
            if result[0] == user_input:
                print("The word is correct")
Ejemplo n.º 11
0
class SpellcheckerTestCase(unittest.TestCase):

    def setUp(self):
        self.known = open(os.path.join(TEST_DIR, 'known_words.txt'))
        self.unknown = open(os.path.join(TEST_DIR, 'unknown_words.txt'))
        self.similar = open(os.path.join(TEST_DIR, 'similar_words.txt'))
        self.known_words = list(map(normalize, self.known.read().replace('\n', ' ').split(' ')))
        self.unknown_words = list(map(normalize, self.unknown.read().replace('\n', ' ').split(' ')))
        self.similar_words = list(map(normalize, self.similar.read().replace('\n', ' ').split(' ')))
        # self.known_words = ['one', 'two', 'three', 'four', 'mother', 'father']
        # self.unknown_words = ['qwe', 'test']
        self.mixed_words = self.known_words[:len(self.known_words) // 2] \
                           + self.unknown_words[len(self.unknown_words) // 2:]
        # self.similar_words = ['onn', 'twoo', 'feur', 'ffur', 'mather', 'fother', 'one']
        self.spellchecker = Spellchecker()
        self.spellchecker.load_words(self.known_words)

    def test_loadwords(self):
        for word in self.known_words:
            self.assertTrue(word in self.spellchecker)

    def test_check_word(self):
        for word in self.known_words:
            self.assertEqual((word in self.spellchecker), (self.spellchecker.check_word(word)))

    def test_check_list(self):
        self.assertEqual([], self.spellchecker.check_list(self.known_words))
        self.assertEqual(self.unknown_words, self.spellchecker.check_list(self.unknown_words))
        result_of_mixed = self.spellchecker.check_list(self.mixed_words)
        for word in result_of_mixed:
            self.assertTrue(word in self.unknown_words and word not in self.known_words)

    def test_suggest_corrections_by_word(self):
        for word in self.similar_words:
            suggestions = self.spellchecker.suggest_corrections_by_word(word)
            self.assertEqual(type(suggestions), type([]))
            self.assertGreater(len(suggestions), 0)
            for suggestion in suggestions:
                self.assertTrue(suggestion in self.known_words)

        for word in self.unknown_words:
            suggestions = self.spellchecker.suggest_corrections_by_word(word)
            self.assertEqual(type(suggestions), type([]))
            self.assertEqual(len(suggestions), 0)

    def test_suggest_corrections_by_list(self):
        suggestions = self.spellchecker.suggest_corrections_by_list(self.similar_words)
        self.assertEqual(type(suggestions), type({}))
        self.assertGreater(len(suggestions), 0)
        for typo, variants in suggestions.items():
            for variant in variants:
                self.assertTrue(variant in self.known_words)

        suggestions = self.spellchecker.suggest_corrections_by_list(self.unknown_words)
        self.assertEqual(type(suggestions), type({}))
        self.assertEqual(len(suggestions), 0)

    def tearDown(self):
        self.spellchecker = None
        self.known.close()
        self.unknown.close()
        self.similar.close()