Изменения

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

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

12 482 байта добавлено, 19:19, 4 сентября 2022
м
rollbackEdits.php mass rollback
===История===
[[Файл:Semantic_network.png|right|thumb|400px|Рис. 1. [https://ru.wikipedia.org/wiki/%D0%A1%D0%B5%D0%BC%D0%B0%D0%BD%D1%82%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B0%D1%8F_%D1%81%D0%B5%D1%82%D1%8C Пример семантической сети]]]Семантические сети<ref>[https://wikipedia.org/wiki/Semantic_network Wikipedia {{---}} Semantic Network]</ref> (рис. 1) были разработаны в 1960 году из-за растущей необходимости в инструменте для представления знаний, который мог бы охватить широкий спектр сущностей: объекты реального мира, события, ситуации и отвлечённые концепты и отношения, — в конце концов будучи применённым в задаче поддержания диалога на естественном языке. Основной целью разработки семантических сетей было решение множества задач, например, представление планов, действий, времени, верований и намерений. При этом способ решения этих задач должен был быть достаточно обобщённым.
В 1980-х гг. Гронингенский университет и университет Твенте начали работу над совместным проектом, названным "Графы знаний", базируясь на устройстве семантических сетей с рёбрами, ограниченными наперёд заданным количеством отношений — для упрощения алгебры на графах. В последовавшие десятилетия граница между понятиями "Графов знаний" и "Семантических сетей" размывалась всё больше.
В 2012 же году Google представили свою версию графа знаний<ref>[https://en.wikipedia.org/wiki/Google_Knowledge_Graph Wikipedia {{---}} Google Knowledge Graph]</ref>.
===Определение===
Не существует формального определения графа знаний. Однако есть ряд аксиомтребований, которым граф знаний должен удовлетворять которых следует придерживаться при его построении<ref>[https://www.authorea.com/users/6341/articles/107281-what-is-a-knowledge-graph/_show_article Wikipedia {{---}} Knowledge graph definition]</ref>.:
# Граф знаний определяется своей структурой(сущностями и связями между ними).
# Утверждения внутри графа знаний являются однозначными.
# Граф знаний использует конечный набор типов отношений.
# Все указанные сущности внутри графа знаний, включая типы и отношения, должны быть определены с использованием глобальных идентификаторов с однозначными обозначениями.
# Утверждения в графе знаний должны иметь явно указанные (лучше всего, проверенные) источники.# Граф знаний может иметь оценки неопределённостей(вероятности, с которыми истинны те или иные утверждения<ref>[https://en.wikipedia.org/wiki/Fuzzy_logic Wikipedia {{---}} Fuzzy logic]</ref>).
===Применение===
===Открытые проблемы===
# '''Выявление лучших практик для построения графов знаний'''. Является важной Важной проблемой является создание единого набора эвристик и практик, которые можно было бы применить для построения графов знаний. Такой набор мог бы помочь разработчикам и исследователям в понимании и использовании графов знаний.
# '''Динамически изменяемые знания'''. Знания не статичны, они зависят от времени. Например, некоторое утверждение, которое было истинным в один момент времени, может перестать быть таковым в другой. Поэтому открытой проблемой является поддержка изменений в знаниях.
# '''Оценка корректности и полноты графа знаний'''. Не выработаны объективные критерии оценки графов знаний. Открытой проблемой является ответ на вопрос, какое качество более важно для графа знаний: корректность (непротиворечивость), полнота или другое.
|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> больше не является живым).|}
Онтологии обычно кодируются с помощью языков онтологий — специализированных [[:Основные_определения,_связанные_со_строками#Формальные_языки|формальных языков, используемых для этой цели]].
Примерами таковых являются OWL<ref>[https://wikipedia.org/wiki/Web_Ontology_Language Wikipedia {{---}} OWL]</ref>
===Векторные представления графов знаний===
[[Файл:Knowledge-graph-tensor.jpg|200px|thumb|Рис. 2. [https://www.researchgate.net/publication/221345089_A_Three-Way_Model_for_Collective_Learning_on_Multi-Relational_Data Тензорная модель представления графов знаний. <math>E_1 \dots E_n</math> обозначают объекты, а <math>R_1 \dots R_m</math> обозначают отношения]]]
Векторные представления графов знаний (англ. ''Knowledge graph embeddings, KGE'') являются малоразмерными представлениями объектов-узлов и связей между ними в графе знаний. Они обобщают информацию о семантике и локальной структуре вершин.
и 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). Элемент тензора <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>.
====Извлечение термов и концептов====
Лингвистические техники также часто используют на этапе извлечения термов и концептов. Чтобы извлечь термы и концепты при помощи синтаксических структур слова помечают как части речи. Эта информация используется для извлечения синтаксических структур из предложений, таких как словосочетания и глагольные группы. Данные структуры анализируются на наличие различных слов и морфем для нахождения термов. К примеру словосочетание ''‘acute appendicitis’'' может быть извлечено в качестве кандидата на терм, так как является гипонимом к терму ''‘appendicitis’''. На китайских текстах данный метод достиг точности в <math>83.3\%</math><ref>The head-modifier principle and multilingual term extraction {{---}} Hippisley A., Cheng D. и Ahmad K. (2005)</ref>.
Распространёнными методами данного подхода являются:
* Рамки рамки валентностей (англ. ''Subcategorization Frames'')<ref>[https://en.wikipedia.org/wiki/Subcategorization#Subcategorization_Frames Wikipedia {{---}} Subcategorization Frames]</ref>;* Извлечение извлечение коренных слов (англ. ''Seed Words Extraction'').
====Нахождение связей====
Анализ С помощью анализа зависимостей помогает в нахождении связей можно находить связи между термами используя информацию, предоставленную в [[:Контекстно-свободные_грамматики,_вывод,_лево-_и_правосторонний_вывод,_дерево_разбора#Дерево_разбора|деревьях разбора]].Dependency analysis helps in finding relations between terms by using dependency information present in parsing trees (37). Ciaramita et al. (38) used dependency paths information present in parse trees to find relationship patterns. For two specific conceptsТаким образом, they found relations by extracting the shortest path among those concepts in parsing tree. Their approach was able to learn 83.3% correct relations from corpus. Besides this, it was also used by Sordo et al. (39) as relation extraction technique. Lexico-syntactic pattern is a rule-based approach that plays its role in taxonomic and non-taxonomic relation extraction phases of ontology learning. To extract relations, this algorithm makes use of regular expressions. For example, ‘NP such as NP, NP, … , NP’ is a rule that will extract patterns like ‘seasons, such as summer, winter, autumn, and spring’. This type of rule-based approach is quite helpful in extracting is–a relationship, i.e. is a (summer, season). On the other hand, lexico-syntactic patterns like ‘NP is a part of NP’ can be used to extract non-taxonomic relationships. In 1998, Hearst (40) introduced an algorithm that enabled the extraction of different types of lexico-syntactic patterns. She extracted 106 relations from New York Times corpus in which 61 relations were validated by WordNet. In other words she obtained a minimum accuracy of 75.55%. Besides this, Sombatsrisomboon et al. (149) used these patterns for extraction of taxonomic relations. Buitelaar (15), Kaushik and Chatterjee (41), Ismail et al. (42, 43), Panchenko et al. (44) and Atapattu et al. (45) also used these patterns in their work and concluded that lexico-syntactic patterns provide a reasonably good precision. However, the manual effort required to produce these patterns from data sets is also very extensive. Therefore, Snow et al. (46) made effort in extracting such patterns by using machine learning algorithms. Using logistic regression on a training set of known hypernyms pairs, they automatically learned dependency paths from parse tree and subsequently used them to extract new relationships in unknown dataс помощью кратчайшего пути между двумя концептами в дереве разбора можно выявить связи между ними.
Semantic lexicons are knowledge resources in the domain of ontology that play a vital role at different levels of ontology learning (47)Также можно использовать [[:Регулярные_языки:_два_определения_и_их_эквивалентность|регулярные выражения]]. Famous semantic lexicons include WordNet (https:Например, правило ''"<math>N</math>, как например <math>N</math>, <math>N</wordnet.princeton.edumath>, … , <math>N</) and Unified Medical Language System math>"'' (где <math>N</math> {{---}} именная группа<ref>[https://wwwru.nlmwikipedia.nih.govorg/researchwiki/umls%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>). Semantic lexicons can be used to extract terms, concepts and taxonomic and non-taxonomic relations. They offer a wide range of predefined concepts and relations. These concepts are organized into set of similar words called synsets (sets of synonyms). In (48)может выявить такие образцы как ''"сезоны года, Turcato et al. used these synsets for the formation of concepts. Besides thisкак например лето, semantic lexicons also have a number of predefined associations like hypernymyосень, meronymy etc. They have been employed by Navigli et alвесна и зима"''. Данный подход полезен для выявления связей ''"является"'' к примеру ''(49лето {{---}} сезон года) for extraction of taxonomic and non-taxonomic relations''.
===Статистические методы===
* 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
правки

Навигация