Шаг 21.
Однострочники Python. Трюки Python. Поиск информативных слов с помощью спискового включения

    На этом шаге мы рассмотрим еще одну задачу.

Общее описание

    Поисковые системы ранжируют текстовую информацию по степени соответствия запросу пользователя. Для этого поисковые системы анализируют содержимое текста, в котором необходимо произвести поиск. Любой текст состоит из слов. В одних содержится немало информации о содержимом текста, а в других - нет. Примеры первых слов - white, whale, Captain, Ahab (узнали, откуда это?).


Белый, кит, капитан, Ахав.

    Примеры слов второго типа - is, to, as, the, a и how, поскольку они содержатся в большинстве текстов. При реализации поисковых систем часто отфильтровывают слова, не несущие особого значения. Простейший эвристический подход - отфильтровывать все слова из трех или менее букв.

Код

    Наша цель - решить следующую задачу: создать на основе многострочного строкового значения список списков, каждый из которых состоит из всех слов одной из строк, причем слова эти длиной три символа и более. В примере 2.2 приведены данные и решение.


Пример 2.2. Однострочное решение для поиска информативных слов
## Данные
text = '''
Call me Ishmael. Some years ago - never mind how long precisely - having
little or no money in my purse, and nothing particular to interest me
on shore, I thought I would sail about a little and see the watery part
of the world. It is a way I have of driving off the spleen, and regulating
the circulation. - Moby Dick'''

## Однострочник
w = [[x for x in line.split() if len(x) > 3] for line in text.split('\n')]

## Результат
print(w)
Архив с файлом можно взять здесь.

    Какими же будут результаты выполнения этого фрагмента кода?

Принцип работы

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

    Конечно, необходимо научиться думать на языке списковых включений, поэтому в первое время они могут показаться сложными. Но когда вы закончите изучать предлагаемый материал, списковые включения станут для вас обыденными и вы будете быстро писать код на языке Python в подобном стиле.

    На следующем шаге мы рассмотрим чтение файла.




Предыдущий шаг Содержание Следующий шаг