terratensor / svodd

Поиск по архиву вопросов и комментариев сайта ФКТ
https://svodd.ru
BSD 3-Clause "New" or "Revised" License
2 stars 0 forks source link

Поиск не выдает ожидаемые результаты #164

Open audetv opened 1 year ago

audetv commented 1 year ago

коллеги, приветствую! я начала чистить то, что до сих пор выкладывала в словаре - оказалось, там полно лишнего, а кое-чего недостаёт, думаю, у вас совсем нет времени на такую работу, поэтому взялась сама, такая работа поможет мне в дальнейшем при продолжении списка, уже с учётом опыта, "сына ошибок трудных" ))

Примечание: слово Бытие (как и Жизнь) выдаёт в поиске нечто совсем неадекватное, даже без выделения этих слов (при этом я была убеждена, что результатом должно было быть 100500 комментариев...)

Originally posted by @grigorovsckaya-sandra in https://github.com/audetv/fct-search/discussions/112#discussioncomment-5760935

audetv commented 1 year ago

Пока вернул сайт на сборку #345 Merge pull request #160 from audetv/placeholder #345 https://github.com/audetv/fct-search/actions/runs/4832111431 жизнь и бытие не выдают результат. В стоп словах?

audetv commented 1 year ago

Так как, по всей видимости, проблема не в фильтре, вернул на сборку #351 Merge pull request #163 from audetv/search-date-filter

audetv commented 1 year ago

https://github.com/audetv/conceptual-dictionary/blob/main/manticore/stopwords/ru В списке стоп слов: жизнь и быть. Похоже по этому списку надо пройти с «расчёской».

iprst commented 1 year ago

Похоже по этому списку надо пройти с «расчёской».

Конечно. Это неизбежно, ведь актуальные правила пополнения словаря не определены, поскольку (а) на момент начала работы не была известна технологическая часть и (б) основная часть правил проистекает из опыта использования, который требуется получить.

Сейчас, наверное, можно попробовать написать первый вариант правил.

grigorovsckaya-sandra commented 1 year ago

https://github.com/audetv/conceptual-dictionary/blob/main/manticore/stopwords/ru В списке стоп слов: жизнь и быть. Похоже по этому списку надо пройти с «расчёской».

плюс Хорошее (смотрела это слово как синоним Добру, но думаю его резать к чёртовой матери, не дожидаясь перитонита ))

на все эти запросы вылезает один и тот же список записей https://svodd.ru/?search%5Bquery%5D=хорошее&search%5Bmatching%5D=&search%5Bmatching%5D=match_phrase&search%5Bdate%5D=&search%5Bdictionary%5D=0

iprst commented 1 year ago

ПРАВИЛО 1

Перед пополнением словаря проверяем предполагаемые «синонимы» методом «По совпадению слов». Так, сочетание предполагаемых «синонимов» собака, кошка, лебедь, проверяется запросом:

svodd.ru/собака+кошка+лебедь

Удаление отдельных «синонимов» в окне ввода поискового запроса или добавление новых позволяет проверить размер выдачи и релевантность «синонимизирования».

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

grigorovsckaya-sandra commented 1 year ago

ПРАВИЛО 1

Перед пополнением словаря проверяем предполагаемые «синонимы» методом «По совпадению слов». Так, сочетание предполагаемых «синонимов» собака, кошка, лебедь, проверяется запросом:

svodd.ru/собака+кошка+лебедь

Удаление отдельных «синонимов» в окне ввода поискового запроса или добавление новых позволяет проверить размер выдачи и релевантность «синонимизирования».

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

не знаю, мне пока что удобнее вносить каждое слово/фразу по отдельности,

у меня вопрос в отношении понятий Добро-Зло (Хорошо-Плохо) - результаты поиска неадекватны = Добро-Доброе не регистрируется пока, = Зло выдаёт все предложения со словом "злой", в т.ч. Злой Кот, = Плохо - точно так же выдаёт все предложения с прилагательным "плохой" не в тему борьбы добра и зла (но "борьба добра и зла" выдаёт результат) === очень жаль, что тема "что такое хорошо и что такое плохо" не отражается, там есть интересные дискуссии

iprst commented 1 year ago

не знаю, мне пока что удобнее вносить каждое слово/фразу по отдельности

Правила это вопрос не столько удобства, сколько цели. Цель — включить в выдачу по одному запросу собака несколько дополнительных выдачей по другим запросам кошка, лебедь. Все такие запросы становятся «синонимами» в концептуальном словаре. ПРАВИЛО 1 позволяет на этапе проверки идеи «а синонимы ли это», ещё до внесения строки в словарь, установить, является ли выдача по ним в совокупности подходящей к исходному слову, или нет.

Само правило по сути служит тому, чтобы не приходилось выполнять лишнюю работу по наполнению словаря, что ведёт к лишней работе по фиксированию wordforms. С помощью ПРАВИЛА 1 можно как вносить новые строки в словарь, так и проверять уже существующие строки на предмет их соответствия ожидаемому поведению «концептуального словаря».

grigorovsckaya-sandra commented 1 year ago

С помощью ПРАВИЛА 1

проверила комбинацию ДОБРО ЗЛО ХОРОШО ПЛОХО и получила результат 23К+ комментариев, в которых снова повторялся модуль "все комменты со словом плохой, хороший или будьте добры", хотя та дискуссия, которую я упоминала, выплыла сразу...

grigorovsckaya-sandra commented 1 year ago

ещё хочу предупредить: я "причесала" список до буквы З включительно и сохранила изменения

iprst commented 1 year ago

у меня вопрос в отношении понятий Добро-Зло (Хорошо-Плохо) - результаты поиска неадекватны = Добро-Доброе не регистрируется пока, = Зло выдаёт все предложения со словом "злой", в т.ч. Злой Кот, = Плохо - точно так же выдаёт все предложения с прилагательным "плохой" не в тему борьбы добра и зла (но "борьба добра и зла" выдаёт результат)

Этому несколько причин.

  1. Сейчас в концептуальный поиск не внесены понятия «добро», «зло», «хорошо», «плохо» — наличие включённых на текущий момент в концептуальный словарь понятий проверяется в файле wordforms.txt. Слова из словаря переносятся в wordforms постепенно, пока идёт разбор самой системы. Как она будет освоена, можно будет внести хоть все слова.
  2. Сейчас все поисковые слова ищутся согласно стандартному морфологическому словарю, то есть в большинстве случаев будут найдены все однокоренные слова той же части речи — собака, собаки, собакой, однако не всегда будут найдены слова другой части речи, например собачий или собакин (фамилия, воспринимаемая как наречие?). Поведение индекса в отношении зло=злой, добро=добрый выпадает из этой логики, так, например, запрос добро равен запросу добро добрый, но не равен запросу добро добрый добренький, при этом запрос добрый не равен запросу добрый добренький. В общем, мантикора не шибко русская.
  3. Запрос «что такое хорошо что такое плохо» хорошо бы включить в концептуальный словарь к ключу «различение», но в текущий момент результаты поиска неадекватны и это не даст пользы.

Откуда вывод — в настоящий момент расширение словаря имеет смысл делать только в том случае, когда поиск «по совпдению слов» всех подключаемых терминов увеличивает полезную выдачу, но не приносит слишком много мусора.

iprst commented 1 year ago

Хм. А почему запрос бытие жизнь отдаёт в выдаче вопрос?

image

audetv commented 1 year ago

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

Я не ожидал, что при вводе стоп слов он выдаст всю выдачу, я делал специальные исключения для этого, чтобы не грузить 300т+ результатов, но не доделал. Я у себя в какой то момент на локальной версии отключил стоп слова, аот оно и сказалось. Идея была, что на такой запрос будет строка: Задан пустой поисковый запрос. Т.е. по идее поиск со стоп словом не должен ничего в выдачу давать. ввести И - сейчас будет 300+ результатов, но я считаю это не правильным, и это будет тормозить поиск, повлияет на производительность. Что должно отображаться, если ввели стоп слово? Идеи?

iprst commented 1 year ago

Потому что поиск и по вопросам и по комментариям, так было с самого начала.

Понял. Раньше внимания не привлекало. Тем не менее как ответить на вопрос, почему этот текст показан в выдаче по запросу бытие жизнь? Я не уловил ни бытия ни жизни:

Приветствую! С какой целью исполком МОК одобрил (22 апреля) предложение изменить девиз Олимпийских игр? Согласно новому варианту, теперь девиз Олимпийских игр будет звучать так: "быстрее, выше, сильнее - вместе" (на латыни - citius, altius, fortius - communis). https://rsport.ria.ru/20210422/deviz-1729515166.html

их можно визуально как то выделять, если необходимо, надо придумать и сделать issue )

Как минимум ссылка «Перейти к комментарию на ФКТ» теперь выглядит нелогично, ведь это не комментарий.

поиск со стоп словом не должен ничего в выдачу давать. ввести И - сейчас будет 300+ результатов, но я считаю это не правильным, и это будет тормозить поиск, повлияет на производительность. Что должно отображаться, если ввели стоп слово? Идеи?

Так вот же:

на такой запрос будет строка: Задан пустой поисковый запрос

Сейчас на пустой поисковый запрос выдаёт правильно, точно такую выдачу нужно на стоп-слова:

image

grigorovsckaya-sandra commented 1 year ago

коллеги, у меня снова вопросы:

  1. в отношении понятия "царская информация", в соответствии с Правилом №1 выпадает много мусора с просто "информацией" или просто "царским",

моё предложение: оставить только "сакральный" и "эзотерический", можно и "знание", т.к. обычно речь именно о знании "царской информации"

  1. убирать ли из списка то, что не имеет "отклика" в комментах, нпр., Инверсия приоритетов?

  2. очень важное понятие "качество управления" разбивается на излишние, не в тему "качество" и "управление" то же самое с "реальным управлением", НО по-отдельности, с кнопкой "по соответствию фразе", выдаётся нормальный результат, хотя с той же кнопкой и вместе результата нет ("по совпадению слов" 48К комментов)

iprst commented 1 year ago
  1. в отношении понятия "царская информация", в соответствии с Правилом №1 выпадает много мусора с просто "информацией" или просто "царским",

Поиск в большинстве режимов воспринимает пробел как разделитель поисковых запросов, и только при выборе варианта «по соответствию фразе» позволяет найти запрос как словосочетание. Однако для подобных составных терминов подключение концептуального словаря в целом решает проблему, например «поиск по умолчанию» запроса полная функция управления отсекает ненужные результаты, во всяком случае некоторые, например из выдачи исчезает комментарий #433956, в котором есть слова «полная», «функция» и «управления», но не выраженные в качестве концептуального термина, при этом размер выдачи увеличивается почти втрое (из-за синонимов ПФУ и тд). Скорее всего для «царской информации» будет выполняться та же логика.

моё предложение: оставить только "сакральный" и "эзотерический", можно и "знание", т.к. обычно речь именно о знании "царской информации"

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

Кто что думает?

2. убирать ли из списка то, что не имеет "отклика" в комментах, нпр., Инверсия приоритетов?

Если есть хороший синоним, то зачем убирать? А если синонима нет, то и проблемы нет.

3. очень важное понятие "качество управления" разбивается на излишние, не в тему "качество" и "управление" то же самое с "реальным управлением", НО по-отдельности, с кнопкой "по соответствию фразе", выдаётся нормальный результат, хотя с той же кнопкой и вместе результата нет ("по совпадению слов" 48К комментов)

Эти словосочетания нужно обдумать. Они входят в разные типы понятий ДОТУ, которые сами по себе ещё нужно попробовать объединить, основная проблема в том, что для этих понятий не существует единого обобщающего термина, выраженного одним словом, которое могло бы быть ключевым.

iprst commented 1 year ago

ПРАВИЛО 1

Перед пополнением словаря проверяем предполагаемые «синонимы» методом «По совпадению слов». Так, сочетание предполагаемых «синонимов» собака, кошка, лебедь, проверяется запросом:

svodd.ru/собака+кошка+лебедь

ПРАВИЛО 2

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

полная функция управления > ПФУ
иерархически наивысшее всеобъемлющее управление > ИНВОУ

ПРАВИЛО 3

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

svodd.ru/качество управления svodd.ru/вектор текущего состояния

grigorovsckaya-sandra commented 1 year ago

насчёт "царской информации" и "сакральный" согласна - мой выбор тоже за этим последним,

Правило 3 - часто им пользуюсь как раз в случаях словосочетаний

iprst commented 1 year ago

я чего-то натворила, а всего-то лишь перешла по ссылке "качество управления", и половина issue исчезла

Обновите страницу. Гитхаб хранит вид страницы последнего посещения, и если перейти по ссылке куда-то и затем вернуться, то он отдаёт некую старую копию страницы.

grigorovsckaya-sandra commented 1 year ago

я чего-то натворила, а всего-то лишь перешла по ссылке "качество управления", и половина issue исчезла

Обновите страницу. Гитхаб хранит вид страницы последнего посещения, и если перейти по ссылке куда-то и затем вернуться, то он отдаёт некую старую копию страницы.

страница сама вернулась )

grigorovsckaya-sandra commented 1 year ago

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

iprst commented 1 year ago

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

В процессе переноса содержимого словаря в wordforms возникнут конфликты сущностей, которых можно избежать на этапе составления словаря. Например:

Вера, суеверие, религия, конфессия, вера богу, вера в бога, вероучения, идолопоклонство

По сути разделяется на две сущности:

вера, суеверие, вера богу, вероучения религия, конфессия, вера в бога, идолопоклонство

Которые в wordforms будут представлены следующим образом:

суеверие > вера
вера богу > вера
вероучения > вера

конфессия > религия
вера в бога > религия
идолопоклонство > религия

Подобная ситуация наблюдается с рядом строк, поэтому можно предположить, что имеет смысл сформированный словарь попробовать перенести в wordforms согласно ПРАВИЛАМ, многое станет понятно сразу по факту работы с этим файлом. Добавил туда вышеупомянутые синонимы «веры» и «религии». Можете попробовать добавлять туда свои пары, имея в виду что после > должно идти ключевое слово, которое должно быть одним словом или аббревиатурой, при этом максимально отражать суть понятия, насколько это возможно передать одним словом.

grigorovsckaya-sandra commented 1 year ago

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

В процессе переноса содержимого словаря в wordforms возникнут конфликты сущностей, которых можно избежать на этапе составления словаря. Например:

Вера, суеверие, религия, конфессия, вера богу, вера в бога, вероучения, идолопоклонство

По сути разделяется на две сущности:

вера, суеверие, вера богу, вероучения религия, конфессия, вера в бога, идолопоклонство

Которые в wordforms будут представлены следующим образом:

суеверие > вера
вера богу > вера
вероучения > вера

конфессия > религия
вера в бога > религия
идолопоклонство > религия

Подобная ситуация наблюдается с рядом строк, поэтому можно предположить, что имеет смысл сформированный словарь попробовать перенести в wordforms согласно ПРАВИЛАМ, многое станет понятно сразу по факту работы с этим файлом. Добавил туда вышеупомянутые синонимы «веры» и «религии». Можете попробовать добавлять туда свои пары, имея в виду что после > должно идти ключевое слово, которое должно быть одним словом или аббревиатурой, при этом максимально отражать суть понятия, насколько это возможно передать одним словом.

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

в связи с этим, следующее слово - "народ", в обсуждениях чаще идёт речь о народе и толпе, а не о народе как нации; ваши предложения, каким образом разделить эти понятия

iprst commented 1 year ago

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

Всё верно. В некоторых случаях, как здесь, имеет концептуальный смысл разделять запрос на антонимы, поскольку в концепции эти понятия целенаправленно выделены в противоположные по смыслу группы. Кроме того, сейчас общий набор выдаёт многовато записей, почти 25К.

в связи с этим, следующее слово - "народ", в обсуждениях чаще идёт речь о народе и толпе, а не о народе как нации; ваши предложения, каким образом разделить эти понятия

Именно. Тут нужно определить, о каком народе мы говорим. Есть ключевое слово народ и мы его определим как субъект управления, обладающий произволом. А в противовес ему антонимы объединим под словом толпа. То есть нужно как и «веру ≠ религию» разбросать термины на две группы.

grigorovsckaya-sandra commented 1 year ago

что делать с понятиями "внутренняя политика", "внешняя политика", "глобальная политика"? одним словом/аббревиатурой не назовёшь, однословных адекватных синонимов нет

iprst commented 1 year ago

что делать с понятиями "внутренняя политика", "внешняя политика", "глобальная политика"? одним словом/аббревиатурой не назовёшь, однословных адекватных синонимов нет

Ничего не делать. Пусть висят в словаре в разделе «не разобранное». Когда появится необходимость их внесения, тогда и внесём.

grigorovsckaya-sandra commented 1 year ago

могу я уже сейчас дублирующие строчки свести в одну (без внесения в wordforms пока что)?

iprst commented 1 year ago

могу я уже сейчас дублирующие строчки свести в одну (без внесения в wordforms пока что)?

А зачем?

grigorovsckaya-sandra commented 1 year ago

А зачем?

глаза разбегаются )) часто теряю ту строчку, с которой имела дело, при поиске аналогов

iprst commented 1 year ago

глаза разбегаются )) часто теряю ту строчку, с которой имела дело, при поиске аналогов

Понял. Тут нужно выработать какой-то алгоритм для удобной работы. Можно отделять строку, над которой ведётся работа, пустой строкой с обеих сторон, а кроме того, можно сразу рабочу строку под ней превращать в формат wordforms, например:

строки обработанного словаря
строки обработанного словаря
строки обработанного словаря

Вера, суеверие, религия, конфессия, вера богу, вера в бога, вероучения, идолопоклонство

суеверие > вера
вера богу > вера
вероучения > вера
конфессия > религия
вера в бога > религия
идолопоклонство > религия

необработанный словарь
необработанный словарь
необработанный словарь

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

grigorovsckaya-sandra commented 1 year ago

полагаете, что МОЯ мера совпадает с вашей? в том смысле, что коррекция не нужна? я до сих пор нахожу в "обработанных строчках" несоответствия, мягко говоря... я понимаю, у вас полно технических проблем, но мне другая голова бы не помешала... может, кинуть клич? ))

в принципе, если мы не очень спешим, я и одна смогу разобраться

grigorovsckaya-sandra commented 1 year ago

После того, как со строкой покончено, убираем над ней пустую строку и переносим на её место следующую, и продолжаем добавление в формате wordforms.

а обработанная, точнее, отработанная строчка удаляется?

iprst commented 1 year ago

а обработанная, точнее, отработанная строчка удаляется?

Нет, она остаётся на месте, а под ней добавляется следующая рабочая строчка, то есть всё остальное смещается вниз, а обработанные строки остаются наверху на своём месте.

iprst commented 1 year ago

ВНИМАНИЕ. Обновляю версию словаря и wordforms.

UPD. Обновил оба файла

wordforms dictionary

В файле словаря теперь есть формат, предназначенный для облегчения работы со словарём и перевода его в wordforms.

grigorovsckaya-sandra commented 1 year ago

В файле словаря теперь есть формат, предназначенный для облегчения работы со словарём и перевода его в wordforms.

а если возникнет необходимость дополнить блок синонимов в wordforms, пустая строчка на автомате сдвинется?

iprst commented 1 year ago

а если возникнет необходимость дополнить блок синонимов в wordforms, пустая строчка на автомате сдвинется?

Да, просто добавляйте к нужному блоку (к ключевому слову) новый синоним вверху или внизу блока с переносом строки.

ВНИМАНИЕ, ОБНОВЛЯЮ СЛОВАРЬ ЕЩЁ РАЗ

iprst commented 1 year ago

ВНИМАНИЕ

Обновил обе версии файлов wordforms dictionary

Опыт использования словаря показал, что строки, переформатированные в разделённые пустой строкой столбцы, даёт значительный прирост эффективности оценки wordforms и синонимов.

Теперь бывшая «строка»

Воля, свобода, свобода воли, волеизъявление, произволение, произвол

Выглядит так:

Воля
свобода
свобода воли
волеизъявление
произволение
произвол

Такой набор элементарно переформатировать в запись wordforms:

свобода > Воля
свобода воли > Воля
волеизъявление > Воля
произволение > Воля
произвол > Воля

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

свобода > Воля
свобода воли > Воля
волеизъявление > Воля
произволение > Воля
? произвол > Воля
iprst commented 1 year ago

В текущем формате словаря не требуется ничего удалять — строк больше не существует, все синонимы сгруппированы в блоки «столбцы», разделённые пустой строкой. Файл словаря размечен на три части:

КОНЦЕПТУАЛЬНЫЙ СЛОВАРЬ СИНОНИМОВ

СЛОВАРЬ НЕ ПРЕДСТАВЛЕННЫЙ В WORDFORMS

НЕТРОНУТЫЙ СПИСОК

В верхней части расположен подготовленный к переносу в wordforms формат записи с  > . Эта часть пополняется блоками при форматировании их из синонимов в средней части.

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

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

audetv commented 1 year ago

Хочу напомнить, что словарь из репозитория не подхватывает автоматом, только загрузка руками. Причем надо загрузить новый wordfoms, удалить таблицу, создать ее снова с новыми настройками - словами и после заполнить данными (запустить индексацию из ДБ). я загружаю вручную и сейчас для меня это проблема т.к. обновление занимает много времени. Ещё заметил, зафиксировал ранее в readme, сейчас еще раз проверил, что если в файле присутствуют пустые строки (те, что визуально разрывной строкой разделяют понятие), то в логах наблюдаем такое предупреждение:

2023-04-30 19:41:02 [BUDDY] restart amount of attempts (3) has been exceeded
2023-04-30 19:42:23 WARNING: table 'questions_ext': all source tokens are stopwords (wordform='', file='/var/lib/manticore/questions_ext/wordforms.txt'). IGNORED.
2023-04-30 19:42:23 WARNING: last message repeated 4 times

Я сейчас загрузил на локальном новый словарь, работает, но все слова я не проверил, все отработали или нет, надо проверять. Я обычно стараюсь избегать ситуаций, когда появляются предупреждения в программе и исправлять их, т.к. никогда не знаешь, как скажется этот ни на что вроде не влияющий warrning через неделю, месяц. Поэтому предлагаю переходной вариант, чтобы и мы могли удобно работать и мантикора не сыпала предупреждения. Я сделаю еще один файл wordforms.prod.txt для мантикоры, а wordforms.txt оставим для разработки, Файл wordforms.prod.txt буду компилировать, вырезать все не нужное из worforms.txt перед обновлением словаря.

П.С.Я пока писал сообщение с перерывами, вы уже много изменений сделали и теперь сам файл dictionary словарь решает вопрос визуального разделения и он теперь структурирован понятно.

Если нет необходимости в wordforms разделять визуально понятия, то можно отредактировать его для мантикоры и оставить по файлам все как было.

Итого: Приводим wordworms.txt к виду строк без пропусков друг за другом? или делаем файл wordforms.prod.txt?

iprst commented 1 year ago

словарь из репозитория не подхватывает автоматом, только загрузка руками

Помню →

если в файле присутствуют пустые строки (те, что визуально разрывной строкой разделяют понятие), то в логах наблюдаем такое предупреждение

Потому и оставил строки, их несложно удалить в текстовом процессоре при переносе в базу. Но если надо то можно в wordforms убрать пустышки, это не проблема.

Если нет необходимости в wordforms разделять визуально понятия, то можно отредактировать его для мантикоры и оставить по файлам все как было.

Нет. Сейчас wordforms просто наследует структуру словаря, но это не обязательно, удалить пустые строки при переносе ничего не стоит. Например в Sublime Text или подобном редакторе это делается за две секунды. Удалил и загрузил новый вид.

Слова помеченные вопросительным знаком оставляем? Или на этапе составление синонимов принимать решение об удалении или оставлении? Пока оценил по месту и оставил «произвол = воля».

Пары «кириллица + латиница» оставляем в wordforms или их сразу переносить в alternateforms? Пока перенёс.

Тильду пока нигде не использую, это вам на ваше усмотрение согласно подкапотному формату мантикоры.

Итого: Приводим wordworms.txt к виду строк без пропусков друг за другом? или делаем файл wordforms.prod.txt?

Выбран по факту первый вариант.

iprst commented 1 year ago

ПРАВИЛО 4

При переносе синонимов из словаря в wordforms избавляемся от пустых строк.

audetv commented 1 year ago

Нет. Сейчас wordforms просто наследует структуру словаря, но это не обязательно, удалить пустые строки при переносе ничего не стоит. Например в Sublime Text или подобном редакторе это делается за две секунды. Удалил и загрузил новый вид.

Это понятно, но у нас в репозитории будет лежать файл, который не предназначен для программы, условно с багами. Это ж как с документацией мантикоры, вот вам пример - файл, а то что он не работает, так вы же его не правильно загрузили. Зачем? Надо итогом делать файл, который взял и загрузил на сервер без дополнительных обработок.

ПРАВИЛО 4 При переносе синонимов из словаря в wordforms избавляемся от пустых строк.

Вижу, пока писал, опять все поменялось, процесс!

Итого: Приводим wordworms.txt к виду строк без пропусков друг за другом? или делаем файл wordforms.prod.txt? Выбран по факту первый вариант.

Хорошо

Пары «кириллица + латиница» оставляем в wordforms или их сразу переносить в alternateforms? Пока перенёс.

Можно сразу в alternateforms и делать одно выбранное слово md5 хэш значением. И все слова из набора ведут на один md5 хэш

iprst commented 1 year ago

Надо итогом делать файл, который взял и загрузил на сервер без дополнительных обработок.

Я потому и спрашивал — файл переносится вручную или загружается куда-то так, как есть )) Разобрались.

Можно сразу в alternateforms и делать одно выбранное слово md5 хэш значением. И все слова из набора ведут на один md5 хэш

Считаю источником хэша слово-ключ.

Обновил wordforms и перенёс латиницу в alternateforms с хэшами.

audetv commented 1 year ago

Тильду пока нигде не использую, это вам на ваше усмотрение согласно подкапотному формату мантикоры.

Что я понял по тильде, если тильды нет перед словом, то оно применяется именно в том виде, как написано в wordforms независимо от регистра (большие-маленькие буквы не имеют значения) Матричный > матрица, к нему не применяется stemming и тогда Матричного != Матрица Ниже запросы в мантикоре, возможно будет понятнее:

questions_ext - таблица с концептуальным словарем questions - без словаря

mysql> call keywords('матричный', 'questions_ext');
+------+--------------------+----------------+
| qpos | tokenized          | normalized     |
+------+--------------------+----------------+
| 1    | матричный          | матрица        |
+------+--------------------+----------------+
mysql> call keywords('матричного', 'questions_ext');
+------+----------------------+----------------+
| qpos | tokenized            | normalized     |
+------+----------------------+----------------+
| 1    | матричного           | матричн        |
+------+----------------------+----------------+
mysql> call keywords('матричный', 'questions');
+------+--------------------+----------------+
| qpos | tokenized          | normalized     |
+------+--------------------+----------------+
| 1    | матричный          | матричн        |
+------+--------------------+----------------+
mysql> call keywords('матричного', 'questions');
+------+----------------------+----------------+
| qpos | tokenized            | normalized     |
+------+----------------------+----------------+
| 1    | матричного           | матричн        |
+------+----------------------+----------------+

Т.е. если желаем, чтобы формы образованные от матричн были матрица, то надо ставить ~

Тильда работает только для слов, не работает для фраз : ~общение с Богом - тильда не работает. Так что к фразам и словосочетаниям нет смысла ее ставить, Так же для аббревиатур и сокращений, но предполагаю, что могут попасться такие, что сработает , надо проверять. через call keywords токенизируется ли.

mysql> call keywords('ПФУ', 'questions');
+------+-----------+------------+
| qpos | tokenized | normalized |
+------+-----------+------------+
| 1    | пфу       | пфу        |
+------+-----------+------------+
mysql> call keywords('ГП', 'questions');
+------+-----------+------------+
| qpos | tokenized | normalized |
+------+-----------+------------+
| 1    | гп        | гп         |
+------+-----------+------------+

У меня была идея прогнать весь список словаря через call keywords, чтобы получилось нечто такое: https://github.com/audetv/conceptual-dictionary/blob/0.4.0/call_keywords.md

Это не быстро, но если необходимо могу сделать upd: хотя это наверное излишне. Для фраз это не применяется. Т.е. фразы идут к синониму в том виде как написаны, для единичных слов можно делать по запросу и не делать для всех слов. На ваше усмотрение.

grigorovsckaya-sandra commented 1 year ago
  1. Матрица, кроме базовых, выдаёт те же смыслы, что и matrix
  2. траектория вероятностей, зомбический тип строя психики, биороботовый тип строя психики -> "по вашему запросу ничего не найдено"
  3. если появится необходимость добавить синоним в блок, как это можно сделать? особенно, если блок уже в wordforms находится
  4. значок ~ какую нагрузку несёт?
  5. в Антисемитизм я бы добавила Семиты
  6. Метод динамического программирования - оформить как Динамическое программирование ("метод" имеет более широкое хождение)
  7. НАК задвоение в Авторском праве и в ВП СССР
iprst commented 1 year ago

Матричный > матрица, не применяется stemming Матричного != Матрица

То есть в wordforms в данном случае нужно добавить вариант с тильдой.

Так же для аббревиатур и сокращений, но предполагаю, что могут попасться такие, что сработает , надо проверять. через call keywords токенизируется ли

Язык штука живая и гибкая, легко взять и написать «гпшный» и «пфушный», образовав таким образом из аббревиатуры прилагательное. Из широко используемых: вуз → вузовский, ЕС → есесовский.

audetv commented 1 year ago

траектория вероятностей, биороботовый тип строя психики -> "по вашему запросу ничего не найдено"

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

audetv commented 1 year ago

Язык штука живая и гибкая, лего взять и написать «гпшный» и «пфушный», образовав таким образом из аббревиатулы прилагательное. Из широко используемых: вуз → вузовский, ЕС → есесовский.

+------+--------------------+----------------+
| qpos | tokenized          | normalized     |
+------+--------------------+----------------+
| 1    | вузовский          | вузовск        |
+------+--------------------+----------------+
mysql> call keywords('есесовский', 'questions');
+------+----------------------+------------------+
| qpos | tokenized            | normalized       |
+------+----------------------+------------------+
| 1    | есесовский           | есесовск         |
+------+----------------------+------------------+

мантикора знает - есесовск ))

iprst commented 1 year ago
  1. Матрица, кроме базовых, выдаёт те же смыслы, что и matrix

Не понял этой фразы. У меня выдача разная и в wordforms разный смысл, латинское слово представляет кино, а русское в ДОТУ. Кому нужно найти кинофильм матрица русскими буквами, может это сделать без словаря, в противном случае при поиске понятий, описывающих матрицу концептуальную, будут попадать «нео» и прочие «морфеусы». Не хотелось бы, во всяком случае пока так видится.

траектория вероятностей

Обсуждали «траекторию в матрице вероятностей», этот вариант находится, он и так приходит в ключ «матрица», но если поискать обычным поиском по умолчанию, то «траектория вероятностей» тоже попадает в искомый смысл, но в другой форме — «вероятная траектория». Нужно оставить первую и добавить вторую, поскольку это всё одно и то же и должно находиться в кучу к «матрице». Оставить нужно потому, что я забуду что там написано — траектория вероятностей или вероятная траектория, а использоваться это будет регулярно. Как только как сразу (с)

если появится необходимость добавить синоним в блок, как это можно сделать? особенно, если блок уже в wordforms находится

Вроде уже отвечал на этот вопрос.

значок ~ какую нагрузку несёт?

Это здесь как раз описано.

в Антисемитизм я бы добавила Семиты

Так добавьте )) В файле словаря можно добавлять и корректировать без оглядка, потом всё это раскидаем по нужным техническим файлам.

Метод динамического программирования - оформить как Динамическое программирование ("метод" имеет более широкое хождение

См. выше. Это быстрее сделать, чем написать комментарий.

iprst commented 1 year ago

мантикора знает - есесовск ))

Это она думает про эсэсовцев. Впрочем, МИД слово есесовский употребляет по этой же причине, поэтому всё ок (с)