Проект AutoOntology предполагает создание инструмента для автоматической генерации онтологий. Онтология строится с помощью иерархической кластеризации на базе извлеченных из текста комбинаций прилагательное + существительное. В качестве базового алгоритма кластеризации используется алгоритм Complete Link.
Извлечение данных в AutoOntology создано для работы с английским текстом. Кластеризация позволяет работать с комбинациями(прилаг + сущ) на любом языке.
Для хранения результатов и подсчета статистики, используется Redis. Данные получаются с использованием библиотек pymorphy и nltk.
Проекст состоит из следующих файлов для запуска:
- text_worker.py - используется для извлечения комбинаций из текстового файла. Работает следующим образом: файл читается построчно, каждая строка разбивается на прдложения. Из каждого предложения извлекается при помощи pos-tagger-а комбинация, после чего она приводится к нормальному виду, сохраняется(инкриментится) в Redis.
- redis_to_csv.py - сохраняет данные из Redis в csv.
- clustering_exec.py - строит из csv-файла dot-файл полученной иерархии. На данный момент для кластеризации(файл cluster.py) используетс алгоритм Complete Link. Он реализован через формулу Ланса-Вильямса, что позволяет при желании заменить алгоритм кластеризации на: Single Link, Group Average, Centroid, Ward's.
Для вычислении близости двух комбинации используется косинусная мера.