17 Replies Latest reply: Jan 14, 2016 8:50 AM by Yuri Novik RSS

    Text mining

      Здравствуйте коллеги, хочу уточнить можно ли  с помощью qlik решить следующую задачу. Есть документ содержащий классификатор и документ содержащий набор процедур.Нужно чтобы по названию процедуры производилось сопоставление с классификатором и ей (процедуре) присваивался наиболее подходящий из него код.

      рис.3.png

        • Re: Text mining
          Eugeny Ilyin

          Привет.

          ОКПД2-ОКДП, конечно да.

          Наименование группировки - Название процедуры, в принципе Да.

          Необходимо проанализировать систему формирования названий процедур и грамотно составить ключевую таблицу сопоставления.

          Файлы пока не смотрел.

            • Re: Text mining

              Названия процедурам дают люди, поэтому тут раз от раза по разному. вот общий список . Что скажешь? - слишком трудоемко?

                • Re: Text mining
                  Eugeny Ilyin

                  Ну что сказать, системность в именовании процедур отсутствует, следовательно - зацепиться за слова из названия не удастся. Либо пробовать через категории, либо сажать оператора для набивки тегов в промежуточной базе.

                  И по ним уже стыковаться со своим классификатором.
                  Я так понимаю, ваша задача - сканирование лотов на автомате, с последующей стыковкой в своей системе?

                    • Re: Text mining

                      ну категории это и есть классификатор.

                      есть таблица, которая содержит его структуру, такого вида:

                      -------------------------------------------------------------------------------------------

                      категория | родительская категория | название категории

                      -------------------------------------------------------------------------------------------

                      96023010    96023000                        Услуги по перевозке грузов

                      96023000    96020000                        Перевозки грузовые автомобильным транспортом

                      96020000    96000000                        Услуги автомобильного транспорта

                      96000000    90000000                        Услуги сухопутного транспорта

                      90000000    0                                    Услуги транспорта, складского хозяйства и связи

                       

                      а как с тегами? это для каждой категории ключевые слова писать? наверное не вариант, слишком уж их много..

                      да, лоты отсканированы уже, надо стыковать их в базе данных.

                        • Re: Text mining
                          Eugeny Ilyin

                          А можно узнать какая задача в целом?

                            • Re: Text mining

                              Задача сопоставить текстовую строку с 2мя образцами и получить их номера

                                • Re: Text mining
                                  Eugeny Ilyin

                                  Привет.
                                  Как я вижу в клике решение подобной задачи.

                                  Текстовая строка и образцы разбиваются на составляющие (формы слов), формы слов приводятся к словарному виду (колёсики->колесо) и дальше идет сопоставление с ключевыми словами-образцами.

                                  Но ключевых слов из разных образцов может быть несколько, следовательно возникает еще одна задача...

                                  Конечно, придется над алгоритмом поработать, но считаю, что решить задачу с помощью кликов можно.

                                    • Re: Text mining

                                      Привет.

                                      EugenyIlyin написал(а):

                                      Текстовая строка и образцы разбиваются на составляющие (формы слов), формы слов приводятся к словарному виду (колёсики->колесо)

                                      Это вручную?

                                        • Re: Text mining
                                          Eugeny Ilyin

                                          Привет, возьмем нейтральный пример:

                                           

                                          table1:
                                          LOAD rowno() as ID, * INLINE [
                                              Фразы
                                              В центре всей России
                                              Город наш красивый.
                                              В Жигулях привольных – это не секрет,
                                              С радостью большою трудимся с душою,
                                              И девчат Самарских краше в мире нет.
                                              Солнце на закате в голубом наряде
                                              Ярко озаряет вольные края.
                                              И всегда со мною летом и зимою,Милая Самара – Родина моя!
                                          ];
                                          
                                          keywords:
                                          load SubField(Фразы,' ') as Слова, ID resident table1;     
                                          

                                           

                                          Проверьте таблицу keywords

                                            • Re: Text mining

                                              Спасибо за пример)

                                              Но меня больше смущает приведение к словарному виду.

                                              Для этого есть какой-то готовый алгоритм или стороннее решение?

                                                • Re: Text mining
                                                  Eugeny Ilyin

                                                  Добавьте к приведенному выше скрипту табличку:

                                                   

                                                  Словарь:
                                                  LOAD * INLINE [
                                                      Слова, Тема
                                                      Жигулях, Самарская область
                                                      Самарских, Самарская область
                                                      Самара, Самарская область
                                                      Город, Прочее
                                                      Солнце, Прочее
                                                      Родина, Родина
                                                  ];
                                                  
                                                  • Re: Text mining
                                                    Yuri Novik

                                                    В полнотекством поиске это называется алгоритмами токенизации. Их много под разные задачи. Один из вариантов - разбить на слова, удалить предлоги/союзы, заменить словоформы и применить частотные словари синонимов. Однако не встречал готовой реализации в QV

                                                     

                                                    Вот примеры реализации для популярного поискового движка Elasticsearch https://www.elastic.co/guide/en/elasticsearch/reference/current/analysis-tokenizers.html

                                                     

                                                    Может подойдет вызов внешней программы в скрипте загрузки

                                                         STORE table INTO input.csv (TXT);

                                                         EXECUTE some-tokenizer.exe input.csv output.csv;

                                                         LOAD * FROM output.csv (TXT);