Могу ли я получить доступ к английскому словарю для просмотра совпадений в азбуке Морзе? Если нет, могу я скопировать и вставить его из какого-то места всего в несколько строк?

Итак, я пишу программу на Python 2.7, которая перебирает все слова на английском языке, чтобы увидеть, соответствует ли версия английского слова азбукой Морзе неизвестной фразе Морзе. Причина, по которой я не могу просто интерпретировать это, в том, что между буквами нет пробелов. Это фрагмент кода:

def morse_solver(nol,morse,words): 
#nol is the number of letters to cut down search time,morse is the Morse phrase to decode, and words is a string (or can be a list) of all english words.
    lista=_index(words)
    #_index is a procedure that organizes the input in the following way:[nol,[]]
    selection=lista[nol-1][1]
    #selects the words with that nol to loop through
    for word in selection:
        if morse_encode(word)==morse:
            print morse+"="+word

Итак, мой вопрос:
Трудно найти список всех слов на английском языке и скопировать его в огромную строку. Так есть ли способ или какой-нибудь модуль Python для доступа ко всем словам в английском словаре, просто набрав немного?

Если такого не существует, как я могу обрабатывать такую ​​большую строку? Есть ли место, из которого я могу скопировать пасту (только на одну строку)? заранее спасибо


person Moshe Goldberg    schedule 09.07.2015    source источник
comment
Я бы рекомендовал назвать index() что-нибудь другое, поскольку вы маскируете встроенную функцию с таким же именем.   -  person TigerhawkT3    schedule 10.07.2015
comment
пожалуйста, не делайте дубликаты. ни у кого из других открытых (или закрытых) ответов не было хороших или полезных ответов   -  person Moshe Goldberg    schedule 10.07.2015
comment
Я склонен делать много подобных ошибок, так как я новичок в python. Благодарность   -  person Moshe Goldberg    schedule 10.07.2015
comment
На какой платформе вы находитесь? Если вы используете Unix-подобный компьютер, попробуйте открыть /usr/share/dict/words в режиме чтения.   -  person Kevin    schedule 10.07.2015
comment
@Kevin Я использую Windows 8.1   -  person Moshe Goldberg    schedule 10.07.2015
comment
Google yawl.txt или enable.txt. Оба текстовых файла легко найти в Интернете и могут быть загружены в словарь Python или установлены всего в 2 или 3 строчки кода.   -  person John Coleman    schedule 10.07.2015
comment
@JohnColeman хорошо, я нашел файлы, но как я могу разместить его всего на нескольких строках, в нем по одному слову в строке.   -  person Moshe Goldberg    schedule 10.07.2015
comment
@JediPythonClone - Я сказал, что вы можете загрузить его в структуру данных Python всего в несколько строк кода. Что-то вроде wfile = open("yawl.txt"), затем wordlist = wfile.read().split('\n'), затем wfile.close(). Сам итоговый список содержит более 200000 записей, но он загружается меньше секунды и прост в использовании. Если вы предпочитаете набор или словарь списку, такие преобразования представляют собой каждую строку кода.   -  person John Coleman    schedule 10.07.2015
comment
@JohnColeman о, спасибо, я понял .... Это будет работать в Python 2.7, верно?   -  person Moshe Goldberg    schedule 10.07.2015
comment
@JediPythonClone В Python 2.7 не должно быть проблем - хотя я уже много лет не использовал Python 2, и я больше не помню всех мелких различий.   -  person John Coleman    schedule 10.07.2015
comment
Почему бы просто не сделать переводчика для Морса?   -  person ytpillai    schedule 11.07.2015
comment
@ytpillai Я, но как мне   -  person Moshe Goldberg    schedule 11.07.2015
comment
Я так делаю, если между буквами нет разрывов   -  person Moshe Goldberg    schedule 11.07.2015
comment
@JohnColeman Я пробовал использовать как yawl.text, так и enable1.text (который я скачал, но он дает мне ошибку трассировки, в которой говорится   -  person Moshe Goldberg    schedule 11.07.2015
comment
@JohnColeman говорит Traceback (последний вызов последний): Файл C: \ Users \ michael \ Desktop \ Python Projects \ you.py, строка 4, в ‹module› wfile = open ('yawl.txt') IOError: [Errno 2] Нет такого файла или каталога: 'yawl.txt'   -  person Moshe Goldberg    schedule 11.07.2015
comment
Ну тогда передайте ему файл, который действительно существует. Обратите внимание, что в строковых литералах Python '\' необходимо экранировать как '\\', хотя все последние версии Windows принимают '/' в качестве разделителя пути к файлу, поэтому использование '/' вместо '\', вероятно, проще исправить.   -  person John Coleman    schedule 11.07.2015
comment
@JohnColeman, спасибо, что сработало   -  person Moshe Goldberg    schedule 11.07.2015
comment
@JediPythonClone Ну, вы могли бы выяснить, как обычные люди интерпретируют слова кода Морзе, и придумать для этого словарь. Вам придется начинать с основной буквы за буквой, но можно также включить более сложную грамматику. Я не знаю кода Морзе, но если вы научитесь использовать его в реальной жизни, вы можете просто применить ту же логику к Python.   -  person ytpillai    schedule 11.07.2015


Ответы (2)


Есть словарный инструмент для Python под названием enchant. Проверьте эту ветку.

Как проверить, является ли слово Английское слово на Python?

person ate50eggs    schedule 10.07.2015

Что за забавная азбука Морзе, если вы ее не слышите? Сообщите мне, если это не работает в Python 2.7:

from winsound import Beep
from time import sleep

dot = 150 # milliseconds
dash = 300 
freq = 2500 #Hertz
delay = 0.05 #delay between beeps in seconds

def transmit(morseCode):
    for key in morseCode:
        if key == '.':
            Beep(freq,dot)
        elif key == '-':
            Beep(freq,dash)
        else:
            pass #ignore (e.g. new lines)
        sleep(delay)

example = '----. ----.   -... --- - - .-.. .   --- ..-.   -... . . .-.'
#This last is the first line of
#99 Bottles of Beer in Morse Code
#from http://99-bottles-of-beer.net/language-morse-code-406.html

transmit(example)
person John Coleman    schedule 10.07.2015
comment
Это не дает мне ошибки, но не воспроизводится ..... Где мне его запускать оболочка или командная строка - person Moshe Goldberg; 11.07.2015
comment
Я просто использую его в Python Shell IDLE. Возможно, это прольет на это некоторый свет: stackoverflow.com/q/14304328/4996248 - person John Coleman; 11.07.2015