Я ищу помощь в кодировании системы подсказки слов с использованием Python. При заданном вводе случайных последовательностей символов я хочу иметь возможность искать в списке слов и давать некоторые рекомендации по словам.
Я нашел в шкафах систему исправления правописания (https://norvig.com/spell-correct.html) при анализе функции «edits1» она дает некоторые результаты, однако они основаны на одном редактировании (например, включение одного «a» во входную строку).
Чего я хочу добиться, так это использовать более одной буквы, то есть гласных или согласных. например учитывая буквы «prt», поиск по словарю должен рекомендовать «часть» и «отдельно» и т. д.
Filler.py – https://norvig.com/spell-correct.html
import re
from collections import Counter
def words(text): return re.findall(r'\w+', text.lower())
WORDS = Counter(words(open('E:\\new\\words.txt').read())) #wordlist containing numerious word e.g. 'prut', 'prot', 'port', 'part', 'prat', 'pert', 'pret', 'apart'.
def candidates(word):
"Generate possible spelling corrections for word."
return (known([word]) or known(edits1(word)) or known(edits2(word)) or [word])
def known(words):
"The subset of `words` that appear in the dictionary of WORDS."
return set(w for w in words if w in WORDS)
def edits1(word):
"All edits that are one edit away from `word`."
letters = 'aeiouxyz'
splits = [(word[:i], word[i:]) for i in range(len(word) + 2)]
inserts = [L + c + R for L, R in splits for c in letters]
return set(inserts)
def edits2(word):
"All edits that are two edits away from `word`."
return (e2 for e1 in edits1(word) for e2 in edits1(e1))
InputString.py
import filler
h = ['prt']
for x in h:
input = filler.candidates(h[0])
print(input)
filler.py
основан на двух или менее правках, а большее количество правок может быть легко выполнено с помощью цикла. Вопрос в том, сколько раз вы хотите редактировать и уверены ли вы, что согласные также используются для вставки, скажем, например. учитывая, что «bt», «но», «летучая мышь», «бит» должны быть рекомендованы, а «пояс», «завтрак» и т. д. также рекомендуются? - person C.K.   schedule 18.02.2019