Изменения

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

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

13 233 байта добавлено, 19:19, 4 сентября 2022
м
rollbackEdits.php mass rollback
|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> больше не является живым).|}
Онтологии обычно кодируются с помощью языков онтологий — формальных языков<ref>специализированных [[https://ru.wikipedia.org/wiki/%D0%A4%D0%BE%D1%80%D0%BC%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D0%B9_%D1%8F%D0%B7%D1%8B%D0%BA Википедия {{---}} Формальный язык]</ref>Основные_определения, основанных на [[:Исчисление_предикатов_связанные_со_строками#Формальные_языки|исчислении предикатов]] (не путать с [[:Формальные_грамматики|формальными грамматикамиформальных языков]]).
Примерами таковых являются OWL<ref>[https://wikipedia.org/wiki/Web_Ontology_Language Wikipedia {{---}} OWL]</ref>
и RotatE<ref>[https://arxiv.org/pdf/1902.10197.pdf RotatE: Knowledge Graph Embedding by Relational Rotation in Complex Space] {{---}} Zhiqing Sun, Zhi-Hong Deng, Jian-Yun Nie, Jian Tang (2019)</ref>.
Как пример для представления графовых данных может использоваться семантика Cреды описания ресурса (англ. ''Resource Description Framework, RDF'')<ref>[https://en.wikipedia.org/wiki/Resource_Description_Framework Wikipedia {{---}} Resource Description Framework]</ref> где связи представляются триплетом "''субъект — предикат — объект''". Для моделирования бинарных отношений на графе удобно использовать трехсторонний тензор <math>X</math> (рис. 2), в котором две размерности образованы на основе связываемых объектов-узлов, а третья размерность содержит отношения между ними (смрис. иллюстрацию2). Элемент тензора <math>x_{ijk} = 1</math>, когда существует отношение (i-й объект, k-е отношение, j-й объект). В противном случае для несуществующих или неизвестных отношений <math>x_{ijk} = 0</math>.
===Обучение онтологий===
[[Файл:Ontology-learning-layer-cake.png|400px|thumb|Рис. 3. Слоеный пирог обучения онтологий]]
Процесс получения онтологий начинается с вынесения множества терминов термов из текста и получения их синонимов. Далее они преобразуются во множество концептов. После чего выявляются связи между концептами, и в итоге формируются схемы аксиом и извлекаются аксиомы. Данный процесс называют '''слоеным пирогом обучения онтологии''' (рис. 3).
Алгоритмы, используемые в разных слоях при построении онтологии разбивают на 3 основные группы:
На первой стадии текст [[:Обработка_естественного_языка#Предобработка_текста|предобрабатывается]] для уменьшения размерности и повышения точности обучаемой модели. Обычно для этого используют такие методы, как:
* [[:Обработка_естественного_языка#Частеречная_разметка|Частеречная частеречная разметка]]<sup>[на 09.01.21 не создан]</sup> (англ. ''Part-Of-Speech tagging POS tagging'')<ref>[https://wikipedia.org/wiki/Part-of-speech_tagging Wikipedia {{---}} Part-of-speech tagging]</ref>;* [[:Обработка_естественного_языка#Лемматизация|Лемматиза́циялемматиза́ция]] (англ. ''Lemmatization'')<ref>[https://wikipedia.org/wiki/Lemmatisation Wikipedia {{---}} Lemmatisation]</ref>.
====Извлечение термов и концептов====
Распространёнными методами данного подхода являются:
* рамки валентностей (англ. ''Subcategorization Frames'')<ref>[https://en.wikipedia.org/wiki/Subcategorization#Subcategorization_Frames Wikipedia {{---}} Subcategorization Frames]</ref>);
* извлечение коренных слов (англ. ''Seed Words Extraction'').
С помощью анализа зависимостей можно находить связи между термами используя информацию, предоставленную в [[:Контекстно-свободные_грамматики,_вывод,_лево-_и_правосторонний_вывод,_дерево_разбора#Дерево_разбора|деревьях разбора]]. Таким образом, с помощью кратчайшего пути между двумя концептами в дереве разбора можно выявить связи между ними.
Также можно использовать [[:Регулярные_языки:_два_определения_и_их_эквивалентность|регулярные выражения]]. Например , правило ''"<math>N</math>, как например <math>N</math>, <math>N</math>, … , <math>N</math>"'' (тут где <math>N</math> обозначает словосочетание или существительное{{---}} именная группа<ref>[https://ru.wikipedia.org/wiki/%D0%98%D0%BC%D0%B5%D0%BD%D0%BD%D0%B0%D1%8F_%D0%B3%D1%80%D1%83%D0%BF%D0%BF%D0%B0 Википедия {{---}} Именная группа]</ref>) может выявить такие образцы как ''‘сезоны "сезоны года, как например лето, осень, весна и зима’зима"''. Данный подход полезен для выявления связей ''"является"'' к примеру ''(лето {{---}} сезон года)''.
===Статистические методы===
* 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> для данных проблем.
==См. также==
1632
правки

Навигация