Ещё раз о типах и значениях

Переводим термины и придумываем новые, в т.ч. для ЯОС
БудДен
Сообщения: 1841
Зарегистрирован: 07.10.18 14:01

Re: Ещё раз о типах и значениях

Сообщение БудДен » 26.04.21 20:58

Я человек тёмный, не знаю, что такое регулярные грамматики. Это имеются в виду регулярные выражения? Их оно умеет, но я их вообще не люблю, дичь какая-то. Вроде язык программирования, но в нём нет никаких способов повторного использования кода, кроме копирования и вставки. Невозможно создать библиотеку рег.выражений. Удивительно, почему миллионы программистов принимают эти выражения за данность и не видят фатальных изъянов этой технологии. Возможно, оно ещё что-то умеет, для него можно писать плагины с большими возможностями, но стратегия разработки ЯОС состоит в стремлении к самодостаточности. Среда разработки в ЯОС на три головы выше любой другой для работы с кодом АО, т.к. она интегрирована в систему и хорошо понимает язык. Нужно эту среду развивать, а не стороннюю.
Последний раз редактировалось БудДен 26.04.21 21:01, всего редактировалось 1 раз.

БудДен
Сообщения: 1841
Зарегистрирован: 07.10.18 14:01

Re: Ещё раз о типах и значениях

Сообщение БудДен » 26.04.21 20:59

> Ну если надо прямо под ЯОС - лексер + поиск нужных подстрок в каждой лексеме.

Да, поиск на базе лексера - это хорошая отправная точка. Но его нет. Поиск на базе парсера - это тоже хорошо, как важное дополнение. И у меня даже есть зачатки его - ведь движок перевода (который заодно и рефакторинг "переименуй идентификатор") требует как раз решения задачи "найди все ссылки на данное имя". Но это дополнение, а поиск текста - это совершенно необходимый инструмент, без которого вообще нельзя работать. Так вот с внедрением словоформ русского языка этот поиск отваливается.

MihalNik
Сообщения: 226
Зарегистрирован: 05.11.18 11:02

Re: Ещё раз о типах и значениях

Сообщение MihalNik » 26.04.21 22:30

БудДен писал(а):
26.04.21 20:59
И у меня даже есть зачатки его - ведь движок перевода (который заодно и рефакторинг "переименуй идентификатор") требует как раз решения задачи "найди все ссылки на данное имя".
Так отличие только в том, что вместо равенства строк проверяется вхождение нескольких подстрок и как раз без учета порядка следования даже проще (для учета порядка нужно обрывать), при поиске в одной и той же возможны наложения, но вряд ли это будет сколько-нибудь частой проблемой, скорее всего решит 99% задач. А если надо 100% точность, все равно получится подобие регулярок. Уж поиск-то подстроки в строке есть? Проблема может быть если оно слишком медленно работает. Если даже такой функции нет - надо переписать готовую и отлаженную с делфи/фрипаскаля на Оберон. Там, может, пара-тройка десятков строк.

БудДен
Сообщения: 1841
Зарегистрирован: 07.10.18 14:01

Re: Ещё раз о типах и значениях

Сообщение БудДен » 26.04.21 23:12

Нужно именно отбрасывание окончаний, чтобы ПутьВоВремени при поиске по словоформам Пут~Врем~ не подхыватывал слово ПутешественникВоВремени

Независимость от порядка слов должна быть всё же опцией.

MihalNik
Сообщения: 226
Зарегистрирован: 05.11.18 11:02

Re: Ещё раз о типах и значениях

Сообщение MihalNik » 26.04.21 23:30

БудДен писал(а):
26.04.21 23:12
Нужно именно отбрасывание окончаний, чтобы ПутьВоВремени при поиске по словоформам Пут~Врем~ не подхыватывал слово ПутешественникВоВремени

Независимость от порядка слов должна быть всё же опцией.
Тогда см. Джеффри Фридл "Регулярные выражения" - классика жанра.
Вам нужно либо описать универсальное окончание, либо разрешить пропуск нескольких букв. Второе сильно быстрее и проще, т.к. вероятность/частота ложных совпадений будет крайне мала.

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

БудДен
Сообщения: 1841
Зарегистрирован: 07.10.18 14:01

Re: Ещё раз о типах и значениях

Сообщение БудДен » 27.04.21 01:16

Павиа писал - лемматизация и стемминг - как-то так:

https://github.com/ermakovpetr/stemka

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

Ответить