Как получить список односложных слов русского языка?
Нужна штука для поиска слов. В данный момент интересуют 2 параметра поиска: количество слогов и часть речи.
Мне казалось что должен быть какой-то сервис или апи, но за почти час гуглинга ничего подходящего не нашел.
Если вы тоже не знаете готового решения, поскажите на базе каких технологий(библиотек, пакетов..) и данных вы бы реализовали решение (простота реализации -- ключевой фактор), так чтоб его потом можно было "докручивать" по мере необходимости.
Ответы (1 шт):
У 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 и искать часть речи. Я таким не занимаюсь, поэтому не силен.
Другой подход
Можно забрать уже готовый список русских слов и поработать с ним, например здесь.
Библиотека для морфологичесокго анализа
Ну, и напоследок морфологический словарь