Я выполняю классификацию текста на основе онтологий. Моя онтология - это простая иерархия понятий, где каждое подконцепт является результатом высшего понятия. В методе классификации текста я вычисляю косинусное сходство между тестовым образцом текста и каждым узлом онтологии, где в качестве метки для документа назначается узел с наибольшим сходством. Сходство в каждом узле является нормализованным средним значением сходств всех узлов ниже указанного узла c в онтологии. Я сталкиваюсь с трудностями при доступе к узлам (понятиям / классам) онтологии, чтобы вычислить сходство. Я прочитал документацию Owlready2, но не смог найти решение. Я загрузил онтологию в формате .owl. Поскольку я новичок в этой топике c, было бы замечательно, если бы кто-то мог дать мне начальное руководство или указание, чтобы я мог продолжить это сам.
Другой вопрос: я загрузил онтологию, используя этот код .
onto = get_ontology("C:/fahad/Revision 1/EnvironmentalHazards.owl").load()
когда я печатаю класс / концепцию, используя следующий код.
print(onto.Scouring)
Он печатает следующее.
EnvironmentalHazards.Scouring
Однако я хочу в результате получаю только "Scouring", чтобы я мог вычислить его косинусное сходство с образцом текста. Кроме того, есть ли способ напечатать иерархию понятий, так как список (on.classes ()) печатает только полные понятия в онтологии и игнорирует иерархию.
Заранее спасибо.