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

Вибіркова генерація #369

Open
yukal opened this issue Apr 11, 2024 · 3 comments
Open

Вибіркова генерація #369

yukal opened this issue Apr 11, 2024 · 3 comments

Comments

@yukal
Copy link

yukal commented Apr 11, 2024

Підкажіть будь ласка чи можливо згенерувати до теки out лиш вибіркові слова та словоформи?
До прикладу - мені потрібно згенерувати лише українські антропоніми зі всіма існуючими відмінками. Яку команду слід набрати в консолі Linux?

./gradlew * /n3.^noun.lname.f

Я читав документацію і використання ключів, але не зрозумів як це використовувати із командної строки, окрім того що скрипт генерує абсолютно все що тільки можна. Трохи не зрозуміло написана документація.

Буду дужечко вдячний за допомогу.

@arysin
Copy link
Collaborator

arysin commented Apr 11, 2024 via email

@yukal
Copy link
Author

yukal commented Apr 12, 2024

Фактично вам треба регулярний вираз: noun:anim.*:prop:[flp]name тобто щось на штиб:

> grep "noun:anim.*:prop:[flp]name" dict_corp_vis.txt

Супер! Це підійде.

А тепер більш витончене завдання...
Оскільки я пишу тести, мені потрібно контролювати алгоритм щодо кожної класифікації відмінювання та її групи. Тобто мені потрібно відокремити антропоніми в кожен файл окремо за такими критеріями:

  • частина мови (іменникові / прикметникові)
  • рід (чол. / жін.)
  • відміна (1-а / 2-а / 3-я)
  • група (тверда / мʼяка / мішана)
  • випадки коли не відмінюються
  • тип антропоніму (прізвище / імʼя / по батькові)

Приблизно за таким шаблоном - (noun|adjct)-(man|fem)-(1st|2nd|3rd)-(solid|mixed|soft)-([flp]name).csv

  • noun-man-1st-solid.csv
  • noun-man-2nd-mixed.csv
  • adjct-man...csv
  • noun-fem-3rd-soft.csv

Як мені ефективніше зібрати таку колекцію?
Скажімо я можу скористатися вже згаданим вами прикладом за допомогою grep.

1-й крок:
Формуємо загальний файл зі всіма випадками відмінювання:

> grep "noun:anim.*:prop:[flp]name" dict_corp_vis.txt > anthroponyms.txt

2-й крок:
Знаходження у щоденнику слів згідно вищевказаних критеріїв:

пошук прикметникових антропонімів:

> grep "adj" names-anim.lst > adjectives.lst
> grep "/n2" adjectives.lst

3-й крок:
Сортування.
Тут я вже самостійно напишу скрипт та відсортую слова на основі hashmap.

От тільки я не зрозумів як мені побудувати список антропонімів виключно з іменниками. Все що є в щоденнику та не має мітки adj є іменником?

@arysin
Copy link
Collaborator

arysin commented Apr 15, 2024

Перепрошую за паузу.
Частина мови, рід є в тегах. :nv позначає невідмінювані. fname/pname/lname
Відмін та груп на виході немає. В сирцях теоретично є відміни, напр., /n1, n2, n3... але там треба дивитися.
Групи теоретично можна за літерами шукати, але я не певен.
Виключно за іменниками - так, все що не є adj (але ще є невідмінювані з прапорцями /<)

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

2 participants