/AutoOntology

AutoOntology

Primary LanguagePython

AutoOntology

Проект 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.

Для вычислении близости двух комбинации используется косинусная мера.