Страницы

Поиск по вопросам

пятница, 14 февраля 2020 г.

Где взять базу слов для Русско-Английского словаря?

#python


Пишу простой Англо-Русский словарь на Python 3. Пользователь вводит слово - выводит
его аналог на английском (как же иначе). Так вот, просмотр перевода слова осуществляется
через .txt файл где слова записаны(example):

дом
house
дом
цветок
flower
цветок


и так далее.

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

Я новичок, только начинаю постигать  ООП, поэтому написать этот скрипт сам не в состоянии,
а вбивать 6000 слов вручную слишком затратно по времени.
    


Ответы

Ответ 1



Погуглил 2000 слов на английском языке и нашел сайт. Осмотрел его HTML содержимое и решил попарсить. Главная проблема была в том, что у сайта структура данных очень неудобная -- нет атрибутов-маячков (class, id), по которым удобно выцеплять данные, поэтому понадобилось изучить структуру и найти точные данные (например, наличие определенного атрибута), чтобы отделить нужные данные. import requests rs = requests.get('http://www.7english.ru/dictionary.php?id=2000&letter=all') from bs4 import BeautifulSoup root = BeautifulSoup(rs.content, 'html.parser') en_ru_items = [] for tr in root.select('tr'): # У строк в таблице перевода есть аттрибут onmouseover if 'onmouseover' not in tr.attrs: continue td_list = [td.text.strip() for td in tr.select('td')] # Количество ячеек в таблице со словами -- 9 if len(td_list) != 9 or not td_list[1] or not td_list[5]: continue en = td_list[1] # Русские слова могут быть перечислены через запятую 'ты, вы', # а нам достаточно одного слова # 'ты, вы' -> 'ты' ru = td_list[5].split(', ')[0] en_ru_items.append((en, ru)) print(len(en_ru_items), en_ru_items) # 2000 [('a', 'неопределенный артикль'), ('abili... Думаю, вывести этот список в файл автор уже сам сможет

Ответ 2



Гуглить, Вы, сударь, не умеете! По этому запросу: русский английский словарь txt -разговорник, нашёлся "Англо-Русский Словарь" Мюллера 1995-го года, не форматирован, обычный текст txt, 120 тыс. строк, 10 МБ: http://www.alleng.ru/d/engl/engl150.htm Более продвинутый запрос google translate download dictionary txt дал более плодотворные результаты, по ссылке ниже куча словарей в формате XML. Первый попавшийся русско-английский содержит 1 млн 458 тыс строк и весит 107 МБ: http://translateclient.com/download_dictionary/ К сожалению, компактного и простого для новичка txt/csv не нашёл, видимо, мало кому такие вещи требуются. Но если Вам действительно важна эта задача, то справитесь с парсингом одного из этих. Выбирайте и пользуйтесь на здоровье!

Комментариев нет:

Отправить комментарий