В настоящее время я работаю над небольшим фрагментом кода и, похоже, наткнулся на контрольно-пропускной пункт. Мне было интересно, можно ли найти наиболее распространенное вхождение символа, который следует за определенной c группой символов?
Например, скажем, у меня есть следующее предложение:
"fishies are super neat, a fish is a good pet. also, fishing is for dads."
Как бы я мог определить, например, наиболее распространенный символ, который появляется после фрагмента "fish"
?
В этом конкретном c примере, выполняя это вручную, я получаю что-то вроде этого:
{"i": 2, " ": 1}
В настоящее время у меня есть этот кусок кода, написанный для захвата части слова "fi sh":
b = Class(n, 'file.txt')
ngrams = [b.file[i:i+n] for i in range(len(b.file)-1)]
это разделит весь текст на 4 части следующим образом: ['fish', 'ishi', 'shie', 'hies', 'ies ', 'es a'.....]
Моя цель - объединить эти две мысли, чтобы я мог напечатать что-то похожее на следующее:
{'fish' : {'i':2, ' ':1} ..... }
В настоящее время у меня также есть defaultdict, определенный в __init__
, например, так: self.counts=defaultdict(lambda: defaultdict(int))
Это самое близкое к достижению моего желаемого решения, хотя я не уверен как получить отдельные символы, которые следуют и как посчитайте эти символы:
b.counts = {i : { j : 5 for j in ngrams } for i in ngrams }
5
- это просто заполнитель, чтобы я мог видеть, что напечатано. j in ngrams
также был заполнителем, чтобы увидеть, что напечатано. Любой вклад или идеи от кого-либо будет принята с благодарностью!