Python: 100 лучших n-грамм для пользовательского списка алфавитовPython

Программы на Python
Гость
Python: 100 лучших n-грамм для пользовательского списка алфавитов

Сообщение Гость »

Давлен пользовательский набор алфавита, в котором строка из трех цифр является элементом набора алфавита.

Код: Выделить всё

new_alphabet = ['000','001','002','003', ... , '700']
Как эффективно вычислять n-граммы для таких длинных последовательностей?

Код: Выделить всё

sample_sequence = '667690233467295562084651363248000111'
Для этого sample_sequence 2 грамма будут [667690,690233,233467,467295,...,000111] и 3 грамма будет [667690233,690233467,...,248000111]
Следовал методологии и коду, найденному для лучшего способа разделения последовательности на фрагменты с перекрытиями до придумать рабочий код для меньших последовательностей и небольшого количества записей.

Код: Выделить всё

seq = '667690233467295562084651363248000111'
ngram_length = 4
alpha_length = 3
size = ngram_length * alpha_length

for i in range(0, len(seq) - alpha_length, size):
print(seq[i:i+size])
Вывод:

Код: Выделить всё

667690233467
295762084951
363248000111
Есть ли способ эффективно генерировать n-граммы для очень больших последовательностей и большего набора данных, используя этот собственный список алфавитов new_alphabet, который содержит 701 трехзначный алфавит? И как нам определить лучшие x n-граммы (скажем, 100 лучших 2-граммов) по результату?

Подробнее здесь: https://stackoverflow.com/questions/781 ... habet-list

Вернуться в «Python»