Я нахожусь в процессе изучения Python и пытаюсь создать создателя / решателя анаграмм в flask.
Я использую nltk и у меня настроен базовый c скрипт, который дескремблирует группа букв и находит слово из корпуса. Я знаю, что мой метод может быть не идеальным - помните, что я все еще изучаю, что можно сделать в Python - но он работает в принципе, и я создал аналогичный скрипт, чтобы найти все слова в группе букв.
Моя проблема в том, что он использует только американский английский sh, поэтому в приведенном ниже примере «favro» становится «одолжением», которое является американским правописанием, но «favrou» не становится «одолжением», которое является Briti sh spelling.
import itertools
import nltk
from nltk.corpus import words
english_vocab = set(w.lower() for w in nltk.corpus.words.words())
scramble = "favro"
sep = ""
for y in list(itertools.permutations(scramble, len(scramble))):
if (sep.join(y) in english_vocab):
print(sep.join(y))
Есть ли что-нибудь, что отличает американцев от Briti sh Engli sh?
Я пытался использовать 'enchant' и это хорошо работает на решающей части, но когда я пытаюсь создать список слов в слове, это невероятно медленно. Например, когда я пытаюсь найти все слова в «цветах», nltk занимает 0,08 секунды, а enchant - 2,5 секунды. Эта разница во времени увеличивается с увеличением количества букв, поэтому зачарование нежизнеспособно.
Есть идеи?
Стив