На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! правила раздела Алгоритмы
1. Помните, что название темы должно хоть как-то отражать ее содержимое (не создавайте темы с заголовком ПОМОГИТЕ, HELP и т.д.). Злоупотребление заглавными буквами в заголовках тем ЗАПРЕЩЕНО.
2. При создании темы постарайтесь, как можно более точно описать проблему, а не ограничиваться общими понятиями и определениями.
3. Приводимые фрагменты исходного кода старайтесь выделять тегами code.../code
4. Помните, чем подробнее Вы опишете свою проблему, тем быстрее получите вразумительный совет
5. Запрещено поднимать неактуальные темы (ПРИМЕР: запрещено отвечать на вопрос из серии "срочно надо", заданный в 2003 году)
6. И не забывайте о кнопочках TRANSLIT и РУССКАЯ КЛАВИАТУРА, если не можете писать в русской раскладке :)
Модераторы: Akina, shadeofgray
  
> Правильное написание слова (орфография)
    Есть некий текст (скорее всего будет браться из распознавалки). Естественно, что его орфография будет оствлять лучшего. Какие существуют алгоритмы по исправлению этого дела и т.д.?

    Хотя бы в какую сторону копать?
      Мне кажется к словарю... т.е. по любому есть какие-то правило, которое позволяет безошибочно определить правильно ли написано слово. Допустим однокренные слова для проверки написания гласной к корне. Соответственно слова исключения это сто процентный словарь, по которому происходит поиск нужного слова... Собственно если есть большой словарь, то и правописание можно проверить... В Ворде по моему тоже словарь и правила, он даже синонимы подбирает и однокоренные слова... Короче словарь.. :)))

      Добавлено
      А вот пунктуация сложнее, хотя там тоже правила... куда без них.. :))
        Даже имея очень хороший словарь, нужен алгоритм, по которому выбирать из него слова...

        Люди, подскажите хоть в каком направлении копать? /ключевые слова что ли/
          Да, тебя спасет только словарь. Проблема в том, как найти похожие слова. Ну для начала, надо определиться с метрикой, т.е. что мы называем "похожим". Для этого вполне подойдет Levenshtein distance (так же известная как string edit distance). Да-да, если в слове "хлеб" сделать 4 ошибки, получится слово "пиво". Это как раз оттуда. Расстояние Левенштайна между этими словами как раз 4.
          Далее. Разумеется, бежать по словарю из 40,000-60,000 слов и считать эту метрику - дело затратное. Т.е. нужна некая структура данных, которая позволила бы быстро находить все слова из словаря, которые находятся на расстоянии не более заданного (некая маленькая константа, скажем 2-3) от нашего слова. Это дело известно как fuzzy string matching. Смотри по ссылке на suffix trees, metric trees и т.д. для организации своего словаря.

          PS. Угу, я видел, что ты писал мне в аську. Дико извиняюсь, что не ответил, но ты выбрал самый неподходящий для этого момент - я смотрел Англия-Россия :)
          0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
          0 пользователей:


          Рейтинг@Mail.ru
          [ Script execution time: 0,0172 ]   [ 15 queries used ]   [ Generated: 27.04.24, 16:00 GMT ]