import matplotlib.pyplot as plt
import numpy as np
import pandas as pd

df=pd.read_csv("medium_data.csv")
words=df["text"].str.lower().str.split()
pairs=pd.DataFrame([(s[i],s[i+1]) for s in words.dropna() for i in range(len(s)-1)],columns=["c","n"])
fig,axes=plt.subplots(1,3,figsize=(12,4))
for ax,p in zip(axes,["data","machine","learning"]):
    top=pairs.query("c==@p")["n"].value_counts().head(5)
    ax.barh(top.index[::-1],top.values[::-1],color="teal",height=0.5)
    ax.set_title(f"Prefix: '{p}'")
    ax.set_xlabel("Frequency")
    ax.set_ylim(-0.6,4.6)
plt.tight_layout()
plt.show()