Изменения

Перейти к: навигация, поиск

Представление знаний

10 604 байта добавлено, 22:47, 8 февраля 2021
Обучение онтологий
|definition='''Онтология (в информатике)''' {{---}} формализация знаний, включающая в себя представление, формальное именование и определение категорий, свойств и отношений между понятиями, данными и сущностями некоторой области знаний.
}}
 
Термин «онтология» применительно к графам знаний это, прежде всего, способ моделирования и формального представления схемы данных, обеспечивающий гораздо большие возможности, чем традиционные базы данных или объектно-ориентированный подход.
 
Согласно общепринятому определению в компьютерных науках, онтология {{---}} это способ формализации знаний, абстрактных или специфических, в какой-либо предметной области, реализованный на основе формального описания объектов, фактов и отношений между ними.
===Формализация===
В каждой научной дисциплине или области знаний создают онтологии для организации данных в виде информации и знаний. С новыми онтологиями упрощается решение задач в этих областях. Однако при решении задач возникают определённые сложности, например, языковой барьер между исследователями разных стран. Эта сложность может быть нивелирована поддержкой контролируемых словарей<ref>[https://wikipedia.org/wiki/Controlled_vocabulary Wikipedia {{---}} Контролируемый словарь]</ref> жаргона.
===ЭлементыОбщие компоненты онтологий===
Общие компоненты онтологий включают в себя:{| class="wikitable"|-! Название !! Описание !! Пример|-* | style="background:#eaecf0;" | '''Экземпляры (объекты)''' — базовые | Базовые или "наземные" объекты(индивиды).| Мария, 1, Солнце.* |-| style="background:#eaecf0;" | '''Классы (понятия)''' — наборы| Наборы, коллекции, концепции, классы в программировании, типы объектов или виды вещей.* | Человек, Число, Звезда.|-| style="background:#eaecf0;" | '''Атрибуты''' — аспекты| Аспекты, свойства, признаки, характеристики или параметры, которые могут иметь объекты (и классы).* | Возраст: 21, Чётность: нет, Спектральная классификация: жёлтый карлик.|-| style="background:#eaecf0;" | '''Отношения''' — способы| Способы, которыми классы и индивиды могут быть связаны друг с другом.* '''Термы функций''' — сложные структуры, образованные из определенных отношений, которые могут быть использованы вместо отдельного термина в высказывании| Люди являются Животными.* '''Ограничения''' — формально заявленные описания того, что должно быть истинным для того, чтобы какое|-то утверждение было принято в качестве входных данных.* | style="background:#eaecf0;" | '''Правила''' — высказывания | Высказывания в форме предложения if-then "Если ..., то ..." (антецедент-консеквент), описывающие логические выводы, которые могут быть сделаны из утверждения в определенной форме.* | Если <tex>X</tex> смертен, то <tex>X</tex> умрёт.|-| style="background:#eaecf0;" | '''Аксиомы''' — утверждения | Утверждения (включая правила) в логической форме, которые вместе составляют общую теорию, которую онтология описывает описываемую онтологией в своей её области применения. Это определение отличается от определения "аксиом" в [[Исчисление_высказываний|формальной логике]]. В этой дисциплине ней аксиомы включают только утверждения, утверждаемые как априорное знание. Здесь же "аксиомы" также включают в себя теорию, полученную из аксиоматических утверждений.* | Человек смертен. Сократ {{---}} человек.|-| style="background:#eaecf0;" | '''События''' — изменение | Изменение атрибутов или отношений.| <tex>X</tex> умер (<tex>X</tex> больше не является живым).|}
Онтологии обычно кодируются с помощью языков онтологий — специализированных [[:Основные_определения,_связанные_со_строками#Формальные_языки|формальных языков]].
[[Файл:Ontology-learning-layer-cake.png|400px|thumb|Рис. 3. Слоеный пирог обучения онтологий]]
Процесс получения онтологий начинается с вынесения множества терминов термов из текста и получения их синонимов. Далее они преобразуются во множество концептов. После чего выявляются связи между концептами, и в итоге формируются схемы аксиом и извлекаются аксиомы. Данный процесс называют '''слоеным пирогом обучения онтологии''' (рис. 3).
Алгоритмы, используемые в разных слоях при построении онтологии разбивают на 3 основные группы:
* C/NC value<ref>Automatic Recognition of Multi-Word Terms: the
C-value/NC-value Method {{---}} Katerina Frantziy, Sophia Ananiadouy, Hideki Mimaz (2000)</ref> используют для извлечения многословных терминологий {{---}} групп термов, образующих концепты. Алгоритму на вход подаётся несколько многословных термов, для кадого каждого из которых вычисляется оценка в форме C value и NC value. C value использует частоту встречаемости терма для его извлечения, что делает его эффективным для нахождения вложенных термов, а NC value по сути является модификацией C value, которая учитывает контекст.
* В процессе извлечения термов могут быть получены термы, не относящиеся к целевой области. Для фильтрации таких термов применяется метод сравнительного анализа (англ. ''Contrastive analysis'')<ref>[https://wikipedia.org/wiki/Contrastive_analysis#:~:text=Contrastive%20analysis%20is%20the%20systematic,used%20to%20establish%20language%20genealogies. Wikipedia {{---}} Contrastive analysis]</ref>. Он присуждает оценку для каждого терма, в зависимости от того, насколько он релевантен для целевой области, и насколько он нерелевантен в других областях.
* [[:Классификация_текстов_и_анализ_тональности#pLSA|Латентно-семантический анализ]] (англ. ''Latent Semantic Analysis, LSA'') используют для извлечения концептов. Этот метод основан на том, что термы, встречающиеся вместе, будут схожи по значению. LSA уменьшает размерность данных, сохнраняя сохраняя структуру подобия, после чего к оставшимся термам применяется мера сходства (например ''косинусное сходство''<ref>[https://en.wikipedia.org/wiki/Cosine_similarity Wikipedia {{---}} Cosine Simularity]</ref>) для поиска похожих слов.
* [[:Кластеризация|Кластеризация]] группирует множества объектов на подмножества (кластеры) таким образом, чтобы объекты из одного кластера были более похожи друг на друга, чем на объекты из других кластеров.
Статистические методы также используют для выявления связей. Распространёнными техниками являются:
* Категоризация термов (англ. ''Term subsumption'') находит связи между термами при помощи [[:Условная_вероятность|условной вероятности]]. Этот алгоритм ищет термы, являющиеся наиболее общими. Терм <math>t</math> считается более общим, чем терм <math>x</math> если <math>P(t\; |\; x) > P(x\; |\; t)</math>, где <math>P(t\; |\; x)</math> обозначает вероятность встречи терма <math>t</math> при наличии терма <math>x</math>.
* Анализ формальных понятий (англ. ''Formal Concept Analysis, FCA'')<ref>[https://wikipedia.org/wiki/Formal_concept_analysis#:~:text=Formal%20concept%20analysis%20(FCA)%20is,of%20objects%20and%20their%20properties. Wikipedia {{---}} Formal concept analysis]</ref>основан на том, что объекты могут иметь схожие атрибуты. Алгоритм на вход принимает матрицу связей объектов и атрибутов и находит в ней все естественные кластеры, что позволяет построить иерархию концептов и атрибутов.* [[:Иерархическая_кластеризация|Иерархическая кластеризация]]группирует термы в кластеры для нахождения концептов и построения иерархий.* Добыча ассоциативных правил (англ. ''Association rule mining, ARM'')находит правила, предугадывающие совпадение элементов в различных базах данных, для чего обычно применяют алгоритмы Apriori<ref>[https://wikipedia.org/wiki/Apriori_algorithm Wikipedia {{---}} Apriori algorithm]</ref> и FPG<ref>[https://en.wikibooks.org/wiki/Data_Mining_Algorithms_In_R/Frequent_Pattern_Mining/The_FP-Growth_Algorithm#FP-Growth_Algorithm Wikibooks {{---}} FP-Growth Algorithm]</ref>. Тут правило подразумевает импликацию <math>X \to Y</math>, где <math>X</math> и <math>Y</math> {{---}} непустые подмножества множества всех элементов, такие, что <math>X \cap Y = \varnothing</math>.
===Индуктивное логическое программирование===
На последней стадии построения онтологии используется индуктивное логическое программирование (англ. ''Inductive Logic Programming, ILP'')<ref>[https://wikipedia.org/wiki/Inductive_logic_programming Wikipedia {{---}} Inductive Logic Programming]</ref> {{---}} раздел машинного обучения, который использует логическое программирование как форму представления примеров, фоновых знаний и гипотез. ILP необходимо для генерации аксиом по схемам аксиом (полжительным положительным и отрицательным примерам и фоновым знаниям).
===Оценка онтологии===
Эта оценка использует источники знаний конкретной области, чтобы определить степень покрытия этой области обучаемой онтологией. Главным преимуществом данной оценки является возможность сравнивать одну или несколько целевых онтологий с конкретными данными. Однако возникает проблема нахождения подходящего источника знаний (как и в оценке золотым стандартом).
 
==Особенности применения онтологии для конкретных задач==
 
===Cистема автоматической обработки текста===
 
Лингвистическая онтология является одним из ключевых элементов в системе обработки текста и ее построение необходимо для решения задачи.
 
Как описано выше — для построения современных онтологий всегда является актуальным извлечение термов и концептов, в данном случае семантически связанных слов из текста на естественном языке.
Однако общим недостатком таких онтологий является отсутствие специализированных терминов, специфичных для данной предметной области. В следствие этого появляется проблема дополнения существующей онтологии, а именно семантической сети узлами и связями из внешних источников. И так как имеется множество публичных ресурсов для дополнения новых узлов и связей, то выделяют следующие задачи:
 
* Автоматизированный поиск новых узлов, связанных семантическими отношениями.
* Добавление новых узлов и связей в онтологию при обнаружении сущностей, признаки которых удовлетворяют заданным критериям.
 
Для решения данных задач существует множество способов анализа текстовой информации для извлечения из нее семантических отношений:
* Методы извлечения связей, основанные на шаблонах такие как "Top down" и "Bottom up"<ref>[https://www.math.spbu.ru/user/tseytin/butdu.html Bottom-up and Top-down Approaches to Text Analysis]</ref>.
* Группа методов, основанная на форматировании или на DOM<ref>[https://ru.wikipedia.org/wiki/Document_Object_Model Wikipedia {{---}} Document Object Model]</ref>.
* Методы, основанные на машинном обучении. Одним из самых явных примеров реализации является [[:Векторное_представление_слов#word2vec|word2vec]], основанный на нейронных сетях.
 
Последняя группа методов является наиболее современной и показывает наилучшую точность, но не позволяет достичь приемлимой точности и полноты в общем случае, так как данные методы используются для конкретной предметной области. Таким образом поиск наиболее подходящих признаков для обучения нейронных сетей необходим для применения лингвистической онтологии в данной задаче.
 
====Обработка текста на русском языке====
 
Чтобы применить онтологию для автоматической обработки текстов, необходимо понятиям онтологии сопоставить набор языковых выражений (слов и словосочетаний), которыми понятия могут выражаться в тексте. Для русского языка, как и для многих других языков, содержащие многозначные понятия, имеется ряд проблем.
 
Хоть понятие, лексическое значение относятся к категориям мышления, при этом между ними есть существенные различия.
Значение включает в себя помимо понятийного содержания (сигнификативно-денотативного<ref>[https://ru.wikipedia.org/wiki/Сигнификат Wikipedia {{---}} Сигнификат]</ref><ref>[https://ru.wikipedia.org/wiki/Денотат Wikipedia {{---}} Денонат]</ref> компонента значения), такие компоненты как оценочный, стилистический, сочетаемостный.
Также значение включает лишь различительные черты объектов, иногда относительно поверхностные, а понятия охватывают их наиболее глубокие существенные свойства.
Поэтому описать значения многих слов как совокупности общих и одновременно существенных признаков может быть очень трудно.
В целом, считается, что значение и понятие совпадают лишь в сфере терминологии.
 
Многие понятия в русском языке сложно представить в виде формальной системы, пригодной для логического вывода, например, описать таксономические связи, по следующим причинам:
 
* Из-за их нечеткости, расплывчатости.
 
* Контекстной зависимости, когда реализация некоторых компонентов значения существенно зависит от контекста.
 
* Существования значительных рядов синонимов, отличающихся оттенками значений, что затрудняет разбиение таких рядов на совокупность взаимосвязанных понятийных единиц. Например, сколько понятий онтологии оптимально (и на основе каких принципов) сопоставить следующему ряду слов со значением ''ОШИБКА'': ''ошибка, погрешность, недосмотр, просмотр, ляп, промах, оплошность, осечка, прокол, упущение, недочет'', а также'' ослышка, описка, опечатка, оговорка''. Таким словам обычно трудно найти точные слова-соответствия в других языках, то есть слова, имеющие такой же оттенок значения и такие же особенности употребления.
 
Несмотря на описанные проблемы, разработка моделей представления знаний о мире и о языке в рамках онтологий имеет смысл. Так например появился РуТез<ref>[https://www.labinform.ru/pub/ruthes/ О лингвистической онтологии "Тезаурус РуТез"]</ref> — онтология для автоматической обработки текста на русском языке, которая представила свое решение<ref>[https://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.671.6887&rep=rep1&type=pdf RuThes Linguistic Ontology vs. Russian Wordnets]</ref> для данных проблем.
==См. также==
174
правки

Навигация