это мой первый вопрос о переполнении стека. Какой-то быстрый фон, это не школьный проект, просто для удовольствия, практики и обучения. Я пытаюсь сделать проверку орфографии на C. Проблема, с которой я сталкиваюсь, - это придумать возможные слова, чтобы заменить слово с ошибкой.C проверка орфографии, строковые понятия, алгоритмы
Я также должен указать на то, что на моих курсах мы не получили концепции программирования более высокого уровня, такие как временная сложность или разработка алгоритмов. Я говорю, что, поскольку у меня есть чувство, что есть имена для понятий, о которых я действительно спрашиваю, я просто еще не слышал о них.
В других подобных сообщениях здесь большинство людей предлагают использовать расстояние levenshtein или пересекать деревья патриции; было бы проблемой просто сравнить подстроки? (Очень неэффективно) алгоритм я придумал это:
сравнить первые N
персонажей, где N = length of the misspelled word - 1
, чтобы словарных слов (они будут считываться из системного файла в динамически распределяемой массив)
если N
символов из слова с орфографической ошибкой и слова из словаря, добавьте его в список предложений; если не больше совпадений не найдено, уменьшаем N
продолжают до 10 предложений пока не будут найдены или N = 0
Он чувствует себя неуклюжим и неловким, но это своего рода, как наш учебник предполагает приближения к этому. Я читал статьи в вики на обходе деревьев и вычислял всевозможные интересные вещи для эффективности и точности, но сейчас они над моей головой. Любая помощь приветствуется, и спасибо, что нашли время, чтобы прочитать это.
Вместо того, чтобы проверять слова один за другим из загруженного словаря в память, используйте хеш-таблицу, чтобы можно было эффективно уменьшить возможных кандидатов для проверки. –