О смягчении нравов

Технический университет Дармштадта, середина семестра. На лекции по “системам обработки естественного языка” (краткий пересказ документации к библиотеке NLTK) рассматривается вот такой пример:

task64

В аудитории присутствует где-то десять будущих компьютерных филологов и полторы сотни будущих компьютерных программистов. С филологами ладно, в конце концов, вся эволюция вычислительной техники была направлена на то, чтобы даже филолог мог решать свои профессиональные задачи (”Есть ли в русском языке слово, содержащее три е подряд?”) с помощью компьютера – а вот программиста, который бы предложил вот так искать слова, соответствующие последовательности нажатий кнопок на клавиатуре мобильного телефона, 20 лет назад просто избили бы ногами в подворотне. Десять лет назад все обошлось бы косым взглядом с легким налетом “пассивной агрессии”. Сейчас такое можно показывать студентам и никто, кажется, не считает этот подход зазорным.

15 комментариев

  1. Виктор пишет:

    А как было бы правильно? Я так понимаю вам не понравилось что это тупой перебор? Я довольно далек от этого просто

    • Если нам достаточно поискать слова, соответствующие регекспу, только один раз – то сойдет, хотя можно было написать так:

      print([ w for w in nltk.corpus.words.words("en") if re.search(regexp, w.lower()) ])

      Если же речь заходит о Т9 и относительно частом поиске слов – то желательно построить префиксное дерево (возможно, с какими-то дополнениями – например, в настоящем Т9 должна учитываться частота встречаемости слов). Это вполне нормальный сюжет для курса типа “Алгоритмы и структуры данных”.

  2. KARPOLAN пишет:

    Зато понятно как под другие кнопки код менять, гуманитарии осилят.

    Вообще отличный пример как правильно делать примеры для обучения и как не надо делать в продакшене ;)

Ответить

Или воспользуйтесь входом по OpenID: