Как рассчитать сходство слов (с github)

задняя часть NLP
Как рассчитать сходство слов (с github)

предисловие

Существует множество способов вычисления сходства текста, и многие из них были упомянуты ранее.Продолжим обсуждение метода вычисления сходства слов — вычисления сходства слов на основе HowNet.

семантика слов

Также нет четкого объективного стандарта для измерения сходства слов.Сходство включает в себя морфологию, синтаксис, семантику, прагматику и т. д. слов, поэтому трудно дать единое определение.

два типа методов

Сходство слов обычно можно разделить на два типа: один основан на онтологии или таксономии, а другой основан на крупномасштабном корпусе для статистики.

Метод первого типа обычно основан на словаре-тезаурусе, все слова организованы в одну или несколько древовидных структур, а в качестве семантического расстояния может использоваться длина пути двух узлов. Например, вычисление сходства на основе слова «лес», упомянутого ранее.

Второй тип метода требует крупномасштабного корпуса.Мы считаем, что слова с похожей семантикой должны иметь схожие контексты.С помощью определенной вероятностной модели можно рассчитать корреляцию слов, а затем можно рассчитать сходство.

Хаунет

«HowNet» является результатом более чем десятилетнего исследования г-на Дун Чжэндуна, который используется для выявления взаимосвязи между понятиями и атрибутами, которыми обладают понятия в качестве основного содержания базы знаний здравого смысла. HowNet содержит богатые лексико-семантические знания и мировые знания, которые предоставляют ценные ресурсы для обработки естественного языка.

Структура HowNet

HowNet в основном включает «концепцию» и «оригинальное значение». Концепт — это описание лексической семантики, а слово может быть и несколькими концептами. Семема — это наименьшая единица значения, используемая для описания понятия.

HowNet использует в общей сложности 1500 семем, которые делятся на следующие категории:

  1. Событие|Событие
  2. сущность | сущность
  3. атрибут|значение атрибута
  4. aValue|Значение атрибута
  5. количество|количество
  6. qValue|Количественное значение
  7. Вторичная функция|Вторичная функция
  8. синтаксис|синтаксис
  9. EventRole|Динамическая роль
  10. EventFeatures|Динамические свойства

Например

слово Номер концепции язык описания
ударил 017144 упражнение|упражнение,спорт|спорт
человек 059349 человек|человек,семья|дом, мужчина|мужчина
Счастливый 029542 aValue|Значение атрибута,обстоятельства|Обстоятельства,счастливый|Фу,желаемый|Хороший
День рождения 072280 время|время,день|день,@ComeToWorld|Выход, $congratulate|Поздравляем
Пекин 003815 место|Место,столица|Году, Имя собственное|Особый,(Китай|Китай)
ЮНИСЕФ 024083 часть|части,%учреждение|учреждения,политика|политика,#молодой|молодой,#фонд|финансирование, (учреждение|учреждение=ООН|ООН)

Разделение семемы

Мы можем разделить значение HowNet на три группы.

группа название Сфера эффект
Первая группа основной смысл Включает семы классов с 1 по 7 Семантические признаки, используемые для описания одного понятия
Вторая группа синтаксическое значение Включены только семемы класса 8 Грамматические особенности, используемые для описания слов, в основном частей речи.
Третья группа относительное значение Включает семы классов 9 и 10 Используется для описания понятий и отношений между понятиями (аналогично падежным отношениям в грамматиках с глубоким регистром).

символы описательного языка

, Между несколькими атрибутами, указывающими на отношения «и»
# означает «связанный с»
% означает «является частью»
$ Средство «может быть распоряжено «V» или субъектом, объектом, владением или содержанием «V»
* Означает «будет ‘V’ или будет в основном использоваться для ‘V’, т.е. агент или инструмент
+ Для класса V это означает, что символ, который он отмечает, является имплицитным символом, который почти никогда не встречается в реальном языке.
& указать на
~ значит скорее всего, скорее всего, вероятно
@ Указывает на пространство или время, которое может сделать «V».
? Указывает, что материал может быть «N», например, для ткани мы помечаем его «? одежда», чтобы указать, что ткань может быть материалом «одежда».
{} (1) Для класса V в [ ] указаны все «обязательные роли» для этого класса V. Например, для категории «покупка», когда это происходит, должны быть фактически задействованы следующие роли: агент, владение, источник, инструмент. Хотя в большинстве случаев в предложении учитываются не все роли (2) Указывает на динамические роли, такие как определение предлогов
() В нем должен быть словарной жетон, например, (Китай|Китай)
^ Указывает, что он не существует, или не существует, или не может
! Указывает, что атрибут является чувствительным атрибутом, например: «вкус» для «еды», «высота» для «горы», «температура» для «небесного явления» и т. д.

Содержательные слова и служебные слова

Концепция HowNet включает слова содержания и служебные слова.Описание функциональных слов относительно простое и описывается как "{синтаксическая семантика}" или "{реляционная семантика}". Описание содержательного слова более сложное и состоит из ряда «семантических описаний», разделенных запятыми.

image

Содержательные слова могут включать такие описания, как:

  1. Описание основного значения описывается "основным значением". Первое описание всегда является описанием основного значения, которое также является наиболее важным описанием слова содержания. Это основное значение описывает слово содержания. самые основные семантические характеристики;
  2. Описательная формула относительного значения: используйте «относительное значение = основное значение» или «относительное значение = (конкретное слово)» или «(относительное значение = определенное слово)» для описания;
  3. Описание реляционного символа: он описывается «базовым значением реляционного символа» или «реляционным символом (конкретным словом)», и один и тот же реляционный символ также может использоваться в нескольких описаниях реляционных символов;

Основная идея

Каждое понятие в HowNet не соответствует узлу в древовидной иерархии понятий, которая отличается от синонима Cilin.HowNet использует ряд семантик и использует определенный язык описания знаний для описания понятия.Опишите понятие. Эти семемы организованы в древовидную иерархию семем посредством верхних и нижних отношений. Все, что нам нужно сделать сейчас, это найти способ вычислить сходство двух семантических выражений, представленных этим языком описания знаний.

Для двух китайских слов W1 и W2, если W1 имеет n понятий: S11, S12, ..., S1n, W2 имеет m понятий: S21, S22, ..., S2m, то оговаривается, что сходство между W1 и W2 равно каждому Максимальное сходство концепции.

image

Сходство семем

Вычисление сходства семем является основой сходства понятий.Семема состоит из древовидной иерархии семем.Предполагая, что расстояние пути между двумя семемами в этой иерархии равно d, можно получить разницу между двумя семемами.Семантическое расстояние равно,

image

где p1 и p2 представляют две семы, а d — длина пути p1 и p2 в иерархии семем и является положительным целым числом. α – регулируемый параметр.

сходство функциональных слов

Поскольку служебные слова и слова содержания не всегда можно заменить, сходство между служебными словами и словами содержания всегда равно нулю.

Кроме того, служебные слова всегда описываются двумя способами: «{синтаксическая сема}» или «{реляционная сема}», поэтому сходство служебных слов необходимо только для вычисления сходства между соответствующими им синтаксическими семами или реляционными семами.

Сходство реальных слов

Знания HowNet выражаются семемой, набором и структурой признаков.Общее сходство реальных слов основано на сходстве частей.Сложное целое разбивается на части, и сходство целого получается путем вычисления сходства между части.

Описание содержательного слова может быть представлено в виде структуры признаков, которая содержит следующие четыре признака:

  1. Первое базовое семантическое описание: его значение является базовой семантикой, и сходство этой части двух понятий мы записываем как Sim1(S1,S2);
  2. Другие основные семантические описания: Соответствуя всем основным семантическим описаниям, кроме первого основного семантического описания в семантическом выражении, его значение представляет собой набор основных семантик, и мы используем сходство этой части двух понятий. Обозначается как Sim2(S1, С2);
  3. Описание реляционной семемы: соответствует всем описаниям реляционной семемы в семантическом выражении, его значение представляет собой структуру признаков, для каждого признака структуры признаков его атрибутом является реляционная семема, а его значением является базовая семема или конкретное слово. Обозначим сходство этой части двух понятий как Sim3(S1,S2);
  4. Описание реляционного символа: соответствует всем описаниям реляционных символов в семантическом выражении, его значение также является структурой признаков. Для каждого признака структуры признаков его атрибутом является реляционная семема, а его значением является набор. Элемент представляет собой базовый элемент. значение или конкретное слово. Обозначим сходство этой части двух понятий как Sim4(S1,S2).

Тогда общее сходство двух концептуальных семантических выражений таково:

image

в,

image

Это отражает то, что Sim1 и Sim4 играют убывающую роль в общем сходстве. Поскольку первое базовое семантическое описание отражает важнейший признак понятия, его вес следует определять относительно большим, как правило, выше 0,5.

Первое базовое сходство семантического описания: сходство между двумя семемами, рассчитанное по сходству семемы;

Другая базовая семантика описывает сходство: Его значением является множество, которое преобразуется в задачу вычисления сходства двух множеств основных значений, устанавливается взаимно-однозначное соответствие между элементами двух множеств, и метод заключается в следующем:

  1. Сначала вычислите сходство между всеми элементами двух наборов;
  2. Выберите наибольшее из всех значений сходства и сопоставьте два элемента, соответствующие этому значению сходства;
  3. Удалить значения сходства тех элементов, которые установили соответствующие отношения из всех значений сходства;
  4. Повторяйте шаги 2 и 3 выше, пока не будут удалены все значения подобия;
  5. Элементы, для которых не установлено соответствие, соответствуют пустым элементам.

После установления однозначного соответствия между элементами двух множеств легко вычислить сходство двух множеств: сходство множества равно средневзвешенному сходству пар его элементов.

Реляционная семема Описание Сходство: Его значение представляет собой структуру признаков, которая преобразуется в задачу вычисления подобия двух структур признаков. Между объектами с одинаковым атрибутом существует однозначное соответствие. Если нет объекта с таким же атрибутом, соответствующий объект объекта пуст. Сходство структуры признаков преобразуется в средневзвешенное значение сходства каждого признака.

Символы отношения описывают сходство: Его значение представляет собой структуру признаков, которая преобразуется в задачу вычисления подобия двух структур признаков.

github

https://github.com/sea-boat/TextAnalyzer/blob/master/src/main/java/com/seaboat/text/analyzer/similarity/HownetSimilarity.java

------------- Рекомендуем прочитать ------------

Краткое изложение моих проектов с открытым исходным кодом (машинное и глубокое обучение, НЛП, сетевой ввод-вывод, AIML, протокол mysql, чат-бот)

Зачем писать «Анализ проектирования ядра Tomcat»

2018 Алгоритмы структуры сводных данных

Сборник статей по машинному обучению за 2018 г.

Сводка статей о глубине Java за 2018 г.

Резюме по обработке естественного языка за 2018 г.

Резюме глубокого обучения за 2018 г.

Сводка статей об исходном коде JDK за 2018 г.

Обзор Java Concurrency Core за 2018 г.

Итоговые чтения за 2018 год


Поговори со мной, задай мне вопросы:

Добро пожаловать, чтобы следовать: