brown-uk / dict_uk

Project to generate POS tag dictionary for Ukrainian language
GNU General Public License v3.0
547 stars 71 forks source link

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

Open yukal opened 3 months ago

yukal commented 3 months ago

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

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

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

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

arysin commented 2 months ago

на жаль наразі у нас немає можливості генерувати словник частково. Якщо треба антропоніми то найкраще — вибрати потрібні гнізда з вже згенерованого файлу. Фактично вам треба регулярний вираз: noun:anim.:prop:[flp]name тобто щось на штиб: grep "noun:anim.:prop:[flp]name" dict_corp_vis.txt Якщо треба буде допомога - пишіть.

On Thu, Apr 11, 2024 at 2:20 PM Alexander @.***> wrote:

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

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

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

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

— Reply to this email directly, view it on GitHub https://github.com/brown-uk/dict_uk/issues/369, or unsubscribe https://github.com/notifications/unsubscribe-auth/ABJ6OXB6QUIDVJAYKMN35J3Y43H67AVCNFSM6AAAAABGCZETJWVHI2DSMVQWIX3LMV43ASLTON2WKOZSGIZTQMZQGMYDSNQ . You are receiving this because you are subscribed to this thread.Message ID: @.***>

yukal commented 2 months ago

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

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

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

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

Приблизно за таким шаблоном - (noun|adjct)-(man|fem)-(1st|2nd|3rd)-(solid|mixed|soft)-([flp]name).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 commented 2 months ago

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