Same

Всi голосні

Які слова включають всі голосні

Редіт надихнув.

Вступ

Якщо порівнювати наприклад з анґлійською, то з українською тут начебто все простіше.

На перший погляд можна забути про різницю між наголошеними і ненаголошеними, а довготи взагалі немаʼ. Але частково, бо ненаголошені и та е мають однакову вимову як з мене і мине.

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

Також дещо дошкуляє у, що може ставати півприголосним ў, насамперед в кривозапозичених словах з латини чи ґрецької, що зазвичай передається як в. Приберу їх зі списку вручну. Була подібна проблема з і ~ й, а саме з корнем іуд.

Але для початку всі ці миті упустимо. Тож матимемо пару ї ~ і, що не включає и.

Умови і ввід

Це нормальний звичний загальний іменник однини в називному відмінку під чинним державним правописом. Тож для вводу використав ВЕСУМ, що доступний на Github-і.

Мій код [на пайтоні] нижче.

import os, re, itertools


dictionary = open("out/dict_corp_lt.txt", "r") # ВЕСУМ
output = open("SoundCounter/output/all_vowels.txt", "w+")

ignore = {  # https://github.com/brown-uk/dict_uk/blob/master/doc/tags.txt
    "abbr",
    "alt",
    "bad",
    "foreign",
    "intj",
    "p",
    "prop",
}
vowels = [
    ["a", "я"],
    ["е", "є"],
    ["у", "ю"],
    ["і", "ї"],
    ["и"],
    ["о"]
]
found = list()

for line in dictionary.readlines():
    word, _, tags = line.strip().split(" ")
    tags = set(tags.split(":"))

    if (
        all(tag in tags for tag in ["noun", "v_naz"])
        and not tags & ignore
        and all(any(vowel in word for vowel in pair) for pair in vowels)
    ):
        found.append(word)

found.sort(key=len)
groups = itertools.groupby(found, key=len)

for length, words in groups:
    print(length, file=output)

    for word in words:
        print(f"{word}", file=output)

    print(file=output)

print(len(found))

output.close()
dictionary.close()

Вивід

Знайдено щонайменше десь під 120 слів. Можна зазначити, що правило девʼятки добряче тут виручає, бо тоді слів було би значно менше — для наочности, позначив зіркою — десь під 30.

11
гемодилюція
екоситуація

12
євродискусія
кіноерудиція
лейкоцитурія
пресупозиція
суперпозиція
термодифузія
урединологія
уринотерапія

13
везикулотомія
взаємодифузія
метеоситуація
музикотерапія
психоедукація
худекспозиція

14
везикулографія
вестибулопатія
гемоциркуляція
електродифузія
життєрозуміння ★
нейрохірургиня ★
псевдодискусія
суперімпозиція

15
везикулоектомія
вентрикулотомія
вестибулометрія
відеоопитування ★
геопозиціювання
гіпометилування
деполітизування
депопуляризація
етномузикологія
євроконституція
звукопідсилення ★
нейростимуляція
орієнтувальниця ★
перелюбодійниця ★
радіопридушення ★
супердислокація
суперпропозиція
термоутилізація

16
вентрикулографія
вентрикулоскопія
вентрикулостомія
відеозаписування ★
дебюрократизація
етимологізування
невипромінювання ★
перепозиціювання
супермодификація
тепловимірювання ★
тріщиноутворення ★
цитофлуориметрія

17
антитілоутворення
вентрикулопункція
вільновідпущениця ★
геопозиціонування
гідрознепилювання ★
електростимуляція
енергодистрибуція
імунопреципітація
літературознавиця ★
мікрокредитування
псевдоаглютинація
псевдогалюцинація
псевдоконституція
секуляризованість
теплотягобудівник ★
урологінекологиня ★

18
архітектурознавиця ★
електровимірювання ★
електродистрибуція
літературознавчиня ★
перевипромінювання ★
перепозиціонування
підручникотворення ★
триболюмінесценція
україноненависниця ★
факоемульсифікація

19
гіперфосфорилювання
електротягобудівник ★
конституцієтворення
псевдорегуляризація
суперспецпропозиція
тепловипромінювання ★
уретеровезикостомія

20
біоелектростимулятор
біоелектростимуляція
вентрикулокавостомія
високомолекулярність ★
психонейроімунологія
радіотелевимірювання ★
телекардіостимулятор

21
вентрикулоатріостомія
вентрикулосептопексія
вентрикулоюгулостомія
деінституціоналізація
електровипромінювання ★
кристалолюмінесценція

22
вентрикулосцинтиграфія
електронейростимуляція

23
вентрикулоуретеростомія
електрокардіостимулятор
електрокардіостимуляція

24
вентрикуломастоїдостомія
вентрикулоцистерностомія

25
вентрикулоперитонеостомія

#кирилицею #слова #українська