Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Как добавлять таблицы слов в программу? #55

Closed
maxirk opened this issue Oct 16, 2012 · 17 comments
Closed

Comments

@maxirk
Copy link

maxirk commented Oct 16, 2012

Я активно использую сервис http://wordsfromtext.com
Получаю обычную таблицу слов.
Как удобнее привести такую таблицу к формату dict.json?

["tunnel", "tʌnl", "т[у]ннель"],

@maxirk
Copy link
Author

maxirk commented Oct 16, 2012

Вот к примеру таблица https://www.sugarsync.com/pf/D6928101_9276249_6355141

@maxirk
Copy link
Author

maxirk commented Oct 16, 2012

Извращался конкретно:

В excel использовал команду "СЦЕПИТЬ" и получил в ячейке "1abate2/ə'beɪt/3ослаблять, уменьшать, умерять4".

Далее заменял:
1 на ["
2 на ","
3 на ","
4 на "]

И вот сделал такой файл dict.json https://www.sugarsync.com/pf/D6928101_9276249_6366928
Но почему программа не запускается?

Все-таки нужен быстрый способ что бы обычную таблицу со словами запихать в программу - например продумать макрос в excel хотя бы.

@maxirk
Copy link
Author

maxirk commented Oct 16, 2012

Так как же делать словари? Почему у меня словарь не работает. Хочется уже поизучать :)

@maks-a
Copy link

maks-a commented Oct 17, 2012

У вас последняя строчка заканчивается запятой, уберите ее.

["inscrutable", "ɪn'skru:təbl", "непостижимый, загадочный"],
["insincere", ",ɪnsɪn'sɪə", "неискренний, лицемерный"],
["insolent", "'ɪnsələnt", "оскорбительный"],
]

@maks-a
Copy link

maks-a commented Oct 17, 2012

Для этой цели я написал себе простой python-скрипт по преобразованию словаря со страницы lingualeo в json

INPUT_FILE = 'dict_maks.ll'
OUTPUT_FILE = 'dict_maks.json'


def WriteLine(line, fOut):
    line = line.translate(None, '\n\r[]')
    line = line.replace('"', '\\"')
    entry = line.split('\t')
    fOut.write('\t["' + entry[1] + '",\t"' + entry[2] + '",\t"' + entry[3] + '"]')


def WriteFile(fIn, fOut):
    prevLine = ''
    for line in fIn:
        if prevLine != '':
            WriteLine(prevLine, fOut)
            fOut.write(',\n')
        prevLine = line
    WriteLine(prevLine, fOut)
    fOut.write('\n')

fIn = open(INPUT_FILE, 'r')

fOut = open(OUTPUT_FILE, 'w')
fOut.write('[\n')
WriteFile(fIn, fOut)
fOut.write(']')

Первоначальный файл имеет такой формат:

1 aback [əbˈæk] захваченный врасплох, смущенный
2 abandoned [əbˈændənd] заброшенный
3 abdicated [ˈæbdɪkɛɪːtɪd] отрёкся, отказался
4 abide [əbˈaɪd] подчиняться, согласиться с последствиями
5 abolish [əbˈɒlɪʃ] уничтожать, отменять, упразднять, аннулировать
6 abroad [əbrˈɔːd] за границей, повсюду, широко, вне дома
7 abrupt [əbrˈʌpt] внезапный, крутой, обрывистый
8 absorption [əbsˈɔːpʃən] поглощение

@maxirk
Copy link
Author

maxirk commented Oct 17, 2012

Замечательно! На самом деле я как раз учу слова в тренировках LinguaLeo
Подскажите как запустить данный скрипт? Точнее что именно нужно сделать что бы получить dict.json со словаря lingualeo (я чайник)

У вас последняя строчка заканчивается запятой, уберите ее.

Убрал, но все равно программа не запускается https://www.sugarsync.com/pf/D6928101_9276249_6366928 - что не так?

@maks-a
Copy link

maks-a commented Oct 17, 2012

вы убрали все запятые, а нужно было только последнюю.

@maks-a
Copy link

maks-a commented Oct 17, 2012

для получения json-словаря из лингвалео:

  • зайти в словарь лингвалео, найти там "Печатать(все)", выделить список слов и сохранить его в текстовый файл
  • в моем скрипте указать путь к текстовому файлу словаря из лингвалео в переменной - INPUT_FILE
  • указать имя желаемого json-словаря в OUTPUT_FILE, запустить скрипт

@maxirk
Copy link
Author

maxirk commented Oct 17, 2012

вы убрали все запятые, а нужно было только последнюю.

Где же все? Вот так выглядит -
[
["abate", "ə'beɪt", "ослаблять, уменьшать, умерять"]
["abhor", "əb'hɒ:", "питать отвращение"]

Все же запятые на месте? ( https://www.sugarsync.com/pf/D6928101_9276249_6366928 )

в моем скрипте указать путь к текстовому файлу словаря из лингвалео в переменной - INPUT_FILE

Как запускать скрипт? Как-то через консоль это все прописывать? Говорю же я ламер :)

@maks-a
Copy link

maks-a commented Oct 17, 2012

Читаем внимательно мой коммент - #55 (comment)
считаем там запятые, находим последнюю, одну единственную запятую.

@maxirk
Copy link
Author

maxirk commented Oct 17, 2012

Спасибо, извинте за невнимательность. Заработало.

@maks-a
Copy link

maks-a commented Oct 17, 2012

Как запускать скрипт? Как-то через консоль это все прописывать? Говорю же я ламер :)

нужно в папку положить входной файл словаря, который будете преобразовывать и файл скрипта (назовите его convert.py). у вас должен быть установлен python 2.7. для запуска либо дважды кликнуть на скрипте, либо запустить его в командной строке.
если есть желание научиться запускать питоновские скрипты - начните с простых примеров "hello world".

@ReanGD
Copy link
Owner

ReanGD commented Oct 17, 2012

Тут уже и без меня похоже разобрались )

@ReanGD
Copy link
Owner

ReanGD commented Oct 19, 2012

Я как понял все работает, можно закрывать задачу

@maxirk
Copy link
Author

maxirk commented Dec 17, 2012

Добавьте скрипт импорта из Lingualeo https://github.com/maks-a/LearnEnglishWords/tree/master/utils в ваш родной архив. А то новички не будут знать что есть такая возможность.

Только нужно readme.txt еще сделать (а то может быть непонятно как работает)

По факту сейчас, если хочешь добавить слов, надо:

  1. Отправить на печать нужные слова в словаре Lingualeo
  2. Скопировать слова и вставить в файл "lingueleo_dict.txt", сохранить его.
  3. Запустить "lingualeo_to_myledict.py"
  4. Открыть полученный файл "myLE_dict.json"
  5. Скопировать полученные слова.
  6. Открыть "dict.json"
  7. Добавить скопированные слова, сохранить.

Как бы укоротить данную операцию?

@ReanGD
Copy link
Owner

ReanGD commented Dec 26, 2012

Скипт портирую, но как ускорить - без понятия, я особо из LL ничего не выгружал, так что у меня проблемы такой не стоит.

@ReanGD ReanGD reopened this Dec 27, 2012
ReanGD added a commit that referenced this issue Jan 27, 2013
Импорт слов из lingualeo
@ReanGD
Copy link
Owner

ReanGD commented Jan 27, 2013

Портировал скрипт, упростил как мог загрузку слов. Достаточно скопировать слова в lingualeo.txt и запустить программу с ключем "-lingualeo". Документация

@ReanGD ReanGD closed this as completed Jan 27, 2013
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants