Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[RU] Discussion of the algorithm for selecting the ending for area names in responses #2124

Open
mitrokun opened this issue Apr 6, 2024 · 0 comments

Comments

@mitrokun
Copy link
Contributor

mitrokun commented Apr 6, 2024

Конвертация именительного или местного падежей (название локации или alias для неё - комната/комнате) для response с area:
грубый код для тестов в шаблонизаторе

{% set slots_area = "депо" %}

{% if slots_area[-2:].lower() in "ая,ой" -%} {# гостинная, гардеробная.. #} 
  {{- slots_area[:-2] ~ "ой" -}}
{%- elif slots_area[-2:].lower() in "ии,ия,ие" -%} {# аудитория, помещение.. #} 
  {{- slots_area[:-2] ~ "ии" -}}
{%- elif slots_area[-2:].lower() in "ок" -%} {# участок.. или названия с суффиксом #} 
  {{- slots_area[:-2] ~ "ке" -}}
{%- elif slots_area[-2:].lower() in "ях" -%} {# покоях, сенях #} 
  {{- slots_area[:-2] ~ "ях" -}}
{%- else %}
    {%- if slots_area[-1].lower() in "а,ь,я,о,е" -%} {# кухня, спальня.. #}
      {{- slots_area[:-1] ~ "е" -}}
    {%- elif slots_area[-1].lower() in "и" -%} {# покои, сени #} 
      {{- slots_area[:-1] ~ "ях" -}}
    {%- elif slots_area[-1].lower() in "у,ю" -%} {# раю, посту.. #} 
      {{- slots_area -}}
    {%- else -%} {# зал, офис, кабинет... #}
      {{- slots_area ~ "е" -}} 
    {%- endif -%}
{%- endif %}

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

Ожидаю критики, предложений и доработок

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant