ReanGD / LearningEnglish

Опробирование подхода для изучения английского языка
Apache License 2.0
44 stars 18 forks source link

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

Closed maxirk closed 11 years ago

maxirk commented 11 years ago

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

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

maxirk commented 11 years ago

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

maxirk commented 11 years ago

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

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

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

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

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

maxirk commented 11 years ago

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

maks-a commented 11 years ago

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

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

maks-a commented 11 years ago

Для этой цели я написал себе простой 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 commented 11 years ago

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

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

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

maks-a commented 11 years ago

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

maks-a commented 11 years ago

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

maxirk commented 11 years ago

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

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

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

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

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

maks-a commented 11 years ago

Читаем внимательно мой коммент - https://github.com/ReanGD/LearningEnglish/issues/55#issuecomment-9517958 считаем там запятые, находим последнюю, одну единственную запятую.

maxirk commented 11 years ago

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

maks-a commented 11 years ago

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

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

ReanGD commented 11 years ago

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

ReanGD commented 11 years ago

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

maxirk commented 11 years ago

Добавьте скрипт импорта из 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 commented 11 years ago

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

ReanGD commented 11 years ago

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