Как получить список односложных слов русского языка?

Нужна штука для поиска слов. В данный момент интересуют 2 параметра поиска: количество слогов и часть речи.

Мне казалось что должен быть какой-то сервис или апи, но за почти час гуглинга ничего подходящего не нашел.

Если вы тоже не знаете готового решения, поскажите на базе каких технологий(библиотек, пакетов..) и данных вы бы реализовали решение (простота реализации -- ключевой фактор), так чтоб его потом можно было "докручивать" по мере необходимости.


Ответы (1 шт):

Автор решения: Dmitry

У wiktionary есть открытый API.

Как искать слова

import requests

word_to_find = "язык"

session = requests.Session()
base_url = "https://ru.wiktionary.org/w/api.php"
params = {
    "action":"query",
    "format":"json",
    "titles": word_to_find # здесь слово, которое ищем
}

response = session.get(url=base_url, params=params)

print(response.json()["query"]["pages"])
for k, v in response.json()["query"]["pages"].items():
    if k != "-1":
        pageId = v["pageid"]
    else:
        print("Нет такого слова в этом словаре")
        pageId = None

Количество слогов == количеству гласных в слове

vowels = "ауоыиэяюёе"
count_syllable = len([letter for letter in word_to_find if letter in vowels])

Для остального же существует действие parse у данного API, которое позволяет забрать страничку с известным pageid

params1 = {
    "action":"parse",
    "format":"json",
    "pageid": pageId 
}

response1 = session.get(url=base_url, params=params1)

А дальше разбирать ответ через какой нибудь beautiful soup и искать часть речи. Я таким не занимаюсь, поэтому не силен.

Другой подход

Можно забрать уже готовый список русских слов и поработать с ним, например здесь.

Библиотека для морфологичесокго анализа

Ну, и напоследок морфологический словарь

→ Ссылка