# Ceteris Lab downloadable Python script
# Course: Fundamentals of Python for Financial Econometrics

from sklearn.feature_extraction.text import TfidfVectorizer
from sklearn.metrics.pairwise import cosine_similarity

chunks = [
    "Value at Risk is a loss quantile at a stated horizon and confidence level.",
    "Expected Shortfall averages losses beyond the VaR threshold.",
    "An AR model relates a series to its own lags.",
]
query = "What summarizes losses worse than VaR?"
vec = TfidfVectorizer().fit(chunks + [query])
X = vec.transform(chunks + [query])
scores = cosine_similarity(X[-1], X[:-1]).ravel()
print(scores.argmax(), chunks[scores.argmax()])

state = {"step": 0, "done": False}
while not state["done"] and state["step"] < 3:
    state["step"] += 1
    if state["step"] == 2:
        state["done"] = True
print(state)

from sklearn.feature_extraction.text import TfidfVectorizer
from sklearn.metrics.pairwise import cosine_similarity
vec = TfidfVectorizer().fit(chunks + [query])
X = vec.transform(chunks + [query])
scores = cosine_similarity(X[-1], X[:-1]).ravel()
print(scores.argmax(), chunks[scores.argmax()])
