[Модуль] phpMorphy (morphy)

Разработка дополнительных модулей, подключение различных приложений.

Модератор: immortal

Аватара пользователя
sergejey
Site Admin
Сообщения: 4284
Зарегистрирован: Пн сен 05, 2011 6:48 pm
Откуда: Минск, Беларусь
Благодарил (а): 75 раз
Поблагодарили: 1559 раз
Контактная информация:

[Модуль] phpMorphy (morphy)

Сообщение sergejey » Вт май 17, 2016 5:00 pm

В маркет дополнений добавился пакет поддержки библиотеки phpMorphy -- библиотека морфологического анализа (включены словари русского и английского языков).

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

Изображение

Как оно работает

При включении этой галочки, совпадение шаблона проверяется не только по исходному тексту, но и по тексту состоящему из базовых форм каждого из слов. Если у какого-то из слов несколько базовых форм, то в поиске учавствуют фразы со всеми комбинациями этого слова.

Покажу на примере. Имеем шаблон: "закрыть дверь". В обычном случае от пользователя требуется точное совпадение формулировки (использование регулярных выражений для подмены окончаний здесь не рассматриваем). В случае же включения галочки использования морфологии, пользователь может сказать "закрой двери" и система всё равно найдёт совпадение по шаблону "закрыть дверь" (слово "закрой" преобразуется в базовую форму "закрыть", а "двери" в "дверь").

В качестве бонуса, при использовании морфологии в коде обработки шаблона на ряду с массивом $matches становится доступен массив $bases, который представляет собой базовые формы слов, входящих в $matches.

P.S. Базовые формы слов можно получить на демо-странице проекта phpMorphy
За это сообщение автора sergejey поблагодарили (всего 7):
Alien (Вт май 17, 2016 5:54 pm) • Amarok (Ср май 18, 2016 7:58 am) • nick7zmail (Ср май 18, 2016 10:55 am) • olehs (Сб май 21, 2016 10:33 am) • Otto (Вт июн 07, 2016 6:01 am) • savenko_egor (Ср окт 05, 2016 6:37 am) • Denis_k (Чт авг 17, 2017 9:34 pm)
Рейтинг: 8.14%

Сергей Джейгало, разработчик MajorDoMo
Идеи, ошибки -- за предложениями по исправлению и развитию слежу только здесь!
Профиль Connect -- информация, сотрудничество, услуги
Smolalex
Сообщения: 110
Зарегистрирован: Вт апр 29, 2014 9:16 pm
Благодарил (а): 7 раз
Поблагодарили: 13 раз

Re: Библиотека phpMorphy

Сообщение Smolalex » Ср май 18, 2016 10:08 pm

Сергей, не получается установить из маркета. После нажатия кнопки "Добавить" что то исполняется, но также остается кнопка "Добавить" и модуль отсутствует.
Аватара пользователя
sergejey
Site Admin
Сообщения: 4284
Зарегистрирован: Пн сен 05, 2011 6:48 pm
Откуда: Минск, Беларусь
Благодарил (а): 75 раз
Поблагодарили: 1559 раз
Контактная информация:

Re: Библиотека phpMorphy

Сообщение sergejey » Ср май 18, 2016 10:24 pm

Smolalex писал(а):Сергей, не получается установить из маркета. После нажатия кнопки "Добавить" что то исполняется, но также остается кнопка "Добавить" и модуль отсутствует.
Похоже он всё-таки устанавливается, но в виду того, что на самом деле это не модуль в обычном понимании, а библиотека, то система маркета не распознаёт то, что он устанавливается. В общем, надо посмотреть появляется ли описанная галочка в модуле шаблонов поведения и папка с файлами по пути /lib/phpmorphy/

Сергей Джейгало, разработчик MajorDoMo
Идеи, ошибки -- за предложениями по исправлению и развитию слежу только здесь!
Профиль Connect -- информация, сотрудничество, услуги
Аватара пользователя
m-malva
Сообщения: 291
Зарегистрирован: Чт фев 26, 2015 1:38 am
Откуда: Санкт-Петербург
Благодарил (а): 16 раз
Поблагодарили: 66 раз
Контактная информация:

Re: Библиотека phpMorphy

Сообщение m-malva » Чт май 19, 2016 1:45 am

sergejey писал(а): В качестве бонуса, при использовании морфологии в коде обработки шаблона на ряду с массивом $matches становится доступен массив $bases, который представляет собой базовые формы слов, входящих в $matches.
А можно чтоб в качестве бонуса $bases был доступен в
По истечении времени выполнить: ?
Снимок.PNG
Снимок.PNG (14.95 КБ) 11848 просмотров
За это сообщение автора m-malva поблагодарил:
Alien (Чт май 19, 2016 6:08 am)
Рейтинг: 1.16%
Аватара пользователя
m-malva
Сообщения: 291
Зарегистрирован: Чт фев 26, 2015 1:38 am
Откуда: Санкт-Петербург
Благодарил (а): 16 раз
Поблагодарили: 66 раз
Контактная информация:

Re: Библиотека phpMorphy

Сообщение m-malva » Чт май 19, 2016 10:33 am

у меня в голове:
Хорошо бы проводить разбор при выходе в «неизвестная команда»
Упала фраза в «неизвестная команда»
Нашли глагол, «базовую форму» закинули в словарь схожих действий
Нашли существительное , закинули в словарь синонимов
Сравнили с шаблонами, нашли ветку где встречается «действие» и «существительное»
За это сообщение автора m-malva поблагодарил:
DiArt (Чт май 19, 2016 2:41 pm)
Рейтинг: 1.16%
Smolalex
Сообщения: 110
Зарегистрирован: Вт апр 29, 2014 9:16 pm
Благодарил (а): 7 раз
Поблагодарили: 13 раз

Re: Библиотека phpMorphy

Сообщение Smolalex » Чт май 19, 2016 11:39 am

sergejey писал(а):
Smolalex писал(а):Сергей, не получается установить из маркета. После нажатия кнопки "Добавить" что то исполняется, но также остается кнопка "Добавить" и модуль отсутствует.
Похоже он всё-таки устанавливается, но в виду того, что на самом деле это не модуль в обычном понимании, а библиотека, то система маркета не распознаёт то, что он устанавливается. В общем, надо посмотреть появляется ли описанная галочка в модуле шаблонов поведения и папка с файлами по пути /lib/phpmorphy/
Да , спасибо! всё установилось
Аватара пользователя
Amarok
Сообщения: 1425
Зарегистрирован: Пт дек 14, 2012 12:24 pm
Откуда: Россия, Нижняя Тура
Благодарил (а): 460 раз
Поблагодарили: 126 раз
Контактная информация:

Re: Библиотека phpMorphy

Сообщение Amarok » Сб май 21, 2016 10:20 am

После установки phpMorphy перестали отрабатываться подобные шаблоны:
позвониПоказать

Код: Выделить всё

if (preg_match('/позвони/is',$original)) {
 $name = explode(" ", $original); $name = $name[1];
 $name = mb_strtolower($name, 'UTF-8');
 $objects = getObjectsByClass("Peoples");
 foreach($objects as $obj) {
  $n2c  = mb_strtolower(gg($obj['TITLE'].".name"),  'UTF-8');
  $n2c1 = mb_strtolower(gg($obj['TITLE'].".name1"), 'UTF-8');
  $n2c2 = mb_strtolower(gg($obj['TITLE'].".name2"), 'UTF-8');
  if ($n2c==$name or $n2c1==$name or $n2c2==$name) {
   $skypename = gg($obj['TITLE'].".Skype");
   say($skypename);
  }
 }
} 
Удаляю модуль - работают.
Алиска живёт на Ubuntu Server 14.04.3 LTS
connect, группа в Telegram, Яндекс.Деньги для благодарностей за помощь: 41001355945165
eeak1
Сообщения: 51
Зарегистрирован: Чт май 12, 2016 9:13 am
Благодарил (а): 22 раза
Поблагодарили: 11 раз
Контактная информация:

Re: Библиотека phpMorphy

Сообщение eeak1 » Вс май 22, 2016 2:58 pm

Если включить Use morphology и в коде использовать $original - на выходе получается примерно так: Что именно Включи@@@@ВКЛЮЧИТЬть?
Алиса живёт на нубуке с закрытой крышкой в Docker контейнере, соседствует с контейнерами nextcloud, plex, mosquitto, и т.д.
ранее в Docker контейнере на Raspberry Pi 4
ранее натив на Raspberry Pi 3
https://www.eeak.biz
Аватара пользователя
Amarok
Сообщения: 1425
Зарегистрирован: Пт дек 14, 2012 12:24 pm
Откуда: Россия, Нижняя Тура
Благодарил (а): 460 раз
Поблагодарили: 126 раз
Контактная информация:

Re: Библиотека phpMorphy

Сообщение Amarok » Вс май 22, 2016 3:45 pm

Ага. :( Как исправить?
Алиска живёт на Ubuntu Server 14.04.3 LTS
connect, группа в Telegram, Яндекс.Деньги для благодарностей за помощь: 41001355945165
Аватара пользователя
Amarok
Сообщения: 1425
Зарегистрирован: Пт дек 14, 2012 12:24 pm
Откуда: Россия, Нижняя Тура
Благодарил (а): 460 раз
Поблагодарили: 126 раз
Контактная информация:

Re: Библиотека phpMorphy

Сообщение Amarok » Вт май 31, 2016 3:55 pm

up
Алиска живёт на Ubuntu Server 14.04.3 LTS
connect, группа в Telegram, Яндекс.Деньги для благодарностей за помощь: 41001355945165
Ответить