NLP + Excel для быстрого поиска информации
Довольно часто при работе с большими объёмами данных, возникает необходимость в быстром поиске информации. Расскажем: как мы применяли методы NLP к анализируемым данным.
В качестве входного файла у нас был файл excel с большим количеством строк, выбор информации из которого нужно было произвести, как водится, «еще вчера». Обработка посредством SQL, а уж тем более вручную не представлялась возможной, в связи с чем было принято решение о разработке своего средства.
Так же было решено применить методы nlp к анализируемым данным. Но для чего это делать? Необходимость такой обработки обусловлена наличием в тексте различных форм одного и того же слова. Например, нам необходимо найти информацию о инкассаторах, для этого мы выбираем ключевое слово инкассатор, но при этом из нашей выборки будут утеряны строки с употреблением слов инкассатора, инкассаторы. Вводить огромное количество различных форм одного и того же слова, особенно при поиске по нескольким ключевым словам довольно сложно, ведь можно пропустить необходимую форму слова.
Импортируем необходимые для обработки библиотеки:
Далее разработаем класс для считывания данных и записи результатов в итоговый файл:
Конструктор класса принимает в себя имена excel-файла, рабочего листа и итогового файла.
Считаем данные из excel-файла в DataFrame pandas:
Произведем запись итогового DataFrame в новый excel-файл
Для удобного использования и дальнейшего применения разрабатываемых методов, реализуем их в качестве методов класса NLPWorker:
Для дальнейшей обработки нам необходимо разбить текст на список употребляемых в нем слов. Для этого будем использовать метод word_tokenize библиотеки nltk.
Так же, для увеличения скорости при дальнейшем поиске по тексту, можно удалить из него так называемые «стоп-слова». К таким словам можно отнести предлоги, союзы, частицы, междометия.
Самым важным методом для нашего поиска является приведение к нормальной форме списка слов (например, форма единственного числа, именительного падежа для существительных). Для этого применяем метод morph_parse:
После преобразования списка слов собираем их в новый текст:
Производим поиск ключевых слов в преобразованных строках
Собираем разработанные методы в итоговый код в классе MainWorker:
В итоге мы разработали программное средство, позволяющее производить быстрый и точный поиск в файлах excel на основании набора ключевых слов.