Моя операционная система: Windows 10, я использую (Anaconda)Jupyter notebook Python 3
Я испозовал эти коды:
import pandas as pd
import numpy as np
import string as st
text = "Съешь ещё этих мягких французских булок, да выпей же чаю."
def fn(text, n):
# уберём знаки пунктуации и переведём в строчный регистр:
new_text = text.translate(str.maketrans('', '', st.punctuation)).lower()
x = [new_text[i: i + n - 1] for i in range(len(new_text) - n + 2)]
xa = [new_text[i: i + n] for i in range(len(new_text) - n + 1)]
series_x = pd.Series(x)
series_xa = pd.Series(xa)
counts_x = series_x.value_counts()
counts_xa = series_xa.value_counts()
trimmed_xa = [key_xa[: - 1] for key_xa in counts_xa.keys()]
fn = - np.dot(counts_xa.values / len(xa), np.log2(counts_xa.values / counts_x[trimmed_xa].values))
return fn
Эти Коды не работают для исключения (if N == 0... elif N == 1...).
Последнее редактирование: