Text Segmentation: Supervised approach
Here is probably the last article about text segmentation. Previously I’ve explored three approaches: GraphSeg, TextTiling, and an improved TextTiling with an embeddings-based similarity metric. The results were only okay — not great. Additionally, I mentioned a supervised approach: building a classifier that could determine if a sentence is a boundary sentence or not. The text and code below detail my attempt to construct a binary classifier for this task.
Friendly Alert: This post will include really huge amount of Python code. Be ready.
This articles contains two large sections:
- Dataset section related to dataset that I’ll later,
- Analysis section will be about testing different classifers and how they perform on this task with my data.
But firstly I need to import all necessary libraries and modules.
import typing as t
from dataclasses import dataclass
import warnings
warnings.filterwarnings("ignore")
from joblib import Memory
import pandas as pd
import polars as pl
import numpy as np
from sentence_transformers import SentenceTransformer
from nltk.metrics import windowdiff
from xgboost import XGBClassifier
from lightgbm import LGBMClassifier
import sklearn
from sklearn import (
neighbors,
naive_bayes,
discriminant_analysis,
ensemble,
calibration,
semi_supervised,
)
memory = Memory('../.cache')
%load_ext watermark
Dataset
I’ll use the same dataset I’ve used earlier: an automatic transcript of some DevZen podcast episodes. The same dataset I used in the previous article in this series.
csv_path = '../data/400-415-with-target.csv'
df = pl.read_csv(csv_path)
df.head()
size | episode | start | end | ru_sentence | sentence_length | topic_num | ground_truth | en_sentence | target |
---|---|---|---|---|---|---|---|---|---|
str | i64 | f64 | f64 | str | i64 | i64 | i64 | str | i64 |
"large" | 400 | 0.0 | 12.44 | "Всем привет, с… | 35 | 1 | 1 | "Hello everyone… | 0 |
"large" | 400 | 0.0 | 12.44 | "Сегодня 29 окт… | 51 | 1 | 1 | "Today is Octob… | 0 |
"large" | 400 | 0.0 | 20.96 | "Мы пришли к эт… | 79 | 1 | 1 | "We came to thi… | 0 |
"large" | 400 | 12.44 | 27.88 | "В моей виртуал… | 66 | 1 | 1 | "In my virtual … | 0 |
"large" | 400 | 20.96 | 34.16 | "Мы постараемся… | 65 | 1 | 1 | "We will try to… | 0 |
The only valuable columns here are:
episode
— episode number,ru_sentence
— segment text in Russion (original),en_sentence
— segment text in English (machine translatedru_sentence
),target
— if the segment is boundary sentcence.
Build embeddings
A friendly reminder: an embedding is a vector representation of a text. Various methods exist for building embeddings, with FastText and Word2Vec being among the most well-known and classic. A good embedding algorithm should yield similar embeddings for similar texts.
Just as an experiment I’ll use two model for embeddings from HuggingFace:
@dataclass
class Models:
paraphrase = 'sentence-transformers/paraphrase-multilingual-MiniLM-L12-v2'
labse = 'sentence-transformers/labse'
memory.cache
is a great way to cache function results. It could be really helpful if you have to do long-running calculation. For instance, building embeddings for a bunch of texts.
@memory.cache(verbose=False)
def get_embeddings(sentences: list[str], model_name: str) -> list[float]:
model = SentenceTransformer(model_name)
return model.encode(list(sentences))
ru_paraphrase_embeddings = get_embeddings(df['ru_sentence'], Models.paraphrase)
en_paraphrase_embeddings = get_embeddings(df['en_sentence'], Models.paraphrase)
ru_labse_embeddings = get_embeddings(df['ru_sentence'], Models.labse)
en_labse_embeddings = get_embeddings(df['en_sentence'], Models.labse)
print(f'{ru_paraphrase_embeddings.shape=}')
print(f'{en_paraphrase_embeddings.shape=}')
print(f'{ru_labse_embeddings.shape=}')
print(f'{en_labse_embeddings.shape=}')
ru_paraphrase_embeddings.shape=(18417, 384)
en_paraphrase_embeddings.shape=(18417, 384)
ru_labse_embeddings.shape=(18417, 768)
en_labse_embeddings.shape=(18417, 768)
paraphrase-multilingual-MiniLM-L12-v2
provides vectors with 384 dimensions and labse
— 768.
embeddings = {
'russian': {
'paraphrase': ru_paraphrase_embeddings,
'labse': ru_labse_embeddings,
},
'english': {
'paraphrase': en_paraphrase_embeddings,
'labse': en_labse_embeddings,
}
}
Build the dataset
Below you can see a short function to build a dataset from embeddings.
For binary classification I need only embeddings and targets for each of them.
I’ll add ru_sentence
, en_sentence
, and episode
columns only for further research.
def build_dataset(
df: t.Union[pd.DataFrame, pl.DataFrame],
embeddings: np.ndarray,
prefix: str = '',
columns_to_add: list[str] = ['ru_sentence', 'en_sentence', 'episode', 'target']
) -> pl.DataFrame:
res = pl.from_dataframe(df[[col for col in columns_to_add if col in df.columns]])
emb_df = pl.DataFrame(embeddings, schema=[f'{prefix}{x+1}' for x in range(len(embeddings[0]))])
res = pl.concat([res, emb_df], how='horizontal')
return res
Let’s use the function and see what I get. The only reason why I printed only four first values from embeddings is that the whole table wouldn’t fit into any screen.
ru_labse_ds = build_dataset(df, ru_labse_embeddings)
ru_paraphrase_ds = build_dataset(df, ru_paraphrase_embeddings)
en_labse_ds = build_dataset(df, en_labse_embeddings)
en_paraphrase_ds = build_dataset(df, en_paraphrase_embeddings)
with pl.Config(fmt_str_lengths=100, tbl_width_chars=120):
print(ru_labse_ds[['ru_sentence', 'en_sentence', 'episode', 'target'] + [f'{x}' for x in range(1, 5)]].head())
shape: (5, 8)
┌─────────────────────────┬─────────────────────────┬─────────┬────────┬───────────┬───────────┬───────────┬───────────┐
│ ru_sentence ┆ en_sentence ┆ episode ┆ target ┆ 1 ┆ 2 ┆ 3 ┆ 4 │
│ --- ┆ --- ┆ --- ┆ --- ┆ --- ┆ --- ┆ --- ┆ --- │
│ str ┆ str ┆ i64 ┆ i64 ┆ f32 ┆ f32 ┆ f32 ┆ f32 │
╞═════════════════════════╪═════════════════════════╪═════════╪════════╪═══════════╪═══════════╪═══════════╪═══════════╡
│ Всем привет, с вами ┆ Hello everyone, with ┆ 400 ┆ 0 ┆ -0.049052 ┆ -0.063366 ┆ -0.004289 ┆ -0.039874 │
│ подкаст DevZen. ┆ you, the Devzen ┆ ┆ ┆ ┆ ┆ ┆ │
│ ┆ Podkast. ┆ ┆ ┆ ┆ ┆ ┆ │
│ Сегодня 29 октября 2022 ┆ Today is October 29, ┆ 400 ┆ 0 ┆ -0.02757 ┆ -0.045256 ┆ -0.046101 ┆ 0.048084 │
│ года, это выпуск номер ┆ 2022, this is the issue ┆ ┆ ┆ ┆ ┆ ┆ │
│ 400. ┆ number 400. ┆ ┆ ┆ ┆ ┆ ┆ │
│ Мы пришли к этой ┆ We came to this ┆ 400 ┆ 0 ┆ 0.007238 ┆ -0.023839 ┆ -0.033135 ┆ -0.022053 │
│ замечательной дате, и ┆ wonderful date, and ┆ ┆ ┆ ┆ ┆ ┆ │
│ трудно поверить, что ┆ it’s hard to believe ┆ ┆ ┆ ┆ ┆ ┆ │
│ это уже 400 выпуск. ┆ that this is already ┆ ┆ ┆ ┆ ┆ ┆ │
│ ┆ 400 release. ┆ ┆ ┆ ┆ ┆ ┆ │
│ В моей виртуальной ┆ In my virtual studio ┆ 400 ┆ 0 ┆ -0.023594 ┆ -0.001846 ┆ -0.061048 ┆ 0.004628 │
│ студии сегодня полный ┆ today the full ┆ ┆ ┆ ┆ ┆ ┆ │
│ состав, у нас нет ┆ composition, we do not ┆ ┆ ┆ ┆ ┆ ┆ │
│ гостей. ┆ have guests. ┆ ┆ ┆ ┆ ┆ ┆ │
│ Мы постараемся вести ┆ We will try to lead the ┆ 400 ┆ 0 ┆ -0.014371 ┆ -0.017978 ┆ -0.021724 ┆ -0.001312 │
│ сегодня классический ┆ classic devzen tube ┆ ┆ ┆ ┆ ┆ ┆ │
│ ламповый выпуск DevZen. ┆ release today. ┆ ┆ ┆ ┆ ┆ ┆ │
└─────────────────────────┴─────────────────────────┴─────────┴────────┴───────────┴───────────┴───────────┴───────────┘
I used the same function to divide the dataset into training and testing sets as I did before. All sentences related to episodes from 400 to 409, inclusive, were allocated to the training set, while the rest were assigned to the testing set.
def split_train_test(df: pl.DataFrame) -> t.Tuple[pl.DataFrame, pl.DataFrame]:
# hardcoded episode numbers to split into train and test parts
train_episodes = [400, 401, 402, 403, 404, 405, 406, 407, 408, 409]
test_episodes = [410, 411, 412, 413, 414, 415]
train = df.filter(pl.col('episode').is_in(train_episodes))
test = df.filter(pl.col('episode').is_in(test_episodes))
return train, test
To measure a classifier’s performace I windowdiff
metric that I already used in the article about unsupervised approaches.
def window_diff(gt: str, pred: str, boundary='|') -> float:
k = int(round(len(gt) / (gt.count(boundary) * 2.)))
return windowdiff(gt, pred, k, boundary=boundary)
Analysis
Train and score classifiers
I’m not prepared to spend hours checking all the algorithms in sklearn, so I’ll write a simple function that trains and tests the classifier passed to it. Then, I’ll identify the best performing classifiers based on the results.
def data_columns(data_frame: pl.DataFrame, exclude_columns: list[str]) -> list[str]:
return [col for col in data_frame.columns if col not in exclude_columns]
The score_clf
function takes a classifier and a dataframe as input, fits the classifier, and collects metrics for it.
If the classifier can return probabilities, the function tries different thresholds.
Finally, the function returns an array with metrics for each threshold.
def score_clf(
clf: t.Any,
df: pl.DataFrame,
verbose: bool = False
) -> None:
train, test = split_train_test(df)
cols = data_columns(df, ['ru_sentence', 'en_sentence', 'episode', 'target'])
clf.fit(
train[cols],
train['target'],
)
if hasattr(clf, 'predict_proba'):
predictions = clf.predict_proba(test[cols])
test = test.hstack([pl.Series('prediction', predictions[:, 1])])
else:
predictions = clf.predict(test[cols])
test = test.hstack([pl.Series('prediction', predictions)])
windows_diffs = []
metrics = []
for g in sorted(test[['episode', 'target', 'prediction']].groupby('episode')):
ground_truth_seg = ''.join([str(x) for x in g[1]['target']])
if hasattr(clf, 'predict_proba'):
best_ts = None
min_wd = 1
topics_count = 0
# score classifier for different thresholds
for threshold in [x/10 for x in range(1, 10)]:
predicred_seg = ''.join([str(int(x > threshold)) for x in g[1]['prediction']])
wd = window_diff(ground_truth_seg, predicred_seg, boundary='1')
min_wd = min(min_wd, wd)
best_ts = threshold if min_wd == wd else best_ts
topics_count = predicred_seg.count('1') + 1 if min_wd == wd else topics_count
windows_diffs.append(wd)
metrics.append({
'clf': clf.__class__.__name__,
'episode': g[0],
'threshold': threshold,
'window_diff': wd,
'predicted_topics_count': predicred_seg.count('1') + 1,
'ground_truth_topics_count': ground_truth_seg.count("1") + 1
})
if verbose: print(f'episode={g[0]}\t{best_ts=}\tbest windowdiff={min_wd}\ttopics count for best windowdiff={topics_count}\treal topic count={ground_truth_seg.count("1")+1}')
else:
predicred_seg = ''.join([str(x) for x in g[1]['prediction']])
wd = window_diff(ground_truth_seg, predicred_seg, boundary='1')
windows_diffs.append(wd)
metrics.append({
'clf': clf.__class__.__name__,
'episode': g[0],
'threshold': None,
'window_diff': wd,
'predicted_topics_count': predicred_seg.count('1') + 1,
'ground_truth_topics_count': ground_truth_seg.count("1") + 1
})
if verbose: print(f'episode={g[0]}\twindowdiff={wd:.4f}\ttopics count={predicred_seg.count("1")+1}\treal topic count={ground_truth_seg.count("1")+1}')
if verbose: print(f'avg windowdiff through episodes = {np.mean(windows_diffs):.4f}')
return metrics
Below is the code that allowed me to train 25 different classifiers on the LaBSE-based dataset. The classifiers range from the default LogisticRegression to XGB and LGB boostings.
random_state = 42
nc_clf = neighbors.NearestCentroid()
gauss_clf = sklearn.naive_bayes.GaussianNB()
bernoulli_clf = sklearn.naive_bayes.BernoulliNB()
logreg_clf = sklearn.linear_model.LogisticRegression()
lindis_clf = sklearn.discriminant_analysis.LinearDiscriminantAnalysis()
linear_svc_clf = sklearn.svm.LinearSVC(random_state=random_state)
knn_clf = sklearn.neighbors.KNeighborsClassifier()
perc_clf = sklearn.linear_model.Perceptron(random_state=random_state)
ada_clf = sklearn.ensemble.AdaBoostClassifier(random_state=random_state)
sgd_clf = sklearn.linear_model.SGDClassifier(random_state=random_state)
ext_tree_clf = sklearn.tree.ExtraTreeClassifier(random_state=random_state)
dec_tree_clf = sklearn.tree.DecisionTreeClassifier(random_state=random_state)
pass_agg_clf = sklearn.linear_model.PassiveAggressiveClassifier(random_state=random_state)
svc_clf = sklearn.svm.SVC(random_state=random_state)
ext_trees_clf = sklearn.ensemble.ExtraTreesClassifier(random_state=random_state)
calib_clf = sklearn.calibration.CalibratedClassifierCV()
label_prop_clf = sklearn.semi_supervised.LabelPropagation()
label_spr_clf = sklearn.semi_supervised.LabelSpreading()
bag_clf = sklearn.ensemble.BaggingClassifier(random_state=random_state)
rnd_forest_clf = sklearn.ensemble.RandomForestClassifier(random_state=random_state)
dummy_clf = sklearn.dummy.DummyClassifier(random_state=random_state)
quad_clf = sklearn.discriminant_analysis.QuadraticDiscriminantAnalysis()
ridge_clf = sklearn.linear_model.RidgeClassifierCV()
lgb_clf = LGBMClassifier(random_state=random_state, verbose=-1)
xgb_clf = XGBClassifier(random_state=random_state)
clfs = [
nc_clf,
gauss_clf,
bernoulli_clf,
logreg_clf,
lindis_clf,
linear_svc_clf,
knn_clf,
perc_clf,
ada_clf,
sgd_clf,
ext_tree_clf,
dec_tree_clf,
pass_agg_clf,
svc_clf,
ext_trees_clf,
calib_clf,
label_prop_clf,
label_spr_clf,
bag_clf,
rnd_forest_clf,
dummy_clf,
quad_clf,
ridge_clf,
lgb_clf,
xgb_clf,
]
labse_metrics = []
for clf in clfs:
try:
labse_metrics.extend(score_clf(clf,ru_labse_ds))
except Exception as e:
print(e)
metrics_df = pl.DataFrame(labse_metrics)
metrics_df.shape
> (1014, 6)
There are 1014 rows in the dataframe containing the result metrics.
It might be overwhelming to analyze all 1014 rows, so let’s focus on the results for the 410th episode—the first test episode:
episode_metrics = metrics_df.filter(pl.col('episode') == 410).sort(['episode', 'clf', 'threshold'])
print(episode_metrics)
shape: (169, 6)
┌────────────────────┬─────────┬───────────┬─────────────┬────────────────────┬────────────────────┐
│ clf ┆ episode ┆ threshold ┆ window_diff ┆ predicted_topics_c ┆ ground_truth_topic │
│ --- ┆ --- ┆ --- ┆ --- ┆ ount ┆ s_count │
│ str ┆ i64 ┆ f64 ┆ f64 ┆ --- ┆ --- │
│ ┆ ┆ ┆ ┆ i64 ┆ i64 │
╞════════════════════╪═════════╪═══════════╪═════════════╪════════════════════╪════════════════════╡
│ AdaBoostClassifier ┆ 410 ┆ 0.1 ┆ 1.0 ┆ 1000 ┆ 17 │
│ AdaBoostClassifier ┆ 410 ┆ 0.2 ┆ 1.0 ┆ 886 ┆ 17 │
│ AdaBoostClassifier ┆ 410 ┆ 0.3 ┆ 1.0 ┆ 473 ┆ 17 │
│ AdaBoostClassifier ┆ 410 ┆ 0.4 ┆ 1.0 ┆ 333 ┆ 17 │
│ AdaBoostClassifier ┆ 410 ┆ 0.5 ┆ 0.413374 ┆ 1 ┆ 17 │
│ … ┆ … ┆ … ┆ … ┆ … ┆ … │
│ XGBClassifier ┆ 410 ┆ 0.5 ┆ 0.413374 ┆ 1 ┆ 17 │
│ XGBClassifier ┆ 410 ┆ 0.6 ┆ 0.413374 ┆ 1 ┆ 17 │
│ XGBClassifier ┆ 410 ┆ 0.7 ┆ 0.413374 ┆ 1 ┆ 17 │
│ XGBClassifier ┆ 410 ┆ 0.8 ┆ 0.413374 ┆ 1 ┆ 17 │
│ XGBClassifier ┆ 410 ┆ 0.9 ┆ 0.413374 ┆ 1 ┆ 17 │
└────────────────────┴─────────┴───────────┴─────────────┴────────────────────┴────────────────────┘
Interesting, but not very informative. The results seem to be too noisy.
The worst classifiers couldn’t identify any boundary sentences.
This means that the predicted_topics_count
for these classifiers will be equal to 1:
worst_classifers = metrics_df.group_by([
pl.col('clf')
]).agg(
pl.col('predicted_topics_count').max().alias('max_predicted_topics_count')
).filter(pl.col('max_predicted_topics_count') == 1).sort('clf')
print(set(worst_classifers['clf']))
> {'SGDClassifier', 'RidgeClassifierCV', 'DummyClassifier', 'QuadraticDiscriminantAnalysis'}
So, I’ll remove all classifiers from future research that couldn’t even identify a single boundary sentence:
- DummyClassifier,
- RidgeClassifierCV,
- SGDClassifier,
- QuadraticDiscriminantAnalysis.
The reason for this is that all provided episodes have at least 7 topics.
metrics_df = metrics_df.filter(~pl.col('clf').is_in(set(worst_classifers['clf'])))
metrics_df
clf | episode | threshold | window_diff | predicted_topics_count | ground_truth_topics_count |
---|---|---|---|---|---|
str | i64 | f64 | f64 | i64 | i64 |
"NearestCentroi… | 410 | null | 0.576494 | 42 | 17 |
"NearestCentroi… | 411 | null | 0.880901 | 55 | 9 |
"NearestCentroi… | 412 | null | 0.825334 | 72 | 12 |
"NearestCentroi… | 413 | null | 0.976025 | 64 | 7 |
"NearestCentroi… | 414 | null | 0.962963 | 69 | 7 |
"NearestCentroi… | 415 | null | 0.802644 | 50 | 9 |
"GaussianNB" | 410 | 0.1 | 0.555218 | 32 | 17 |
"GaussianNB" | 410 | 0.2 | 0.555218 | 32 | 17 |
"GaussianNB" | 410 | 0.3 | 0.555218 | 32 | 17 |
"GaussianNB" | 410 | 0.4 | 0.555218 | 32 | 17 |
"GaussianNB" | 410 | 0.5 | 0.555218 | 32 | 17 |
"GaussianNB" | 410 | 0.6 | 0.555218 | 32 | 17 |
… | … | … | … | … | … |
"XGBClassifier" | 414 | 0.7 | 0.282515 | 1 | 7 |
"XGBClassifier" | 414 | 0.8 | 0.282515 | 1 | 7 |
"XGBClassifier" | 414 | 0.9 | 0.282515 | 1 | 7 |
"XGBClassifier" | 415 | 0.1 | 0.254013 | 6 | 9 |
"XGBClassifier" | 415 | 0.2 | 0.254013 | 3 | 9 |
"XGBClassifier" | 415 | 0.3 | 0.305949 | 2 | 9 |
"XGBClassifier" | 415 | 0.4 | 0.305949 | 2 | 9 |
"XGBClassifier" | 415 | 0.5 | 0.305949 | 2 | 9 |
"XGBClassifier" | 415 | 0.6 | 0.305949 | 2 | 9 |
"XGBClassifier" | 415 | 0.7 | 0.305949 | 2 | 9 |
"XGBClassifier" | 415 | 0.8 | 0.305949 | 2 | 9 |
"XGBClassifier" | 415 | 0.9 | 0.305949 | 2 | 9 |
If I remove the worst classifiers, I’ll still have a lot of data to analyze.
The next step is to try to identify the best classifiers.
The best classifier is the one that performs the best (in terms of the windowdiff
score) for at least one test episode.
metrics_df = metrics_df.with_columns(
pl.struct(
['predicted_topics_count', 'ground_truth_topics_count']
).map_elements(
lambda x: x['predicted_topics_count'] / x['ground_truth_topics_count']
).alias('ratio')
)
best_performing_clfs = metrics_df.group_by(
['episode']
).agg([
pl.col('window_diff').min(),
pl.col('threshold').min(),
]).join(
metrics_df, on='window_diff', how='left'
).sort(['episode', 'clf', 'threshold'])
best_performing_clfs
episode | window_diff | threshold | clf | episode_right | threshold_right | predicted_topics_count | ground_truth_topics_count | ratio |
---|---|---|---|---|---|---|---|---|
i64 | f64 | f64 | str | i64 | f64 | i64 | i64 | f64 |
410 | 0.299899 | 0.1 | "LinearDiscrimi… | 410 | 0.2 | 11 | 17 | 0.647059 |
411 | 0.207082 | 0.1 | "ExtraTreesClas… | 411 | 0.2 | 5 | 9 | 0.555556 |
412 | 0.334382 | 0.1 | "CalibratedClas… | 412 | 0.4 | 2 | 12 | 0.166667 |
412 | 0.334382 | 0.1 | "CalibratedClas… | 412 | 0.5 | 2 | 12 | 0.166667 |
412 | 0.334382 | 0.1 | "CalibratedClas… | 412 | 0.6 | 2 | 12 | 0.166667 |
412 | 0.334382 | 0.1 | "KNeighborsClas… | 412 | 0.6 | 2 | 12 | 0.166667 |
412 | 0.334382 | 0.1 | "KNeighborsClas… | 412 | 0.7 | 2 | 12 | 0.166667 |
412 | 0.334382 | 0.1 | "LinearSVC" | 412 | null | 2 | 12 | 0.166667 |
412 | 0.334382 | 0.1 | "LogisticRegres… | 412 | 0.3 | 2 | 12 | 0.166667 |
413 | 0.181748 | 0.1 | "CalibratedClas… | 413 | 0.2 | 6 | 7 | 0.857143 |
413 | 0.181748 | 0.1 | "CalibratedClas… | 413 | 0.3 | 6 | 7 | 0.857143 |
413 | 0.181748 | 0.1 | "CalibratedClas… | 413 | 0.4 | 6 | 7 | 0.857143 |
413 | 0.181748 | 0.1 | "XGBClassifier" | 413 | 0.1 | 6 | 7 | 0.857143 |
414 | 0.091301 | 0.1 | "KNeighborsClas… | 414 | 0.4 | 5 | 7 | 0.714286 |
414 | 0.091301 | 0.1 | "KNeighborsClas… | 414 | 0.5 | 5 | 7 | 0.714286 |
415 | 0.142587 | 0.1 | "PassiveAggress… | 415 | null | 6 | 9 | 0.666667 |
The table above shows the best-performing classifier for each episode. For some episodes, there may be more than one best-performing classifier, which is fine.
Additionally, I added a ratio
column, which represents the ratio of the found topics count to the real topics count.
This field will be used later.
The list below contains the best-performing classifiers. Let’s delve deeper into those models.
best_performing_clfs_names = sorted(list(best_performing_clfs['clf'].unique()))
best_performing_clfs_names
> ['CalibratedClassifierCV',
'ExtraTreesClassifier',
'KNeighborsClassifier',
'LinearDiscriminantAnalysis',
'LinearSVC',
'LogisticRegression',
'PassiveAggressiveClassifier',
'XGBClassifier']
Best performing classifiers analysis
The top-performing classifiers should meet the following criteria:
- They should have a small
windowdiff
score. - They should be able to find topics for each test episode.
- They should have a ratio close to 1.
The functions below will help me identify these classifiers:
def get_clf_best_metrics(clf_name: str) -> pl.DataFrame:
classifier_metrics = metrics_df.filter(pl.col('clf') == clf_name)
classifier_best_scores = classifier_metrics.groupby([
pl.col('episode')
]).agg([
pl.col('window_diff').min().alias('best_win_diff')
]).sort([
pl.col('episode')
]).join(
classifier_metrics,
left_on='best_win_diff',
right_on='window_diff'
).with_columns(
pl.col('best_win_diff').alias('window_diff')
)
return classifier_best_scores[['episode', 'window_diff', 'threshold', 'predicted_topics_count', 'ground_truth_topics_count', 'ratio']]
def get_results_for_best_thresholds(
best_classifier_metrics: pl.DataFrame,
all_classifier_metrics: pl.DataFrame
) -> list[pl.DataFrame]:
gr = best_classifier_metrics.groupby(
pl.col('threshold')
).agg(
pl.col('episode').count().alias('count')
)
gr = gr.filter(
pl.col('count') == gr['count'].max()
)
for t in list(gr['threshold']):
yield all_classifier_metrics.filter(pl.col('threshold') == t)[['episode', 'window_diff', 'threshold', 'predicted_topics_count', 'ground_truth_topics_count', 'ratio']]
return
test_episodes = list(split_train_test(ru_labse_ds)[1]['episode'].unique())
best_results = []
for wc in best_performing_clfs_names:
print(f'{wc:=^100}')
clf_best_metrics = get_clf_best_metrics(wc)
print()
for d in get_results_for_best_thresholds(clf_best_metrics, metrics_df.filter(pl.col('clf') == wc)):
tmp = d if len(d) > 0 else clf_best_metrics
print(tmp)
print(f'avg window diff: {tmp["window_diff"].mean():.2f}')
print(f'avg ratio: {tmp["ratio"].mean():.2f}')
print(f'episodes found: {len(tmp)} out of {len(test_episodes)}')
best_results.append({
'clf': wc,
'threshold': tmp['threshold'][0],
'avg_win_diff': tmp["window_diff"].mean(),
'avg_ratio': tmp["ratio"].mean(),
'episodes_with_topics': len(tmp),
'total_test_episodes': len(test_episodes),
})
print()
print()
=======================================CalibratedClassifierCV=======================================
shape: (6, 6)
┌─────────┬─────────────┬───────────┬────────────────────────┬──────────────────────────┬──────────┐
│ episode ┆ window_diff ┆ threshold ┆ predicted_topics_count ┆ ground_truth_topics_coun ┆ ratio │
│ --- ┆ --- ┆ --- ┆ --- ┆ t ┆ --- │
│ i64 ┆ f64 ┆ f64 ┆ i64 ┆ --- ┆ f64 │
│ ┆ ┆ ┆ ┆ i64 ┆ │
╞═════════╪═════════════╪═══════════╪════════════════════════╪══════════════════════════╪══════════╡
│ 410 ┆ 0.413374 ┆ 0.4 ┆ 1 ┆ 17 ┆ 0.058824 │
│ 411 ┆ 0.234979 ┆ 0.4 ┆ 4 ┆ 9 ┆ 0.444444 │
│ 412 ┆ 0.334382 ┆ 0.4 ┆ 2 ┆ 12 ┆ 0.166667 │
│ 413 ┆ 0.181748 ┆ 0.4 ┆ 6 ┆ 7 ┆ 0.857143 │
│ 414 ┆ 0.192076 ┆ 0.4 ┆ 3 ┆ 7 ┆ 0.428571 │
│ 415 ┆ 0.372993 ┆ 0.4 ┆ 1 ┆ 9 ┆ 0.111111 │
└─────────┴─────────────┴───────────┴────────────────────────┴──────────────────────────┴──────────┘
avg window diff: 0.29
avg ratio: 0.34
episodes found: 6 out of 6
========================================ExtraTreesClassifier========================================
shape: (6, 6)
┌─────────┬─────────────┬───────────┬────────────────────────┬──────────────────────────┬──────────┐
│ episode ┆ window_diff ┆ threshold ┆ predicted_topics_count ┆ ground_truth_topics_coun ┆ ratio │
│ --- ┆ --- ┆ --- ┆ --- ┆ t ┆ --- │
│ i64 ┆ f64 ┆ f64 ┆ i64 ┆ --- ┆ f64 │
│ ┆ ┆ ┆ ┆ i64 ┆ │
╞═════════╪═════════════╪═══════════╪════════════════════════╪══════════════════════════╪══════════╡
│ 410 ┆ 0.413374 ┆ 0.2 ┆ 1 ┆ 17 ┆ 0.058824 │
│ 411 ┆ 0.207082 ┆ 0.2 ┆ 5 ┆ 9 ┆ 0.555556 │
│ 412 ┆ 0.36428 ┆ 0.2 ┆ 5 ┆ 12 ┆ 0.416667 │
│ 413 ┆ 0.212684 ┆ 0.2 ┆ 5 ┆ 7 ┆ 0.714286 │
│ 414 ┆ 0.282515 ┆ 0.2 ┆ 1 ┆ 7 ┆ 0.142857 │
│ 415 ┆ 0.254013 ┆ 0.2 ┆ 3 ┆ 9 ┆ 0.333333 │
└─────────┴─────────────┴───────────┴────────────────────────┴──────────────────────────┴──────────┘
avg window diff: 0.29
avg ratio: 0.37
episodes found: 6 out of 6
========================================KNeighborsClassifier========================================
shape: (6, 6)
┌─────────┬─────────────┬───────────┬────────────────────────┬──────────────────────────┬──────────┐
│ episode ┆ window_diff ┆ threshold ┆ predicted_topics_count ┆ ground_truth_topics_coun ┆ ratio │
│ --- ┆ --- ┆ --- ┆ --- ┆ t ┆ --- │
│ i64 ┆ f64 ┆ f64 ┆ i64 ┆ --- ┆ f64 │
│ ┆ ┆ ┆ ┆ i64 ┆ │
╞═════════╪═════════════╪═══════════╪════════════════════════╪══════════════════════════╪══════════╡
│ 410 ┆ 0.345491 ┆ 0.4 ┆ 4 ┆ 17 ┆ 0.235294 │
│ 411 ┆ 0.288627 ┆ 0.4 ┆ 3 ┆ 9 ┆ 0.333333 │
│ 412 ┆ 0.462628 ┆ 0.4 ┆ 7 ┆ 12 ┆ 0.583333 │
│ 413 ┆ 0.293117 ┆ 0.4 ┆ 9 ┆ 7 ┆ 1.285714 │
│ 414 ┆ 0.091301 ┆ 0.4 ┆ 5 ┆ 7 ┆ 0.714286 │
│ 415 ┆ 0.242682 ┆ 0.4 ┆ 4 ┆ 9 ┆ 0.444444 │
└─────────┴─────────────┴───────────┴────────────────────────┴──────────────────────────┴──────────┘
avg window diff: 0.29
avg ratio: 0.60
episodes found: 6 out of 6
shape: (6, 6)
┌─────────┬─────────────┬───────────┬────────────────────────┬──────────────────────────┬──────────┐
│ episode ┆ window_diff ┆ threshold ┆ predicted_topics_count ┆ ground_truth_topics_coun ┆ ratio │
│ --- ┆ --- ┆ --- ┆ --- ┆ t ┆ --- │
│ i64 ┆ f64 ┆ f64 ┆ i64 ┆ --- ┆ f64 │
│ ┆ ┆ ┆ ┆ i64 ┆ │
╞═════════╪═════════════╪═══════════╪════════════════════════╪══════════════════════════╪══════════╡
│ 410 ┆ 0.345491 ┆ 0.5 ┆ 4 ┆ 17 ┆ 0.235294 │
│ 411 ┆ 0.288627 ┆ 0.5 ┆ 3 ┆ 9 ┆ 0.333333 │
│ 412 ┆ 0.462628 ┆ 0.5 ┆ 7 ┆ 12 ┆ 0.583333 │
│ 413 ┆ 0.293117 ┆ 0.5 ┆ 9 ┆ 7 ┆ 1.285714 │
│ 414 ┆ 0.091301 ┆ 0.5 ┆ 5 ┆ 7 ┆ 0.714286 │
│ 415 ┆ 0.242682 ┆ 0.5 ┆ 4 ┆ 9 ┆ 0.444444 │
└─────────┴─────────────┴───────────┴────────────────────────┴──────────────────────────┴──────────┘
avg window diff: 0.29
avg ratio: 0.60
episodes found: 6 out of 6
=====================================LinearDiscriminantAnalysis=====================================
shape: (6, 6)
┌─────────┬─────────────┬───────────┬────────────────────────┬──────────────────────────┬──────────┐
│ episode ┆ window_diff ┆ threshold ┆ predicted_topics_count ┆ ground_truth_topics_coun ┆ ratio │
│ --- ┆ --- ┆ --- ┆ --- ┆ t ┆ --- │
│ i64 ┆ f64 ┆ f64 ┆ i64 ┆ --- ┆ f64 │
│ ┆ ┆ ┆ ┆ i64 ┆ │
╞═════════╪═════════════╪═══════════╪════════════════════════╪══════════════════════════╪══════════╡
│ 410 ┆ 0.339412 ┆ 0.7 ┆ 6 ┆ 17 ┆ 0.352941 │
│ 411 ┆ 0.341202 ┆ 0.7 ┆ 11 ┆ 9 ┆ 1.222222 │
│ 412 ┆ 0.36192 ┆ 0.7 ┆ 12 ┆ 12 ┆ 1.0 │
│ 413 ┆ 0.406032 ┆ 0.7 ┆ 15 ┆ 7 ┆ 2.142857 │
│ 414 ┆ 0.155039 ┆ 0.7 ┆ 9 ┆ 7 ┆ 1.285714 │
│ 415 ┆ 0.275732 ┆ 0.7 ┆ 9 ┆ 9 ┆ 1.0 │
└─────────┴─────────────┴───────────┴────────────────────────┴──────────────────────────┴──────────┘
avg window diff: 0.31
avg ratio: 1.17
episodes found: 6 out of 6
shape: (6, 6)
┌─────────┬─────────────┬───────────┬────────────────────────┬──────────────────────────┬──────────┐
│ episode ┆ window_diff ┆ threshold ┆ predicted_topics_count ┆ ground_truth_topics_coun ┆ ratio │
│ --- ┆ --- ┆ --- ┆ --- ┆ t ┆ --- │
│ i64 ┆ f64 ┆ f64 ┆ i64 ┆ --- ┆ f64 │
│ ┆ ┆ ┆ ┆ i64 ┆ │
╞═════════╪═════════════╪═══════════╪════════════════════════╪══════════════════════════╪══════════╡
│ 410 ┆ 0.299899 ┆ 0.2 ┆ 11 ┆ 17 ┆ 0.647059 │
│ 411 ┆ 0.341202 ┆ 0.2 ┆ 11 ┆ 9 ┆ 1.222222 │
│ 412 ┆ 0.36192 ┆ 0.2 ┆ 12 ┆ 12 ┆ 1.0 │
│ 413 ┆ 0.608662 ┆ 0.2 ┆ 20 ┆ 7 ┆ 2.857143 │
│ 414 ┆ 0.155039 ┆ 0.2 ┆ 9 ┆ 7 ┆ 1.285714 │
│ 415 ┆ 0.275732 ┆ 0.2 ┆ 9 ┆ 9 ┆ 1.0 │
└─────────┴─────────────┴───────────┴────────────────────────┴──────────────────────────┴──────────┘
avg window diff: 0.34
avg ratio: 1.34
episodes found: 6 out of 6
=============================================LinearSVC==============================================
shape: (6, 6)
┌─────────┬─────────────┬───────────┬────────────────────────┬──────────────────────────┬──────────┐
│ episode ┆ window_diff ┆ threshold ┆ predicted_topics_count ┆ ground_truth_topics_coun ┆ ratio │
│ --- ┆ --- ┆ --- ┆ --- ┆ t ┆ --- │
│ i64 ┆ f64 ┆ f64 ┆ i64 ┆ --- ┆ f64 │
│ ┆ ┆ ┆ ┆ i64 ┆ │
╞═════════╪═════════════╪═══════════╪════════════════════════╪══════════════════════════╪══════════╡
│ 410 ┆ 0.413374 ┆ null ┆ 1 ┆ 17 ┆ 0.058824 │
│ 411 ┆ 0.35515 ┆ null ┆ 2 ┆ 9 ┆ 0.222222 │
│ 412 ┆ 0.334382 ┆ null ┆ 2 ┆ 12 ┆ 0.166667 │
│ 413 ┆ 0.195669 ┆ null ┆ 4 ┆ 7 ┆ 0.571429 │
│ 414 ┆ 0.282515 ┆ null ┆ 2 ┆ 7 ┆ 0.285714 │
│ 415 ┆ 0.372993 ┆ null ┆ 1 ┆ 9 ┆ 0.111111 │
└─────────┴─────────────┴───────────┴────────────────────────┴──────────────────────────┴──────────┘
avg window diff: 0.33
avg ratio: 0.24
episodes found: 6 out of 6
=========================================LogisticRegression=========================================
shape: (6, 6)
┌─────────┬─────────────┬───────────┬────────────────────────┬──────────────────────────┬──────────┐
│ episode ┆ window_diff ┆ threshold ┆ predicted_topics_count ┆ ground_truth_topics_coun ┆ ratio │
│ --- ┆ --- ┆ --- ┆ --- ┆ t ┆ --- │
│ i64 ┆ f64 ┆ f64 ┆ i64 ┆ --- ┆ f64 │
│ ┆ ┆ ┆ ┆ i64 ┆ │
╞═════════╪═════════════╪═══════════╪════════════════════════╪══════════════════════════╪══════════╡
│ 410 ┆ 0.383992 ┆ 0.1 ┆ 5 ┆ 17 ┆ 0.294118 │
│ 411 ┆ 0.290773 ┆ 0.1 ┆ 7 ┆ 9 ┆ 0.777778 │
│ 412 ┆ 0.393391 ┆ 0.1 ┆ 8 ┆ 12 ┆ 0.666667 │
│ 413 ┆ 0.377417 ┆ 0.1 ┆ 11 ┆ 7 ┆ 1.571429 │
│ 414 ┆ 0.18174 ┆ 0.1 ┆ 6 ┆ 7 ┆ 0.857143 │
│ 415 ┆ 0.309726 ┆ 0.1 ┆ 5 ┆ 9 ┆ 0.555556 │
└─────────┴─────────────┴───────────┴────────────────────────┴──────────────────────────┴──────────┘
avg window diff: 0.32
avg ratio: 0.79
episodes found: 6 out of 6
====================================PassiveAggressiveClassifier=====================================
shape: (6, 6)
┌─────────┬─────────────┬───────────┬────────────────────────┬──────────────────────────┬──────────┐
│ episode ┆ window_diff ┆ threshold ┆ predicted_topics_count ┆ ground_truth_topics_coun ┆ ratio │
│ --- ┆ --- ┆ --- ┆ --- ┆ t ┆ --- │
│ i64 ┆ f64 ┆ f64 ┆ i64 ┆ --- ┆ f64 │
│ ┆ ┆ ┆ ┆ i64 ┆ │
╞═════════╪═════════════╪═══════════╪════════════════════════╪══════════════════════════╪══════════╡
│ 410 ┆ 0.370821 ┆ null ┆ 4 ┆ 17 ┆ 0.235294 │
│ 411 ┆ 0.395923 ┆ null ┆ 10 ┆ 9 ┆ 1.111111 │
│ 412 ┆ 0.373721 ┆ null ┆ 6 ┆ 12 ┆ 0.5 │
│ 413 ┆ 0.383604 ┆ null ┆ 12 ┆ 7 ┆ 1.714286 │
│ 414 ┆ 0.245478 ┆ null ┆ 9 ┆ 7 ┆ 1.285714 │
│ 415 ┆ 0.142587 ┆ null ┆ 6 ┆ 9 ┆ 0.666667 │
└─────────┴─────────────┴───────────┴────────────────────────┴──────────────────────────┴──────────┘
avg window diff: 0.32
avg ratio: 0.92
episodes found: 6 out of 6
===========================================XGBClassifier============================================
shape: (6, 6)
┌─────────┬─────────────┬───────────┬────────────────────────┬──────────────────────────┬──────────┐
│ episode ┆ window_diff ┆ threshold ┆ predicted_topics_count ┆ ground_truth_topics_coun ┆ ratio │
│ --- ┆ --- ┆ --- ┆ --- ┆ t ┆ --- │
│ i64 ┆ f64 ┆ f64 ┆ i64 ┆ --- ┆ f64 │
│ ┆ ┆ ┆ ┆ i64 ┆ │
╞═════════╪═════════════╪═══════════╪════════════════════════╪══════════════════════════╪══════════╡
│ 410 ┆ 0.413374 ┆ 0.1 ┆ 1 ┆ 17 ┆ 0.058824 │
│ 411 ┆ 0.23927 ┆ 0.1 ┆ 5 ┆ 9 ┆ 0.555556 │
│ 412 ┆ 0.40598 ┆ 0.1 ┆ 7 ┆ 12 ┆ 0.583333 │
│ 413 ┆ 0.181748 ┆ 0.1 ┆ 6 ┆ 7 ┆ 0.857143 │
│ 414 ┆ 0.192076 ┆ 0.1 ┆ 3 ┆ 7 ┆ 0.428571 │
│ 415 ┆ 0.254013 ┆ 0.1 ┆ 6 ┆ 9 ┆ 0.666667 │
└─────────┴─────────────┴───────────┴────────────────────────┴──────────────────────────┴──────────┘
avg window diff: 0.28
avg ratio: 0.53
episodes found: 6 out of 6
Each classifier has at least one threshold value that shows some promising performance. Let’s analyze which of these classifiers and thresholds perform better than others:
with pl.Config(fmt_str_lengths=100, tbl_width_chars=120):
print(pl.DataFrame(best_results).sort([pl.col('avg_win_diff')]))
shape: (10, 6)
┌─────────────────────────────┬───────────┬──────────────┬───────────┬──────────────────────┬─────────────────────┐
│ clf ┆ threshold ┆ avg_win_diff ┆ avg_ratio ┆ episodes_with_topics ┆ total_test_episodes │
│ --- ┆ --- ┆ --- ┆ --- ┆ --- ┆ --- │
│ str ┆ f64 ┆ f64 ┆ f64 ┆ i64 ┆ i64 │
╞═════════════════════════════╪═══════════╪══════════════╪═══════════╪══════════════════════╪═════════════════════╡
│ XGBClassifier ┆ 0.1 ┆ 0.281077 ┆ 0.525016 ┆ 6 ┆ 6 │
│ KNeighborsClassifier ┆ 0.4 ┆ 0.287308 ┆ 0.599401 ┆ 6 ┆ 6 │
│ KNeighborsClassifier ┆ 0.5 ┆ 0.287308 ┆ 0.599401 ┆ 6 ┆ 6 │
│ CalibratedClassifierCV ┆ 0.4 ┆ 0.288259 ┆ 0.34446 ┆ 6 ┆ 6 │
│ ExtraTreesClassifier ┆ 0.2 ┆ 0.288991 ┆ 0.370254 ┆ 6 ┆ 6 │
│ LinearDiscriminantAnalysis ┆ 0.7 ┆ 0.313223 ┆ 1.167289 ┆ 6 ┆ 6 │
│ PassiveAggressiveClassifier ┆ null ┆ 0.318689 ┆ 0.918845 ┆ 6 ┆ 6 │
│ LogisticRegression ┆ 0.1 ┆ 0.32284 ┆ 0.787115 ┆ 6 ┆ 6 │
│ LinearSVC ┆ null ┆ 0.325681 ┆ 0.235994 ┆ 6 ┆ 6 │
│ LinearDiscriminantAnalysis ┆ 0.2 ┆ 0.340409 ┆ 1.335356 ┆ 6 ┆ 6 │
└─────────────────────────────┴───────────┴──────────────┴───────────┴──────────────────────┴─────────────────────┘
Just for your information: a null threshold means that the classifier doesn’t provide the predict_proba
method.
Among the classifiers that showed an average ratio near 1, LinearDiscriminantAnalysis performs particularly well with thresholds of 0.2 and 0.7. The top three classifiers in terms of average ratio are:
- LinearDiscriminantAnalysis
- PassiveAggressiveClassifier
- LogisticRegression
Now, I want to examine two things:
- Detailed metrics.
- Sentences that were predicted as boundary sentences.
final_clfs = {
'LinearDiscriminantAnalysis': [(lindis_clf, 0.2), (lindis_clf, 0.9)],
'PassiveAggressiveClassifier': [(pass_agg_clf, None)],
'LogisticRegression': [(logreg_clf, 0.3)]
}
def get_metrics_for_clf_and_threshold(clf: str, threshold: t.Optional[float]) -> pl.DataFrame:
clf_metrics = metrics_df.filter(pl.col('clf') == clf)
if threshold is not None:
clf_metrics = clf_metrics.filter(pl.col('threshold') == threshold)
return clf_metrics
_, test_labse_df = split_train_test(ru_labse_ds)
data = test_labse_df[data_columns(test_labse_df, ['ru_sentence', 'en_sentence', 'episode', 'target'])]
for clf_name, vals in final_clfs.items():
for val in vals:
with pl.Config(fmt_str_lengths=200, tbl_width_chars=200, tbl_rows=-1):
print(f'{clf_name:=^130}')
print(get_metrics_for_clf_and_threshold(clf_name, val[1]))
if hasattr(val[0], 'predict_proba'):
preds = val[0].predict_proba(data)
result_df = test_labse_df.hstack([pl.Series('prediction', [int(x > val[1]) for x in preds[:,1]])])
else:
result_df = test_labse_df.hstack([pl.Series('prediction', val[0].predict(data))])
for ep in test_episodes:
episode_result_df = result_df.filter(((pl.col('prediction') == 1) | (pl.col('target') == 1)) & (pl.col('episode')== ep))[['episode', 'ru_sentence', 'en_sentence', 'target', 'prediction']]
title = f'{clf_name}.{ep}'
print(f'{title:-^130}')
print(episode_result_df)
====================================================LinearDiscriminantAnalysis====================================================
shape: (6, 7)
┌────────────────────────────┬─────────┬───────────┬─────────────┬────────────────────────┬───────────────────────────┬──────────┐
│ clf ┆ episode ┆ threshold ┆ window_diff ┆ predicted_topics_count ┆ ground_truth_topics_count ┆ ratio │
│ --- ┆ --- ┆ --- ┆ --- ┆ --- ┆ --- ┆ --- │
│ str ┆ i64 ┆ f64 ┆ f64 ┆ i64 ┆ i64 ┆ f64 │
╞════════════════════════════╪═════════╪═══════════╪═════════════╪════════════════════════╪═══════════════════════════╪══════════╡
│ LinearDiscriminantAnalysis ┆ 410 ┆ 0.2 ┆ 0.299899 ┆ 11 ┆ 17 ┆ 0.647059 │
│ LinearDiscriminantAnalysis ┆ 411 ┆ 0.2 ┆ 0.341202 ┆ 11 ┆ 9 ┆ 1.222222 │
│ LinearDiscriminantAnalysis ┆ 412 ┆ 0.2 ┆ 0.36192 ┆ 12 ┆ 12 ┆ 1.0 │
│ LinearDiscriminantAnalysis ┆ 413 ┆ 0.2 ┆ 0.608662 ┆ 20 ┆ 7 ┆ 2.857143 │
│ LinearDiscriminantAnalysis ┆ 414 ┆ 0.2 ┆ 0.155039 ┆ 9 ┆ 7 ┆ 1.285714 │
│ LinearDiscriminantAnalysis ┆ 415 ┆ 0.2 ┆ 0.275732 ┆ 9 ┆ 9 ┆ 1.0 │
└────────────────────────────┴─────────┴───────────┴─────────────┴────────────────────────┴───────────────────────────┴──────────┘
--------------------------------------------------LinearDiscriminantAnalysis.410--------------------------------------------------
shape: (21, 5)
┌─────────┬───────────────────────────────────────────────────────────────────────────────────┬──────────────────────────────────────────────────────────────────────────────────┬────────┬────────────┐
│ episode ┆ ru_sentence ┆ en_sentence ┆ target ┆ prediction │
│ --- ┆ --- ┆ --- ┆ --- ┆ --- │
│ i64 ┆ str ┆ str ┆ i64 ┆ i64 │
╞═════════╪═══════════════════════════════════════════════════════════════════════════════════╪══════════════════════════════════════════════════════════════════════════════════╪════════╪════════════╡
│ 410 ┆ Всем добрый вечер! ┆ Good evening everyone! ┆ 1 ┆ 1 │
│ 410 ┆ А теперь общая тема, чему мы все научились за эту неделю, и начну ее я, потому ┆ And now the general topic, which we all have learned this week, and I will start ┆ 1 ┆ 0 │
│ ┆ что у меня там тоже есть небольшая темка, потом передам слово Саше и заткнусь. ┆ it, because I also have a small Temka there, then I will give the word to Sasha ┆ ┆ │
│ ┆ ┆ and shut up. ┆ ┆ │
│ 410 ┆ Кроме того, что вышел, даже еще не то что вышел, анонсирован фреймворк для ┆ In addition to the fact that he came out, not only that was announced, the ┆ 1 ┆ 0 │
│ ┆ конкурентного тестирования, нет, как это, для рандомизированного тестирования ┆ framework is announced for competitive testing, there is no, like this, for ┆ ┆ │
│ ┆ конкурентных расплетных систем, который интегри… ┆ randomized testing of competitive weeping systems… ┆ ┆ │
│ 410 ┆ А поскольку никто больше не испытывает из ведущих энтузиазм по поводу Rasta, я ┆ And since no one else is enthusiastic about Rasta, I will take a different topic ┆ 1 ┆ 0 │
│ ┆ возьму другую тему по поводу, которую ведущие в прошлый выпуск не испытывали ┆ about which the presenters in the last release did not feel enthusiasm. ┆ ┆ │
│ ┆ энтузиазмы. ┆ ┆ ┆ │
│ 410 ┆ В прошлый выпуск слушатели принесли тему, которая называлась Future Proofing our ┆ In the last issue, students brought a topic called Future Proofing Oour Metadata ┆ 0 ┆ 1 │
│ ┆ Metadata Stack with Panda от Escalable K-value Store от компании Dropbox. ┆ Stack with Escalable K-Value Store from Dropbox. ┆ ┆ │
│ 410 ┆ Значит, хорошая долгоживущая тема. ┆ So, a good long -lived topic. ┆ 0 ┆ 1 │
│ 410 ┆ А что еще долгоживущая тема, которая у меня в интерфейсе Трелл аж раздвоилась? ┆ And what else is a long -lived topic that my Trelle has already bifurcated in my ┆ 1 ┆ 0 │
│ ┆ ┆ interface? ┆ ┆ │
│ 410 ┆ Поэтому пойдем дальше. ┆ Therefore, let's go further. ┆ 0 ┆ 1 │
│ 410 ┆ А что еще правда полезно, это гид, когда в нем нет уязвимостей. ┆ And what else is really useful, this is a guide when there is no vulnerabilities ┆ 1 ┆ 0 │
│ ┆ ┆ in it. ┆ ┆ │
│ 410 ┆ Вот, а еще в блоге Google Project Zero появился пост про эксплуатацию ┆ So, and the Google Project Zero blog has a post on the operation of the seizure ┆ 1 ┆ 0 │
│ ┆ разыменования пустого указателя в ядре Linux. ┆ of an empty pointer in the Linux nucleus. ┆ ┆ │
│ 410 ┆ Дальше снова тема от меня, подозрительно новый тема от меня идет подряд. ┆ Further again the topic is from me, a suspiciously new topic from me is in a ┆ 1 ┆ 1 │
│ ┆ ┆ row. ┆ ┆ │
│ 410 ┆ Первая тема в закладке это видео. ┆ The first topic in the bookmark is the video. ┆ 1 ┆ 0 │
│ 410 ┆ Вторая тема в закладке, которая у меня есть, это веб-издание, а также веб-сайт ┆ The second theme in the bookmark that I have is the web publication, as well as ┆ 1 ┆ 0 │
│ ┆ howqueryenginework.com, автор Andy Go. ┆ the website Howqueryenginework.com, Author and GO. ┆ ┆ │
│ 410 ┆ Окей, я думаю, можно двигаться дальше, я возвращаю слово Сашу, у него еще есть ┆ Okay, I think, you can move on, I return the word to Sasha, he still has two ┆ 0 ┆ 1 │
│ ┆ две темы небольшие. ┆ topics. ┆ ┆ │
│ 410 ┆ Мы поговорим с вами про железки. ┆ We will talk with you about iron. ┆ 1 ┆ 1 │
│ 410 ┆ А мы переходим к следующей теме, которая тоже про Risk 5, поэтому, Вань, ты не ┆ And we move on to the next topic, which is also about Risk 5, so, Van, you do ┆ 1 ┆ 1 │
│ ┆ расслабляйся, ты еще можешь набросить. ┆ not relax, you can still throw it. ┆ ┆ │
│ 410 ┆ Что ж, настало это время, это время тем наших дорогих слушателей. ┆ Well, this time has come, this is the time of those of our dear listeners. ┆ 1 ┆ 1 │
│ 410 ┆ Дальше тема от слушателя без никнейма, коварного слушателя Bimyaq user name. ┆ Further, the topic is from the listener without a nickname, the insidious ┆ 0 ┆ 1 │
│ ┆ ┆ listener Bimyaq User Name. ┆ ┆ │
│ 410 ┆ я обычно пользуюсь из английского немецкий а он какие языки вообще знает? ну ты ┆ I usually use German from English and what languages do he generally know? well, ┆ 1 ┆ 0 │
│ ┆ спроси открой да посмотри Dipple.com понял сейчас погляжу если ни у кого больше ┆ ask, open and look at Dipple.com now I will see if no one else has nothing to ┆ ┆ │
│ ┆ нечего добавить я предлагаю плавно перет… ┆ add from anyone, I propose to flow smoo… ┆ ┆ │
│ 410 ┆ ссылку на монстр лабо в чат если кому-то интересно давайте пойдем по геймзену ┆ Link to Monster Labo in chat if someone is interested, let's go on the game, ┆ 1 ┆ 0 │
│ ┆ наконец я сегодня две игры первая игра называется immortality это будет ┆ finally, Two games first game is called immortaly, this will be a short review ┆ ┆ │
│ ┆ коротенький обзор это такой просто то чем восхищал… ┆ is so just what many Revolutionaries admired… ┆ ┆ │
│ 410 ┆ из худших решений, которые я когда-либо видел в интерфейсах я не понимаю почему ┆ Of the worst solutions that I have ever seen in the interfaces, I don’t ┆ 1 ┆ 0 │
│ ┆ просто игру не заклевали ревьюверы просто за это некоторые даже называли это ┆ understand why the Revuvens just didn’t cut the game just for this, some even ┆ ┆ │
│ ┆ интересным и удобным решением, не знаю, я п… ┆ called it an interesting and convenient solution, … ┆ ┆ │
└─────────┴───────────────────────────────────────────────────────────────────────────────────┴──────────────────────────────────────────────────────────────────────────────────┴────────┴────────────┘
--------------------------------------------------LinearDiscriminantAnalysis.411--------------------------------------------------
shape: (14, 5)
┌─────────┬──────────────────────────────────────────────────────────────────────────────────┬───────────────────────────────────────────────────────────────────────────────┬────────┬────────────┐
│ episode ┆ ru_sentence ┆ en_sentence ┆ target ┆ prediction │
│ --- ┆ --- ┆ --- ┆ --- ┆ --- │
│ i64 ┆ str ┆ str ┆ i64 ┆ i64 │
╞═════════╪══════════════════════════════════════════════════════════════════════════════════╪═══════════════════════════════════════════════════════════════════════════════╪════════╪════════════╡
│ 411 ┆ И всем привет! ┆ And hello everyone! ┆ 1 ┆ 1 │
│ 411 ┆ И с вами снова подкаст DevZem. ┆ And with you again, the Devzem Podkast. ┆ 0 ┆ 1 │
│ 411 ┆ И тогда поехали по темам, я пытаюсь перетащить на своем телефоне. ┆ And then we went on topics, I try to drag on my phone. ┆ 0 ┆ 1 │
│ 411 ┆ Ну что, тогда раз мы разобрали, о чем мы научились за неделю, давайте может быть ┆ Well, then, once we made out what we have learned in a week, let's understand ┆ 1 ┆ 0 │
│ ┆ поймем, о чем мы заучились больше, чем за неделю. ┆ what we memorized more than a week. ┆ ┆ │
│ 411 ┆ Так, тогда поехали на следующую тему. ┆ So, then we went to the next topic. ┆ 1 ┆ 1 │
│ 411 ┆ Поэтому давай быстрее перейдем к следующей теме. ┆ Therefore, let's go faster to the next topic. ┆ 0 ┆ 1 │
│ 411 ┆ Так, следующая тема моя. ┆ So, the next topic is mine. ┆ 1 ┆ 1 │
│ 411 ┆ А вот что вовсе не скрыто? ┆ But what is not hidden at all? ┆ 1 ┆ 0 │
│ 411 ┆ Отлично, ну раз одно видео мы обсудили, давай может другое видео обсудим. ┆ Great, well, since we discussed one video, let's discuss another video. ┆ 1 ┆ 0 │
│ 411 ┆ Тогда пошли к темам слушателей. ┆ Then we went to the topics of the listeners. ┆ 1 ┆ 1 │
│ 411 ┆ Так, следующая тема. ┆ So, the next topic. ┆ 0 ┆ 1 │
│ 411 ┆ Тема это про дейтабейс в 2002 году a year in review. ┆ The topic is about Deutabase in 2002 a year in review. ┆ 0 ┆ 1 │
│ 411 ┆ А давайте добавим подкаст в Spotify. ┆ And let's add a podcast to Spotify. ┆ 1 ┆ 0 │
│ 411 ┆ Так, подожди, стой, это следующая тема, предыдущая тема еще не закончили. ┆ So, wait, wait, this is the next topic, the previous topic has not yet ended. ┆ 0 ┆ 1 │
└─────────┴──────────────────────────────────────────────────────────────────────────────────┴───────────────────────────────────────────────────────────────────────────────┴────────┴────────────┘
--------------------------------------------------LinearDiscriminantAnalysis.412--------------------------------------------------
shape: (18, 5)
┌─────────┬───────────────────────────────────────────────────────────────────────────────────┬──────────────────────────────────────────────────────────────────────────────────┬────────┬────────────┐
│ episode ┆ ru_sentence ┆ en_sentence ┆ target ┆ prediction │
│ --- ┆ --- ┆ --- ┆ --- ┆ --- │
│ i64 ┆ str ┆ str ┆ i64 ┆ i64 │
╞═════════╪═══════════════════════════════════════════════════════════════════════════════════╪══════════════════════════════════════════════════════════════════════════════════╪════════╪════════════╡
│ 412 ┆ Всем привет! ┆ Hi all! ┆ 1 ┆ 1 │
│ 412 ┆ Вы слушаете подкаст DevZen выпуск номер 412, записанный 6 февраля 2023 года. ┆ You listen to the Devzen podcast issue number 412, recorded on February 6, 2023. ┆ 0 ┆ 1 │
│ 412 ┆ Всем привет! ┆ Hi all! ┆ 0 ┆ 1 │
│ 412 ┆ А мы переходим к нашим темам. ┆ And we go to our topics. ┆ 0 ┆ 1 │
│ 412 ┆ Мы переходим к нашим темам. ┆ We go to our topics. ┆ 0 ┆ 1 │
│ 412 ┆ У нас есть дальше интересная тема. ┆ We have an interesting topic further. ┆ 0 ┆ 1 │
│ 412 ┆ Я думаю, Алекс просто скромничает, потому что он пришел к нам не с пустыми ┆ I think Alex is just modest, because he came to us not empty-handed, so he wants ┆ 1 ┆ 0 │
│ ┆ руками, вот он про гид что-то хочет рассказать. ┆ to tell something about the guide. ┆ ┆ │
│ 412 ┆ Спасибо, у меня тоже есть эраты, мы раньше говорили про одноплатники на Risk5, ┆ Thank you, I also have erata, we used to talk about one -payers on RISK5, is ┆ 1 ┆ 0 │
│ ┆ называется Vision5.2, и эрата заключается в том, что похоже спрос превысил ┆ called Vision5.2, and Erata is that the demand seems to exceed the offer, and ┆ ┆ │
│ ┆ предложение, и продавец на Aliexpress теперь р… ┆ the seller on Aliexpress now sends customers … ┆ ┆ │
│ 412 ┆ Кто еще офигевает? ┆ Who else is coming out? ┆ 1 ┆ 0 │
│ 412 ┆ А что еще прекрасно? ┆ And what else is fine? ┆ 1 ┆ 0 │
│ 412 ┆ Следующая тема про Executives. ┆ The next topic about executives. ┆ 1 ┆ 1 │
│ 412 ┆ А какие еще приходят мысли в голову? ┆ What other thoughts come to mind? ┆ 1 ┆ 0 │
│ 412 ┆ Что еще можно показать? ┆ What else can be shown? ┆ 1 ┆ 0 │
│ 412 ┆ Что еще можно развернуть вполне, эта тема в закладке нет для пересказа. ┆ What else can be expanded, this topic is not in the bookmark for retelling. ┆ 1 ┆ 0 │
│ 412 ┆ А что еще у меня в коротких темах, это доклады серии Advanced Database Systems ┆ And what else do I have in short topics are reports of the Advanced Database ┆ 1 ┆ 1 │
│ ┆ 2020 года курс читает Энди Павла в этот раз. ┆ Systems series 2020 reads the course of Andy Pavel this time. ┆ ┆ │
│ 412 ┆ Ну и ладно, пойдем тогда по темам наших слушателей. ┆ Well, okay, then let's follow the topics of our listeners. ┆ 1 ┆ 1 │
│ 412 ┆ По темам наших слушателей. ┆ On the topics of our listeners. ┆ 0 ┆ 1 │
│ 412 ┆ Пойдем, пойдем по темам очевоевых две. ┆ Let's go, let's go on the topics of the Okhovoyvoy. ┆ 0 ┆ 1 │
└─────────┴───────────────────────────────────────────────────────────────────────────────────┴──────────────────────────────────────────────────────────────────────────────────┴────────┴────────────┘
--------------------------------------------------LinearDiscriminantAnalysis.413--------------------------------------------------
shape: (20, 5)
┌─────────┬───────────────────────────────────────────────────────────────────────────────────┬──────────────────────────────────────────────────────────────────────────────────┬────────┬────────────┐
│ episode ┆ ru_sentence ┆ en_sentence ┆ target ┆ prediction │
│ --- ┆ --- ┆ --- ┆ --- ┆ --- │
│ i64 ┆ str ┆ str ┆ i64 ┆ i64 │
╞═════════╪═══════════════════════════════════════════════════════════════════════════════════╪══════════════════════════════════════════════════════════════════════════════════╪════════╪════════════╡
│ 413 ┆ Всем привет и с вами снова Каздев Зен. ┆ Hello everyone and Kazdev Zen with you again. ┆ 1 ┆ 1 │
│ 413 ┆ И давайте пойдем дальше послушать ли моего поведущего. ┆ And let's go further to listen to my behavior. ┆ 0 ┆ 1 │
│ 413 ┆ И мы начинаем двигаться по темам. ┆ And we begin to move on topics. ┆ 0 ┆ 1 │
│ 413 ┆ И первой темой выступает тема... ┆ And the first topic is the topic ... ┆ 0 ┆ 1 │
│ 413 ┆ И на этом мы заканчиваем тему, что мы уже такое прошли за неделю, и темам, ┆ And on this we are ending the topic that we have already passed in a week, and ┆ 0 ┆ 1 │
│ ┆ которые дальше. ┆ topics that are further. ┆ ┆ │
│ 413 ┆ А следующей темой у нас тема про базу данных. ┆ And the next topic we have a topic about the database. ┆ 1 ┆ 1 │
│ 413 ┆ Ну и раз мы все так здорово все обсудили, пошли к следующей теме. ┆ Well, since we all discussed everything so cool, we went to the next topic. ┆ 1 ┆ 1 │
│ 413 ┆ И мы перейдем к следующей теме. ┆ And we will move on to the next topic. ┆ 0 ┆ 1 │
│ 413 ┆ Вот, а что еще, и с тем, не про базу данных и не про игры, чтобы разбавить. ┆ Here, but what else, and with that, not about the database and not about the ┆ 1 ┆ 0 │
│ ┆ ┆ games, to dilute. ┆ ┆ │
│ 413 ┆ К потребителям вашего сайта. ┆ To the consumers of your site. ┆ 0 ┆ 1 │
│ 413 ┆ И тогда поехали к следующей теме. ┆ And then we went to the next topic. ┆ 0 ┆ 1 │
│ 413 ┆ Приходим к темам слушателей. ┆ We come to the topics of the listeners. ┆ 1 ┆ 1 │
│ 413 ┆ Следующая тема это Иван Аванов, уважаемое комьюнити. ┆ The next topic is Ivan Avanov, dear community. ┆ 0 ┆ 1 │
│ 413 ┆ Следующий вопрос, большой, длинный вопрос. ┆ The next question is a big, long question. ┆ 0 ┆ 1 │
│ 413 ┆ Следующий шаг, мы эти запросы, которые мы тогда прогнали на RedReplica, мы их ┆ The next step, we are these requests that we then driven to Redreplica, we ┆ 0 ┆ 1 │
│ ┆ периодически делаем и гоняем... ┆ periodically make them and drive them ... ┆ ┆ │
│ 413 ┆ Поехали к следующему вопросу. ┆ Let's go to the next issue. ┆ 0 ┆ 1 │
│ 413 ┆ Следующая тема. ┆ The next topic. ┆ 0 ┆ 1 │
│ 413 ┆ И это была последняя тема, поэтому мы заканчиваем с обычной частью и переходим к ┆ And this was the last topic, so we finish with the usual part and go to Gamezen. ┆ 1 ┆ 1 │
│ ┆ GameZen. ┆ ┆ ┆ │
│ 413 ┆ А мы обсуждаем, да, мы переходим к рублике GameZen, точнее Retro GameZen. ┆ And we are discussing, yes, we go to the Gamezen Rup, or rather Retro Gamezen. ┆ 0 ┆ 1 │
│ 413 ┆ Вторую часть этой темы я хочу посвятить устройству под названием Nintendo Game & ┆ I want to devote the second part of this topic to the device called Nintendo ┆ 0 ┆ 1 │
│ ┆ Watch. ┆ Game & Watch. ┆ ┆ │
└─────────┴───────────────────────────────────────────────────────────────────────────────────┴──────────────────────────────────────────────────────────────────────────────────┴────────┴────────────┘
--------------------------------------------------LinearDiscriminantAnalysis.414--------------------------------------------------
shape: (10, 5)
┌─────────┬────────────────────────────────────────────────────────────┬─────────────────────────────────────────────────────────────────┬────────┬────────────┐
│ episode ┆ ru_sentence ┆ en_sentence ┆ target ┆ prediction │
│ --- ┆ --- ┆ --- ┆ --- ┆ --- │
│ i64 ┆ str ┆ str ┆ i64 ┆ i64 │
╞═════════╪════════════════════════════════════════════════════════════╪═════════════════════════════════════════════════════════════════╪════════╪════════════╡
│ 414 ┆ Всем снова привет! ┆ Hello everyone again! ┆ 1 ┆ 0 │
│ 414 ┆ С вами подкаст DevZen. ┆ With you is Devzen Podkast. ┆ 0 ┆ 1 │
│ 414 ┆ И мы постепенно тогда переходим на тему с гостем. ┆ And we are gradually moving on the topic with a guest. ┆ 1 ┆ 1 │
│ 414 ┆ Или пойдем сразу по твоей теме, которую ты принес с собой? ┆ Or let's go right away on your topic that you brought with you? ┆ 0 ┆ 1 │
│ 414 ┆ Давай тогда по теме. ┆ Then come on on the topic. ┆ 0 ┆ 1 │
│ 414 ┆ Тогда может быть пойдем дальше по темам? ┆ Then maybe let's go further on topics? ┆ 1 ┆ 1 │
│ 414 ┆ Ну да ладно, пойдем дальше. ┆ Well, okay, let's go further. ┆ 1 ┆ 0 │
│ 414 ┆ Поэтому мы перейдем к темам наших слушателей. ┆ Therefore, we will move on to the topics of our listeners. ┆ 1 ┆ 1 │
│ 414 ┆ Темы наших слушателей. ┆ Topics of our listeners. ┆ 0 ┆ 1 │
│ 414 ┆ А теперь переходим к game zen. ┆ Now we go to Game Zen. ┆ 1 ┆ 1 │
└─────────┴────────────────────────────────────────────────────────────┴─────────────────────────────────────────────────────────────────┴────────┴────────────┘
--------------------------------------------------LinearDiscriminantAnalysis.415--------------------------------------------------
shape: (11, 5)
┌─────────┬───────────────────────────────────────────────────────────────────────────────────┬──────────────────────────────────────────────────────────────────────────────────┬────────┬────────────┐
│ episode ┆ ru_sentence ┆ en_sentence ┆ target ┆ prediction │
│ --- ┆ --- ┆ --- ┆ --- ┆ --- │
│ i64 ┆ str ┆ str ┆ i64 ┆ i64 │
╞═════════╪═══════════════════════════════════════════════════════════════════════════════════╪══════════════════════════════════════════════════════════════════════════════════╪════════╪════════════╡
│ 415 ┆ Всем привет. ┆ Hi all. ┆ 1 ┆ 1 │
│ 415 ┆ Я предлагаю плавно переходить к тему, которую нам Никита принес, и первая тема ┆ I propose to smoothly go to the topic that Nikita brought us, and the first ┆ 1 ┆ 0 │
│ ┆ про чат GPT, что ты хочешь про него нам повернуть? ┆ topic about the GPT chat, what do you want to turn about him? ┆ ┆ │
│ 415 ┆ Как будто бы тема себя исчерпала, а еще Никита нам принес что-то про SKA, SkyPost ┆ As if the topic has exhausted itself, and Nikita brought us something about SKA, ┆ 1 ┆ 0 │
│ ┆ компонентов, это уже то, что мы обсудили, или это что-то иное? ┆ SkyPost components, is this already what we discussed, or is it something else? ┆ ┆ │
│ 415 ┆ А я думаю, мы потихонечку будем перетекать в следующие темы, тем более, мы ┆ And I think we will slowly flow into the following topics, all the more, we have ┆ 1 ┆ 1 │
│ ┆ наговорили уже прилично почти на час. ┆ said decently for almost an hour. ┆ ┆ │
│ 415 ┆ Всем привет. ┆ Hi all. ┆ 0 ┆ 1 │
│ 415 ┆ Ну что ж, в таком случае мы переходим к следующим темам. ┆ Well, in this case, we move on to the following topics. ┆ 1 ┆ 1 │
│ 415 ┆ А дальше у нас лекции серии Advanced Data By Systems. ┆ And then we have lectures by the Advanced Data by Systems series. ┆ 0 ┆ 1 │
│ 415 ┆ А следующая наша тема про, ну на самом деле это не тема, это так одной строкой. ┆ And our next theme of pro, well, in fact, this is not a topic, this is so one ┆ 1 ┆ 1 │
│ ┆ ┆ line. ┆ ┆ │
│ 415 ┆ Что еще логично, это перейти к темам и вопросам слушателей. ┆ What else is logical is to move on to the topics and issues of listeners. ┆ 0 ┆ 1 │
│ 415 ┆ Давайте дальше пользоваться. ┆ Let's use it further. ┆ 1 ┆ 0 │
│ 415 ┆ И мы переходим к GameZen'у. ┆ And we go to Gamezen. ┆ 1 ┆ 1 │
└─────────┴───────────────────────────────────────────────────────────────────────────────────┴──────────────────────────────────────────────────────────────────────────────────┴────────┴────────────┘
====================================================LinearDiscriminantAnalysis====================================================
shape: (6, 7)
┌────────────────────────────┬─────────┬───────────┬─────────────┬────────────────────────┬───────────────────────────┬──────────┐
│ clf ┆ episode ┆ threshold ┆ window_diff ┆ predicted_topics_count ┆ ground_truth_topics_count ┆ ratio │
│ --- ┆ --- ┆ --- ┆ --- ┆ --- ┆ --- ┆ --- │
│ str ┆ i64 ┆ f64 ┆ f64 ┆ i64 ┆ i64 ┆ f64 │
╞════════════════════════════╪═════════╪═══════════╪═════════════╪════════════════════════╪═══════════════════════════╪══════════╡
│ LinearDiscriminantAnalysis ┆ 410 ┆ 0.9 ┆ 0.339412 ┆ 6 ┆ 17 ┆ 0.352941 │
│ LinearDiscriminantAnalysis ┆ 411 ┆ 0.9 ┆ 0.341202 ┆ 10 ┆ 9 ┆ 1.111111 │
│ LinearDiscriminantAnalysis ┆ 412 ┆ 0.9 ┆ 0.36192 ┆ 12 ┆ 12 ┆ 1.0 │
│ LinearDiscriminantAnalysis ┆ 413 ┆ 0.9 ┆ 0.406032 ┆ 15 ┆ 7 ┆ 2.142857 │
│ LinearDiscriminantAnalysis ┆ 414 ┆ 0.9 ┆ 0.155039 ┆ 9 ┆ 7 ┆ 1.285714 │
│ LinearDiscriminantAnalysis ┆ 415 ┆ 0.9 ┆ 0.282342 ┆ 8 ┆ 9 ┆ 0.888889 │
└────────────────────────────┴─────────┴───────────┴─────────────┴────────────────────────┴───────────────────────────┴──────────┘
--------------------------------------------------LinearDiscriminantAnalysis.410--------------------------------------------------
shape: (17, 5)
┌─────────┬───────────────────────────────────────────────────────────────────────────────────┬──────────────────────────────────────────────────────────────────────────────────┬────────┬────────────┐
│ episode ┆ ru_sentence ┆ en_sentence ┆ target ┆ prediction │
│ --- ┆ --- ┆ --- ┆ --- ┆ --- │
│ i64 ┆ str ┆ str ┆ i64 ┆ i64 │
╞═════════╪═══════════════════════════════════════════════════════════════════════════════════╪══════════════════════════════════════════════════════════════════════════════════╪════════╪════════════╡
│ 410 ┆ Всем добрый вечер! ┆ Good evening everyone! ┆ 1 ┆ 1 │
│ 410 ┆ А теперь общая тема, чему мы все научились за эту неделю, и начну ее я, потому ┆ And now the general topic, which we all have learned this week, and I will start ┆ 1 ┆ 0 │
│ ┆ что у меня там тоже есть небольшая темка, потом передам слово Саше и заткнусь. ┆ it, because I also have a small Temka there, then I will give the word to Sasha ┆ ┆ │
│ ┆ ┆ and shut up. ┆ ┆ │
│ 410 ┆ Кроме того, что вышел, даже еще не то что вышел, анонсирован фреймворк для ┆ In addition to the fact that he came out, not only that was announced, the ┆ 1 ┆ 0 │
│ ┆ конкурентного тестирования, нет, как это, для рандомизированного тестирования ┆ framework is announced for competitive testing, there is no, like this, for ┆ ┆ │
│ ┆ конкурентных расплетных систем, который интегри… ┆ randomized testing of competitive weeping systems… ┆ ┆ │
│ 410 ┆ А поскольку никто больше не испытывает из ведущих энтузиазм по поводу Rasta, я ┆ And since no one else is enthusiastic about Rasta, I will take a different topic ┆ 1 ┆ 0 │
│ ┆ возьму другую тему по поводу, которую ведущие в прошлый выпуск не испытывали ┆ about which the presenters in the last release did not feel enthusiasm. ┆ ┆ │
│ ┆ энтузиазмы. ┆ ┆ ┆ │
│ 410 ┆ А что еще долгоживущая тема, которая у меня в интерфейсе Трелл аж раздвоилась? ┆ And what else is a long -lived topic that my Trelle has already bifurcated in my ┆ 1 ┆ 0 │
│ ┆ ┆ interface? ┆ ┆ │
│ 410 ┆ А что еще правда полезно, это гид, когда в нем нет уязвимостей. ┆ And what else is really useful, this is a guide when there is no vulnerabilities ┆ 1 ┆ 0 │
│ ┆ ┆ in it. ┆ ┆ │
│ 410 ┆ Вот, а еще в блоге Google Project Zero появился пост про эксплуатацию ┆ So, and the Google Project Zero blog has a post on the operation of the seizure ┆ 1 ┆ 0 │
│ ┆ разыменования пустого указателя в ядре Linux. ┆ of an empty pointer in the Linux nucleus. ┆ ┆ │
│ 410 ┆ Дальше снова тема от меня, подозрительно новый тема от меня идет подряд. ┆ Further again the topic is from me, a suspiciously new topic from me is in a ┆ 1 ┆ 1 │
│ ┆ ┆ row. ┆ ┆ │
│ 410 ┆ Первая тема в закладке это видео. ┆ The first topic in the bookmark is the video. ┆ 1 ┆ 0 │
│ 410 ┆ Вторая тема в закладке, которая у меня есть, это веб-издание, а также веб-сайт ┆ The second theme in the bookmark that I have is the web publication, as well as ┆ 1 ┆ 0 │
│ ┆ howqueryenginework.com, автор Andy Go. ┆ the website Howqueryenginework.com, Author and GO. ┆ ┆ │
│ 410 ┆ Мы поговорим с вами про железки. ┆ We will talk with you about iron. ┆ 1 ┆ 0 │
│ 410 ┆ А мы переходим к следующей теме, которая тоже про Risk 5, поэтому, Вань, ты не ┆ And we move on to the next topic, which is also about Risk 5, so, Van, you do ┆ 1 ┆ 1 │
│ ┆ расслабляйся, ты еще можешь набросить. ┆ not relax, you can still throw it. ┆ ┆ │
│ 410 ┆ Что ж, настало это время, это время тем наших дорогих слушателей. ┆ Well, this time has come, this is the time of those of our dear listeners. ┆ 1 ┆ 1 │
│ 410 ┆ Дальше тема от слушателя без никнейма, коварного слушателя Bimyaq user name. ┆ Further, the topic is from the listener without a nickname, the insidious ┆ 0 ┆ 1 │
│ ┆ ┆ listener Bimyaq User Name. ┆ ┆ │
│ 410 ┆ я обычно пользуюсь из английского немецкий а он какие языки вообще знает? ну ты ┆ I usually use German from English and what languages do he generally know? well, ┆ 1 ┆ 0 │
│ ┆ спроси открой да посмотри Dipple.com понял сейчас погляжу если ни у кого больше ┆ ask, open and look at Dipple.com now I will see if no one else has nothing to ┆ ┆ │
│ ┆ нечего добавить я предлагаю плавно перет… ┆ add from anyone, I propose to flow smoo… ┆ ┆ │
│ 410 ┆ ссылку на монстр лабо в чат если кому-то интересно давайте пойдем по геймзену ┆ Link to Monster Labo in chat if someone is interested, let's go on the game, ┆ 1 ┆ 0 │
│ ┆ наконец я сегодня две игры первая игра называется immortality это будет ┆ finally, Two games first game is called immortaly, this will be a short review ┆ ┆ │
│ ┆ коротенький обзор это такой просто то чем восхищал… ┆ is so just what many Revolutionaries admired… ┆ ┆ │
│ 410 ┆ из худших решений, которые я когда-либо видел в интерфейсах я не понимаю почему ┆ Of the worst solutions that I have ever seen in the interfaces, I don’t ┆ 1 ┆ 0 │
│ ┆ просто игру не заклевали ревьюверы просто за это некоторые даже называли это ┆ understand why the Revuvens just didn’t cut the game just for this, some even ┆ ┆ │
│ ┆ интересным и удобным решением, не знаю, я п… ┆ called it an interesting and convenient solution, … ┆ ┆ │
└─────────┴───────────────────────────────────────────────────────────────────────────────────┴──────────────────────────────────────────────────────────────────────────────────┴────────┴────────────┘
--------------------------------------------------LinearDiscriminantAnalysis.411--------------------------------------------------
shape: (13, 5)
┌─────────┬──────────────────────────────────────────────────────────────────────────────────┬───────────────────────────────────────────────────────────────────────────────┬────────┬────────────┐
│ episode ┆ ru_sentence ┆ en_sentence ┆ target ┆ prediction │
│ --- ┆ --- ┆ --- ┆ --- ┆ --- │
│ i64 ┆ str ┆ str ┆ i64 ┆ i64 │
╞═════════╪══════════════════════════════════════════════════════════════════════════════════╪═══════════════════════════════════════════════════════════════════════════════╪════════╪════════════╡
│ 411 ┆ И всем привет! ┆ And hello everyone! ┆ 1 ┆ 1 │
│ 411 ┆ И тогда поехали по темам, я пытаюсь перетащить на своем телефоне. ┆ And then we went on topics, I try to drag on my phone. ┆ 0 ┆ 1 │
│ 411 ┆ Ну что, тогда раз мы разобрали, о чем мы научились за неделю, давайте может быть ┆ Well, then, once we made out what we have learned in a week, let's understand ┆ 1 ┆ 0 │
│ ┆ поймем, о чем мы заучились больше, чем за неделю. ┆ what we memorized more than a week. ┆ ┆ │
│ 411 ┆ Так, тогда поехали на следующую тему. ┆ So, then we went to the next topic. ┆ 1 ┆ 1 │
│ 411 ┆ Поэтому давай быстрее перейдем к следующей теме. ┆ Therefore, let's go faster to the next topic. ┆ 0 ┆ 1 │
│ 411 ┆ Так, следующая тема моя. ┆ So, the next topic is mine. ┆ 1 ┆ 1 │
│ 411 ┆ А вот что вовсе не скрыто? ┆ But what is not hidden at all? ┆ 1 ┆ 0 │
│ 411 ┆ Отлично, ну раз одно видео мы обсудили, давай может другое видео обсудим. ┆ Great, well, since we discussed one video, let's discuss another video. ┆ 1 ┆ 0 │
│ 411 ┆ Тогда пошли к темам слушателей. ┆ Then we went to the topics of the listeners. ┆ 1 ┆ 1 │
│ 411 ┆ Так, следующая тема. ┆ So, the next topic. ┆ 0 ┆ 1 │
│ 411 ┆ Тема это про дейтабейс в 2002 году a year in review. ┆ The topic is about Deutabase in 2002 a year in review. ┆ 0 ┆ 1 │
│ 411 ┆ А давайте добавим подкаст в Spotify. ┆ And let's add a podcast to Spotify. ┆ 1 ┆ 0 │
│ 411 ┆ Так, подожди, стой, это следующая тема, предыдущая тема еще не закончили. ┆ So, wait, wait, this is the next topic, the previous topic has not yet ended. ┆ 0 ┆ 1 │
└─────────┴──────────────────────────────────────────────────────────────────────────────────┴───────────────────────────────────────────────────────────────────────────────┴────────┴────────────┘
--------------------------------------------------LinearDiscriminantAnalysis.412--------------------------------------------------
shape: (18, 5)
┌─────────┬───────────────────────────────────────────────────────────────────────────────────┬──────────────────────────────────────────────────────────────────────────────────┬────────┬────────────┐
│ episode ┆ ru_sentence ┆ en_sentence ┆ target ┆ prediction │
│ --- ┆ --- ┆ --- ┆ --- ┆ --- │
│ i64 ┆ str ┆ str ┆ i64 ┆ i64 │
╞═════════╪═══════════════════════════════════════════════════════════════════════════════════╪══════════════════════════════════════════════════════════════════════════════════╪════════╪════════════╡
│ 412 ┆ Всем привет! ┆ Hi all! ┆ 1 ┆ 1 │
│ 412 ┆ Вы слушаете подкаст DevZen выпуск номер 412, записанный 6 февраля 2023 года. ┆ You listen to the Devzen podcast issue number 412, recorded on February 6, 2023. ┆ 0 ┆ 1 │
│ 412 ┆ Всем привет! ┆ Hi all! ┆ 0 ┆ 1 │
│ 412 ┆ А мы переходим к нашим темам. ┆ And we go to our topics. ┆ 0 ┆ 1 │
│ 412 ┆ Мы переходим к нашим темам. ┆ We go to our topics. ┆ 0 ┆ 1 │
│ 412 ┆ У нас есть дальше интересная тема. ┆ We have an interesting topic further. ┆ 0 ┆ 1 │
│ 412 ┆ Я думаю, Алекс просто скромничает, потому что он пришел к нам не с пустыми ┆ I think Alex is just modest, because he came to us not empty-handed, so he wants ┆ 1 ┆ 0 │
│ ┆ руками, вот он про гид что-то хочет рассказать. ┆ to tell something about the guide. ┆ ┆ │
│ 412 ┆ Спасибо, у меня тоже есть эраты, мы раньше говорили про одноплатники на Risk5, ┆ Thank you, I also have erata, we used to talk about one -payers on RISK5, is ┆ 1 ┆ 0 │
│ ┆ называется Vision5.2, и эрата заключается в том, что похоже спрос превысил ┆ called Vision5.2, and Erata is that the demand seems to exceed the offer, and ┆ ┆ │
│ ┆ предложение, и продавец на Aliexpress теперь р… ┆ the seller on Aliexpress now sends customers … ┆ ┆ │
│ 412 ┆ Кто еще офигевает? ┆ Who else is coming out? ┆ 1 ┆ 0 │
│ 412 ┆ А что еще прекрасно? ┆ And what else is fine? ┆ 1 ┆ 0 │
│ 412 ┆ Следующая тема про Executives. ┆ The next topic about executives. ┆ 1 ┆ 1 │
│ 412 ┆ А какие еще приходят мысли в голову? ┆ What other thoughts come to mind? ┆ 1 ┆ 0 │
│ 412 ┆ Что еще можно показать? ┆ What else can be shown? ┆ 1 ┆ 0 │
│ 412 ┆ Что еще можно развернуть вполне, эта тема в закладке нет для пересказа. ┆ What else can be expanded, this topic is not in the bookmark for retelling. ┆ 1 ┆ 0 │
│ 412 ┆ А что еще у меня в коротких темах, это доклады серии Advanced Database Systems ┆ And what else do I have in short topics are reports of the Advanced Database ┆ 1 ┆ 1 │
│ ┆ 2020 года курс читает Энди Павла в этот раз. ┆ Systems series 2020 reads the course of Andy Pavel this time. ┆ ┆ │
│ 412 ┆ Ну и ладно, пойдем тогда по темам наших слушателей. ┆ Well, okay, then let's follow the topics of our listeners. ┆ 1 ┆ 1 │
│ 412 ┆ По темам наших слушателей. ┆ On the topics of our listeners. ┆ 0 ┆ 1 │
│ 412 ┆ Пойдем, пойдем по темам очевоевых две. ┆ Let's go, let's go on the topics of the Okhovoyvoy. ┆ 0 ┆ 1 │
└─────────┴───────────────────────────────────────────────────────────────────────────────────┴──────────────────────────────────────────────────────────────────────────────────┴────────┴────────────┘
--------------------------------------------------LinearDiscriminantAnalysis.413--------------------------------------------------
shape: (15, 5)
┌─────────┬───────────────────────────────────────────────────────────────────────────────────┬──────────────────────────────────────────────────────────────────────────────────┬────────┬────────────┐
│ episode ┆ ru_sentence ┆ en_sentence ┆ target ┆ prediction │
│ --- ┆ --- ┆ --- ┆ --- ┆ --- │
│ i64 ┆ str ┆ str ┆ i64 ┆ i64 │
╞═════════╪═══════════════════════════════════════════════════════════════════════════════════╪══════════════════════════════════════════════════════════════════════════════════╪════════╪════════════╡
│ 413 ┆ Всем привет и с вами снова Каздев Зен. ┆ Hello everyone and Kazdev Zen with you again. ┆ 1 ┆ 1 │
│ 413 ┆ И мы начинаем двигаться по темам. ┆ And we begin to move on topics. ┆ 0 ┆ 1 │
│ 413 ┆ И первой темой выступает тема... ┆ And the first topic is the topic ... ┆ 0 ┆ 1 │
│ 413 ┆ И на этом мы заканчиваем тему, что мы уже такое прошли за неделю, и темам, ┆ And on this we are ending the topic that we have already passed in a week, and ┆ 0 ┆ 1 │
│ ┆ которые дальше. ┆ topics that are further. ┆ ┆ │
│ 413 ┆ А следующей темой у нас тема про базу данных. ┆ And the next topic we have a topic about the database. ┆ 1 ┆ 1 │
│ 413 ┆ Ну и раз мы все так здорово все обсудили, пошли к следующей теме. ┆ Well, since we all discussed everything so cool, we went to the next topic. ┆ 1 ┆ 1 │
│ 413 ┆ И мы перейдем к следующей теме. ┆ And we will move on to the next topic. ┆ 0 ┆ 1 │
│ 413 ┆ Вот, а что еще, и с тем, не про базу данных и не про игры, чтобы разбавить. ┆ Here, but what else, and with that, not about the database and not about the ┆ 1 ┆ 0 │
│ ┆ ┆ games, to dilute. ┆ ┆ │
│ 413 ┆ И тогда поехали к следующей теме. ┆ And then we went to the next topic. ┆ 0 ┆ 1 │
│ 413 ┆ Приходим к темам слушателей. ┆ We come to the topics of the listeners. ┆ 1 ┆ 1 │
│ 413 ┆ Следующая тема это Иван Аванов, уважаемое комьюнити. ┆ The next topic is Ivan Avanov, dear community. ┆ 0 ┆ 1 │
│ 413 ┆ Следующий вопрос, большой, длинный вопрос. ┆ The next question is a big, long question. ┆ 0 ┆ 1 │
│ 413 ┆ Поехали к следующему вопросу. ┆ Let's go to the next issue. ┆ 0 ┆ 1 │
│ 413 ┆ Следующая тема. ┆ The next topic. ┆ 0 ┆ 1 │
│ 413 ┆ И это была последняя тема, поэтому мы заканчиваем с обычной частью и переходим к ┆ And this was the last topic, so we finish with the usual part and go to Gamezen. ┆ 1 ┆ 1 │
│ ┆ GameZen. ┆ ┆ ┆ │
└─────────┴───────────────────────────────────────────────────────────────────────────────────┴──────────────────────────────────────────────────────────────────────────────────┴────────┴────────────┘
--------------------------------------------------LinearDiscriminantAnalysis.414--------------------------------------------------
shape: (10, 5)
┌─────────┬────────────────────────────────────────────────────────────┬─────────────────────────────────────────────────────────────────┬────────┬────────────┐
│ episode ┆ ru_sentence ┆ en_sentence ┆ target ┆ prediction │
│ --- ┆ --- ┆ --- ┆ --- ┆ --- │
│ i64 ┆ str ┆ str ┆ i64 ┆ i64 │
╞═════════╪════════════════════════════════════════════════════════════╪═════════════════════════════════════════════════════════════════╪════════╪════════════╡
│ 414 ┆ Всем снова привет! ┆ Hello everyone again! ┆ 1 ┆ 0 │
│ 414 ┆ С вами подкаст DevZen. ┆ With you is Devzen Podkast. ┆ 0 ┆ 1 │
│ 414 ┆ И мы постепенно тогда переходим на тему с гостем. ┆ And we are gradually moving on the topic with a guest. ┆ 1 ┆ 1 │
│ 414 ┆ Или пойдем сразу по твоей теме, которую ты принес с собой? ┆ Or let's go right away on your topic that you brought with you? ┆ 0 ┆ 1 │
│ 414 ┆ Давай тогда по теме. ┆ Then come on on the topic. ┆ 0 ┆ 1 │
│ 414 ┆ Тогда может быть пойдем дальше по темам? ┆ Then maybe let's go further on topics? ┆ 1 ┆ 1 │
│ 414 ┆ Ну да ладно, пойдем дальше. ┆ Well, okay, let's go further. ┆ 1 ┆ 0 │
│ 414 ┆ Поэтому мы перейдем к темам наших слушателей. ┆ Therefore, we will move on to the topics of our listeners. ┆ 1 ┆ 1 │
│ 414 ┆ Темы наших слушателей. ┆ Topics of our listeners. ┆ 0 ┆ 1 │
│ 414 ┆ А теперь переходим к game zen. ┆ Now we go to Game Zen. ┆ 1 ┆ 1 │
└─────────┴────────────────────────────────────────────────────────────┴─────────────────────────────────────────────────────────────────┴────────┴────────────┘
--------------------------------------------------LinearDiscriminantAnalysis.415--------------------------------------------------
shape: (11, 5)
┌─────────┬───────────────────────────────────────────────────────────────────────────────────┬──────────────────────────────────────────────────────────────────────────────────┬────────┬────────────┐
│ episode ┆ ru_sentence ┆ en_sentence ┆ target ┆ prediction │
│ --- ┆ --- ┆ --- ┆ --- ┆ --- │
│ i64 ┆ str ┆ str ┆ i64 ┆ i64 │
╞═════════╪═══════════════════════════════════════════════════════════════════════════════════╪══════════════════════════════════════════════════════════════════════════════════╪════════╪════════════╡
│ 415 ┆ Всем привет. ┆ Hi all. ┆ 1 ┆ 1 │
│ 415 ┆ Я предлагаю плавно переходить к тему, которую нам Никита принес, и первая тема ┆ I propose to smoothly go to the topic that Nikita brought us, and the first ┆ 1 ┆ 0 │
│ ┆ про чат GPT, что ты хочешь про него нам повернуть? ┆ topic about the GPT chat, what do you want to turn about him? ┆ ┆ │
│ 415 ┆ Как будто бы тема себя исчерпала, а еще Никита нам принес что-то про SKA, SkyPost ┆ As if the topic has exhausted itself, and Nikita brought us something about SKA, ┆ 1 ┆ 0 │
│ ┆ компонентов, это уже то, что мы обсудили, или это что-то иное? ┆ SkyPost components, is this already what we discussed, or is it something else? ┆ ┆ │
│ 415 ┆ А я думаю, мы потихонечку будем перетекать в следующие темы, тем более, мы ┆ And I think we will slowly flow into the following topics, all the more, we have ┆ 1 ┆ 0 │
│ ┆ наговорили уже прилично почти на час. ┆ said decently for almost an hour. ┆ ┆ │
│ 415 ┆ Всем привет. ┆ Hi all. ┆ 0 ┆ 1 │
│ 415 ┆ Ну что ж, в таком случае мы переходим к следующим темам. ┆ Well, in this case, we move on to the following topics. ┆ 1 ┆ 1 │
│ 415 ┆ А дальше у нас лекции серии Advanced Data By Systems. ┆ And then we have lectures by the Advanced Data by Systems series. ┆ 0 ┆ 1 │
│ 415 ┆ А следующая наша тема про, ну на самом деле это не тема, это так одной строкой. ┆ And our next theme of pro, well, in fact, this is not a topic, this is so one ┆ 1 ┆ 1 │
│ ┆ ┆ line. ┆ ┆ │
│ 415 ┆ Что еще логично, это перейти к темам и вопросам слушателей. ┆ What else is logical is to move on to the topics and issues of listeners. ┆ 0 ┆ 1 │
│ 415 ┆ Давайте дальше пользоваться. ┆ Let's use it further. ┆ 1 ┆ 0 │
│ 415 ┆ И мы переходим к GameZen'у. ┆ And we go to Gamezen. ┆ 1 ┆ 1 │
└─────────┴───────────────────────────────────────────────────────────────────────────────────┴──────────────────────────────────────────────────────────────────────────────────┴────────┴────────────┘
===================================================PassiveAggressiveClassifier====================================================
shape: (6, 7)
┌─────────────────────────────┬─────────┬───────────┬─────────────┬────────────────────────┬───────────────────────────┬──────────┐
│ clf ┆ episode ┆ threshold ┆ window_diff ┆ predicted_topics_count ┆ ground_truth_topics_count ┆ ratio │
│ --- ┆ --- ┆ --- ┆ --- ┆ --- ┆ --- ┆ --- │
│ str ┆ i64 ┆ f64 ┆ f64 ┆ i64 ┆ i64 ┆ f64 │
╞═════════════════════════════╪═════════╪═══════════╪═════════════╪════════════════════════╪═══════════════════════════╪══════════╡
│ PassiveAggressiveClassifier ┆ 410 ┆ null ┆ 0.370821 ┆ 4 ┆ 17 ┆ 0.235294 │
│ PassiveAggressiveClassifier ┆ 411 ┆ null ┆ 0.395923 ┆ 10 ┆ 9 ┆ 1.111111 │
│ PassiveAggressiveClassifier ┆ 412 ┆ null ┆ 0.373721 ┆ 6 ┆ 12 ┆ 0.5 │
│ PassiveAggressiveClassifier ┆ 413 ┆ null ┆ 0.383604 ┆ 12 ┆ 7 ┆ 1.714286 │
│ PassiveAggressiveClassifier ┆ 414 ┆ null ┆ 0.245478 ┆ 9 ┆ 7 ┆ 1.285714 │
│ PassiveAggressiveClassifier ┆ 415 ┆ null ┆ 0.142587 ┆ 6 ┆ 9 ┆ 0.666667 │
└─────────────────────────────┴─────────┴───────────┴─────────────┴────────────────────────┴───────────────────────────┴──────────┘
-------------------------------------------------PassiveAggressiveClassifier.410--------------------------------------------------
shape: (18, 5)
┌─────────┬───────────────────────────────────────────────────────────────────────────────────┬──────────────────────────────────────────────────────────────────────────────────┬────────┬────────────┐
│ episode ┆ ru_sentence ┆ en_sentence ┆ target ┆ prediction │
│ --- ┆ --- ┆ --- ┆ --- ┆ --- │
│ i64 ┆ str ┆ str ┆ i64 ┆ i64 │
╞═════════╪═══════════════════════════════════════════════════════════════════════════════════╪══════════════════════════════════════════════════════════════════════════════════╪════════╪════════════╡
│ 410 ┆ Всем добрый вечер! ┆ Good evening everyone! ┆ 1 ┆ 0 │
│ 410 ┆ А теперь общая тема, чему мы все научились за эту неделю, и начну ее я, потому ┆ And now the general topic, which we all have learned this week, and I will start ┆ 1 ┆ 0 │
│ ┆ что у меня там тоже есть небольшая темка, потом передам слово Саше и заткнусь. ┆ it, because I also have a small Temka there, then I will give the word to Sasha ┆ ┆ │
│ ┆ ┆ and shut up. ┆ ┆ │
│ 410 ┆ Кроме того, что вышел, даже еще не то что вышел, анонсирован фреймворк для ┆ In addition to the fact that he came out, not only that was announced, the ┆ 1 ┆ 0 │
│ ┆ конкурентного тестирования, нет, как это, для рандомизированного тестирования ┆ framework is announced for competitive testing, there is no, like this, for ┆ ┆ │
│ ┆ конкурентных расплетных систем, который интегри… ┆ randomized testing of competitive weeping systems… ┆ ┆ │
│ 410 ┆ А поскольку никто больше не испытывает из ведущих энтузиазм по поводу Rasta, я ┆ And since no one else is enthusiastic about Rasta, I will take a different topic ┆ 1 ┆ 0 │
│ ┆ возьму другую тему по поводу, которую ведущие в прошлый выпуск не испытывали ┆ about which the presenters in the last release did not feel enthusiasm. ┆ ┆ │
│ ┆ энтузиазмы. ┆ ┆ ┆ │
│ 410 ┆ Значит, хорошая долгоживущая тема. ┆ So, a good long -lived topic. ┆ 0 ┆ 1 │
│ 410 ┆ А что еще долгоживущая тема, которая у меня в интерфейсе Трелл аж раздвоилась? ┆ And what else is a long -lived topic that my Trelle has already bifurcated in my ┆ 1 ┆ 0 │
│ ┆ ┆ interface? ┆ ┆ │
│ 410 ┆ А что еще правда полезно, это гид, когда в нем нет уязвимостей. ┆ And what else is really useful, this is a guide when there is no vulnerabilities ┆ 1 ┆ 0 │
│ ┆ ┆ in it. ┆ ┆ │
│ 410 ┆ Вот, а еще в блоге Google Project Zero появился пост про эксплуатацию ┆ So, and the Google Project Zero blog has a post on the operation of the seizure ┆ 1 ┆ 0 │
│ ┆ разыменования пустого указателя в ядре Linux. ┆ of an empty pointer in the Linux nucleus. ┆ ┆ │
│ 410 ┆ Дальше снова тема от меня, подозрительно новый тема от меня идет подряд. ┆ Further again the topic is from me, a suspiciously new topic from me is in a ┆ 1 ┆ 0 │
│ ┆ ┆ row. ┆ ┆ │
│ 410 ┆ Первая тема в закладке это видео. ┆ The first topic in the bookmark is the video. ┆ 1 ┆ 0 │
│ 410 ┆ Вторая тема в закладке, которая у меня есть, это веб-издание, а также веб-сайт ┆ The second theme in the bookmark that I have is the web publication, as well as ┆ 1 ┆ 0 │
│ ┆ howqueryenginework.com, автор Andy Go. ┆ the website Howqueryenginework.com, Author and GO. ┆ ┆ │
│ 410 ┆ Мы поговорим с вами про железки. ┆ We will talk with you about iron. ┆ 1 ┆ 0 │
│ 410 ┆ А мы переходим к следующей теме, которая тоже про Risk 5, поэтому, Вань, ты не ┆ And we move on to the next topic, which is also about Risk 5, so, Van, you do ┆ 1 ┆ 0 │
│ ┆ расслабляйся, ты еще можешь набросить. ┆ not relax, you can still throw it. ┆ ┆ │
│ 410 ┆ Что ж, настало это время, это время тем наших дорогих слушателей. ┆ Well, this time has come, this is the time of those of our dear listeners. ┆ 1 ┆ 1 │
│ 410 ┆ Дальше тема от слушателя без никнейма, коварного слушателя Bimyaq user name. ┆ Further, the topic is from the listener without a nickname, the insidious ┆ 0 ┆ 1 │
│ ┆ ┆ listener Bimyaq User Name. ┆ ┆ │
│ 410 ┆ я обычно пользуюсь из английского немецкий а он какие языки вообще знает? ну ты ┆ I usually use German from English and what languages do he generally know? well, ┆ 1 ┆ 0 │
│ ┆ спроси открой да посмотри Dipple.com понял сейчас погляжу если ни у кого больше ┆ ask, open and look at Dipple.com now I will see if no one else has nothing to ┆ ┆ │
│ ┆ нечего добавить я предлагаю плавно перет… ┆ add from anyone, I propose to flow smoo… ┆ ┆ │
│ 410 ┆ ссылку на монстр лабо в чат если кому-то интересно давайте пойдем по геймзену ┆ Link to Monster Labo in chat if someone is interested, let's go on the game, ┆ 1 ┆ 0 │
│ ┆ наконец я сегодня две игры первая игра называется immortality это будет ┆ finally, Two games first game is called immortaly, this will be a short review ┆ ┆ │
│ ┆ коротенький обзор это такой просто то чем восхищал… ┆ is so just what many Revolutionaries admired… ┆ ┆ │
│ 410 ┆ из худших решений, которые я когда-либо видел в интерфейсах я не понимаю почему ┆ Of the worst solutions that I have ever seen in the interfaces, I don’t ┆ 1 ┆ 0 │
│ ┆ просто игру не заклевали ревьюверы просто за это некоторые даже называли это ┆ understand why the Revuvens just didn’t cut the game just for this, some even ┆ ┆ │
│ ┆ интересным и удобным решением, не знаю, я п… ┆ called it an interesting and convenient solution, … ┆ ┆ │
└─────────┴───────────────────────────────────────────────────────────────────────────────────┴──────────────────────────────────────────────────────────────────────────────────┴────────┴────────────┘
-------------------------------------------------PassiveAggressiveClassifier.411--------------------------------------------------
shape: (14, 5)
┌─────────┬──────────────────────────────────────────────────────────────────────────────────┬───────────────────────────────────────────────────────────────────────────────┬────────┬────────────┐
│ episode ┆ ru_sentence ┆ en_sentence ┆ target ┆ prediction │
│ --- ┆ --- ┆ --- ┆ --- ┆ --- │
│ i64 ┆ str ┆ str ┆ i64 ┆ i64 │
╞═════════╪══════════════════════════════════════════════════════════════════════════════════╪═══════════════════════════════════════════════════════════════════════════════╪════════╪════════════╡
│ 411 ┆ И всем привет! ┆ And hello everyone! ┆ 1 ┆ 0 │
│ 411 ┆ И тогда поехали по темам, я пытаюсь перетащить на своем телефоне. ┆ And then we went on topics, I try to drag on my phone. ┆ 0 ┆ 1 │
│ 411 ┆ Ну что, тогда раз мы разобрали, о чем мы научились за неделю, давайте может быть ┆ Well, then, once we made out what we have learned in a week, let's understand ┆ 1 ┆ 0 │
│ ┆ поймем, о чем мы заучились больше, чем за неделю. ┆ what we memorized more than a week. ┆ ┆ │
│ 411 ┆ Так, тогда поехали на следующую тему. ┆ So, then we went to the next topic. ┆ 1 ┆ 1 │
│ 411 ┆ Поэтому давай быстрее перейдем к следующей теме. ┆ Therefore, let's go faster to the next topic. ┆ 0 ┆ 1 │
│ 411 ┆ Так, следующая тема моя. ┆ So, the next topic is mine. ┆ 1 ┆ 1 │
│ 411 ┆ А вот что вовсе не скрыто? ┆ But what is not hidden at all? ┆ 1 ┆ 0 │
│ 411 ┆ Отлично, ну раз одно видео мы обсудили, давай может другое видео обсудим. ┆ Great, well, since we discussed one video, let's discuss another video. ┆ 1 ┆ 0 │
│ 411 ┆ Тогда пошли к темам слушателей. ┆ Then we went to the topics of the listeners. ┆ 1 ┆ 1 │
│ 411 ┆ И первая тема, а какая из них первая? ┆ And the first topic, and which one is the first? ┆ 0 ┆ 1 │
│ 411 ┆ Так, следующая тема. ┆ So, the next topic. ┆ 0 ┆ 1 │
│ 411 ┆ Тема это про дейтабейс в 2002 году a year in review. ┆ The topic is about Deutabase in 2002 a year in review. ┆ 0 ┆ 1 │
│ 411 ┆ А давайте добавим подкаст в Spotify. ┆ And let's add a podcast to Spotify. ┆ 1 ┆ 0 │
│ 411 ┆ А вот Саша, между прочим, если ты посмотришь в темы, а что там в темах? ┆ But Sasha, by the way, if you look at the topics, and what's in topics? ┆ 0 ┆ 1 │
└─────────┴──────────────────────────────────────────────────────────────────────────────────┴───────────────────────────────────────────────────────────────────────────────┴────────┴────────────┘
-------------------------------------------------PassiveAggressiveClassifier.412--------------------------------------------------
shape: (14, 5)
┌─────────┬───────────────────────────────────────────────────────────────────────────────────┬──────────────────────────────────────────────────────────────────────────────────┬────────┬────────────┐
│ episode ┆ ru_sentence ┆ en_sentence ┆ target ┆ prediction │
│ --- ┆ --- ┆ --- ┆ --- ┆ --- │
│ i64 ┆ str ┆ str ┆ i64 ┆ i64 │
╞═════════╪═══════════════════════════════════════════════════════════════════════════════════╪══════════════════════════════════════════════════════════════════════════════════╪════════╪════════════╡
│ 412 ┆ Всем привет! ┆ Hi all! ┆ 1 ┆ 0 │
│ 412 ┆ А мы переходим к нашим темам. ┆ And we go to our topics. ┆ 0 ┆ 1 │
│ 412 ┆ Я думаю, Алекс просто скромничает, потому что он пришел к нам не с пустыми ┆ I think Alex is just modest, because he came to us not empty-handed, so he wants ┆ 1 ┆ 0 │
│ ┆ руками, вот он про гид что-то хочет рассказать. ┆ to tell something about the guide. ┆ ┆ │
│ 412 ┆ Спасибо, у меня тоже есть эраты, мы раньше говорили про одноплатники на Risk5, ┆ Thank you, I also have erata, we used to talk about one -payers on RISK5, is ┆ 1 ┆ 0 │
│ ┆ называется Vision5.2, и эрата заключается в том, что похоже спрос превысил ┆ called Vision5.2, and Erata is that the demand seems to exceed the offer, and ┆ ┆ │
│ ┆ предложение, и продавец на Aliexpress теперь р… ┆ the seller on Aliexpress now sends customers … ┆ ┆ │
│ 412 ┆ Кто еще офигевает? ┆ Who else is coming out? ┆ 1 ┆ 0 │
│ 412 ┆ А что еще прекрасно? ┆ And what else is fine? ┆ 1 ┆ 0 │
│ 412 ┆ Следующая тема про Executives. ┆ The next topic about executives. ┆ 1 ┆ 0 │
│ 412 ┆ А какие еще приходят мысли в голову? ┆ What other thoughts come to mind? ┆ 1 ┆ 0 │
│ 412 ┆ Что еще можно показать? ┆ What else can be shown? ┆ 1 ┆ 0 │
│ 412 ┆ Что еще можно развернуть вполне, эта тема в закладке нет для пересказа. ┆ What else can be expanded, this topic is not in the bookmark for retelling. ┆ 1 ┆ 0 │
│ 412 ┆ А что еще у меня в коротких темах, это доклады серии Advanced Database Systems ┆ And what else do I have in short topics are reports of the Advanced Database ┆ 1 ┆ 1 │
│ ┆ 2020 года курс читает Энди Павла в этот раз. ┆ Systems series 2020 reads the course of Andy Pavel this time. ┆ ┆ │
│ 412 ┆ Ну и ладно, пойдем тогда по темам наших слушателей. ┆ Well, okay, then let's follow the topics of our listeners. ┆ 1 ┆ 1 │
│ 412 ┆ По темам наших слушателей. ┆ On the topics of our listeners. ┆ 0 ┆ 1 │
│ 412 ┆ Пойдем, пойдем по темам очевоевых две. ┆ Let's go, let's go on the topics of the Okhovoyvoy. ┆ 0 ┆ 1 │
└─────────┴───────────────────────────────────────────────────────────────────────────────────┴──────────────────────────────────────────────────────────────────────────────────┴────────┴────────────┘
-------------------------------------------------PassiveAggressiveClassifier.413--------------------------------------------------
shape: (12, 5)
┌─────────┬───────────────────────────────────────────────────────────────────────────────────┬──────────────────────────────────────────────────────────────────────────────────┬────────┬────────────┐
│ episode ┆ ru_sentence ┆ en_sentence ┆ target ┆ prediction │
│ --- ┆ --- ┆ --- ┆ --- ┆ --- │
│ i64 ┆ str ┆ str ┆ i64 ┆ i64 │
╞═════════╪═══════════════════════════════════════════════════════════════════════════════════╪══════════════════════════════════════════════════════════════════════════════════╪════════╪════════════╡
│ 413 ┆ Всем привет и с вами снова Каздев Зен. ┆ Hello everyone and Kazdev Zen with you again. ┆ 1 ┆ 1 │
│ 413 ┆ И мы начинаем двигаться по темам. ┆ And we begin to move on topics. ┆ 0 ┆ 1 │
│ 413 ┆ И на этом мы заканчиваем тему, что мы уже такое прошли за неделю, и темам, ┆ And on this we are ending the topic that we have already passed in a week, and ┆ 0 ┆ 1 │
│ ┆ которые дальше. ┆ topics that are further. ┆ ┆ │
│ 413 ┆ А следующей темой у нас тема про базу данных. ┆ And the next topic we have a topic about the database. ┆ 1 ┆ 1 │
│ 413 ┆ Ну и раз мы все так здорово все обсудили, пошли к следующей теме. ┆ Well, since we all discussed everything so cool, we went to the next topic. ┆ 1 ┆ 1 │
│ 413 ┆ И мы перейдем к следующей теме. ┆ And we will move on to the next topic. ┆ 0 ┆ 1 │
│ 413 ┆ Вот, а что еще, и с тем, не про базу данных и не про игры, чтобы разбавить. ┆ Here, but what else, and with that, not about the database and not about the ┆ 1 ┆ 0 │
│ ┆ ┆ games, to dilute. ┆ ┆ │
│ 413 ┆ И тогда поехали к следующей теме. ┆ And then we went to the next topic. ┆ 0 ┆ 1 │
│ 413 ┆ Приходим к темам слушателей. ┆ We come to the topics of the listeners. ┆ 1 ┆ 1 │
│ 413 ┆ И это была последняя тема, поэтому мы заканчиваем с обычной частью и переходим к ┆ And this was the last topic, so we finish with the usual part and go to Gamezen. ┆ 1 ┆ 1 │
│ ┆ GameZen. ┆ ┆ ┆ │
│ 413 ┆ А мы обсуждаем, да, мы переходим к рублике GameZen, точнее Retro GameZen. ┆ And we are discussing, yes, we go to the Gamezen Rup, or rather Retro Gamezen. ┆ 0 ┆ 1 │
│ 413 ┆ Вторую часть этой темы я хочу посвятить устройству под названием Nintendo Game & ┆ I want to devote the second part of this topic to the device called Nintendo ┆ 0 ┆ 1 │
│ ┆ Watch. ┆ Game & Watch. ┆ ┆ │
└─────────┴───────────────────────────────────────────────────────────────────────────────────┴──────────────────────────────────────────────────────────────────────────────────┴────────┴────────────┘
-------------------------------------------------PassiveAggressiveClassifier.414--------------------------------------------------
shape: (10, 5)
┌─────────┬────────────────────────────────────────────────────────────┬─────────────────────────────────────────────────────────────────┬────────┬────────────┐
│ episode ┆ ru_sentence ┆ en_sentence ┆ target ┆ prediction │
│ --- ┆ --- ┆ --- ┆ --- ┆ --- │
│ i64 ┆ str ┆ str ┆ i64 ┆ i64 │
╞═════════╪════════════════════════════════════════════════════════════╪═════════════════════════════════════════════════════════════════╪════════╪════════════╡
│ 414 ┆ Всем снова привет! ┆ Hello everyone again! ┆ 1 ┆ 0 │
│ 414 ┆ И мы постепенно тогда переходим на тему с гостем. ┆ And we are gradually moving on the topic with a guest. ┆ 1 ┆ 1 │
│ 414 ┆ Или пойдем сразу по твоей теме, которую ты принес с собой? ┆ Or let's go right away on your topic that you brought with you? ┆ 0 ┆ 1 │
│ 414 ┆ Давай тогда по теме. ┆ Then come on on the topic. ┆ 0 ┆ 1 │
│ 414 ┆ Тогда может быть пойдем дальше по темам? ┆ Then maybe let's go further on topics? ┆ 1 ┆ 1 │
│ 414 ┆ Ну да ладно, пойдем дальше. ┆ Well, okay, let's go further. ┆ 1 ┆ 0 │
│ 414 ┆ Поэтому мы перейдем к темам наших слушателей. ┆ Therefore, we will move on to the topics of our listeners. ┆ 1 ┆ 1 │
│ 414 ┆ Темы наших слушателей. ┆ Topics of our listeners. ┆ 0 ┆ 1 │
│ 414 ┆ А теперь переходим к game zen. ┆ Now we go to Game Zen. ┆ 1 ┆ 1 │
│ 414 ┆ Ну вот, а к чему вся эта тема? ┆ Well, what is this topic for? ┆ 0 ┆ 1 │
└─────────┴────────────────────────────────────────────────────────────┴─────────────────────────────────────────────────────────────────┴────────┴────────────┘
-------------------------------------------------PassiveAggressiveClassifier.415--------------------------------------------------
shape: (9, 5)
┌─────────┬───────────────────────────────────────────────────────────────────────────────────┬──────────────────────────────────────────────────────────────────────────────────┬────────┬────────────┐
│ episode ┆ ru_sentence ┆ en_sentence ┆ target ┆ prediction │
│ --- ┆ --- ┆ --- ┆ --- ┆ --- │
│ i64 ┆ str ┆ str ┆ i64 ┆ i64 │
╞═════════╪═══════════════════════════════════════════════════════════════════════════════════╪══════════════════════════════════════════════════════════════════════════════════╪════════╪════════════╡
│ 415 ┆ Всем привет. ┆ Hi all. ┆ 1 ┆ 0 │
│ 415 ┆ Я предлагаю плавно переходить к тему, которую нам Никита принес, и первая тема ┆ I propose to smoothly go to the topic that Nikita brought us, and the first ┆ 1 ┆ 0 │
│ ┆ про чат GPT, что ты хочешь про него нам повернуть? ┆ topic about the GPT chat, what do you want to turn about him? ┆ ┆ │
│ 415 ┆ Как будто бы тема себя исчерпала, а еще Никита нам принес что-то про SKA, SkyPost ┆ As if the topic has exhausted itself, and Nikita brought us something about SKA, ┆ 1 ┆ 0 │
│ ┆ компонентов, это уже то, что мы обсудили, или это что-то иное? ┆ SkyPost components, is this already what we discussed, or is it something else? ┆ ┆ │
│ 415 ┆ А я думаю, мы потихонечку будем перетекать в следующие темы, тем более, мы ┆ And I think we will slowly flow into the following topics, all the more, we have ┆ 1 ┆ 1 │
│ ┆ наговорили уже прилично почти на час. ┆ said decently for almost an hour. ┆ ┆ │
│ 415 ┆ Ну что ж, в таком случае мы переходим к следующим темам. ┆ Well, in this case, we move on to the following topics. ┆ 1 ┆ 1 │
│ 415 ┆ А следующая наша тема про, ну на самом деле это не тема, это так одной строкой. ┆ And our next theme of pro, well, in fact, this is not a topic, this is so one ┆ 1 ┆ 1 │
│ ┆ ┆ line. ┆ ┆ │
│ 415 ┆ Что еще логично, это перейти к темам и вопросам слушателей. ┆ What else is logical is to move on to the topics and issues of listeners. ┆ 0 ┆ 1 │
│ 415 ┆ Давайте дальше пользоваться. ┆ Let's use it further. ┆ 1 ┆ 0 │
│ 415 ┆ И мы переходим к GameZen'у. ┆ And we go to Gamezen. ┆ 1 ┆ 1 │
└─────────┴───────────────────────────────────────────────────────────────────────────────────┴──────────────────────────────────────────────────────────────────────────────────┴────────┴────────────┘
========================================================LogisticRegression========================================================
shape: (6, 7)
┌────────────────────┬─────────┬───────────┬─────────────┬────────────────────────┬───────────────────────────┬──────────┐
│ clf ┆ episode ┆ threshold ┆ window_diff ┆ predicted_topics_count ┆ ground_truth_topics_count ┆ ratio │
│ --- ┆ --- ┆ --- ┆ --- ┆ --- ┆ --- ┆ --- │
│ str ┆ i64 ┆ f64 ┆ f64 ┆ i64 ┆ i64 ┆ f64 │
╞════════════════════╪═════════╪═══════════╪═════════════╪════════════════════════╪═══════════════════════════╪══════════╡
│ LogisticRegression ┆ 410 ┆ 0.3 ┆ 0.413374 ┆ 1 ┆ 17 ┆ 0.058824 │
│ LogisticRegression ┆ 411 ┆ 0.3 ┆ 0.35515 ┆ 2 ┆ 9 ┆ 0.222222 │
│ LogisticRegression ┆ 412 ┆ 0.3 ┆ 0.334382 ┆ 2 ┆ 12 ┆ 0.166667 │
│ LogisticRegression ┆ 413 ┆ 0.3 ┆ 0.272235 ┆ 5 ┆ 7 ┆ 0.714286 │
│ LogisticRegression ┆ 414 ┆ 0.3 ┆ 0.282515 ┆ 1 ┆ 7 ┆ 0.142857 │
│ LogisticRegression ┆ 415 ┆ 0.3 ┆ 0.372993 ┆ 1 ┆ 9 ┆ 0.111111 │
└────────────────────┴─────────┴───────────┴─────────────┴────────────────────────┴───────────────────────────┴──────────┘
------------------------------------------------------LogisticRegression.410------------------------------------------------------
shape: (16, 5)
┌─────────┬───────────────────────────────────────────────────────────────────────────────────┬──────────────────────────────────────────────────────────────────────────────────┬────────┬────────────┐
│ episode ┆ ru_sentence ┆ en_sentence ┆ target ┆ prediction │
│ --- ┆ --- ┆ --- ┆ --- ┆ --- │
│ i64 ┆ str ┆ str ┆ i64 ┆ i64 │
╞═════════╪═══════════════════════════════════════════════════════════════════════════════════╪══════════════════════════════════════════════════════════════════════════════════╪════════╪════════════╡
│ 410 ┆ Всем добрый вечер! ┆ Good evening everyone! ┆ 1 ┆ 0 │
│ 410 ┆ А теперь общая тема, чему мы все научились за эту неделю, и начну ее я, потому ┆ And now the general topic, which we all have learned this week, and I will start ┆ 1 ┆ 0 │
│ ┆ что у меня там тоже есть небольшая темка, потом передам слово Саше и заткнусь. ┆ it, because I also have a small Temka there, then I will give the word to Sasha ┆ ┆ │
│ ┆ ┆ and shut up. ┆ ┆ │
│ 410 ┆ Кроме того, что вышел, даже еще не то что вышел, анонсирован фреймворк для ┆ In addition to the fact that he came out, not only that was announced, the ┆ 1 ┆ 0 │
│ ┆ конкурентного тестирования, нет, как это, для рандомизированного тестирования ┆ framework is announced for competitive testing, there is no, like this, for ┆ ┆ │
│ ┆ конкурентных расплетных систем, который интегри… ┆ randomized testing of competitive weeping systems… ┆ ┆ │
│ 410 ┆ А поскольку никто больше не испытывает из ведущих энтузиазм по поводу Rasta, я ┆ And since no one else is enthusiastic about Rasta, I will take a different topic ┆ 1 ┆ 0 │
│ ┆ возьму другую тему по поводу, которую ведущие в прошлый выпуск не испытывали ┆ about which the presenters in the last release did not feel enthusiasm. ┆ ┆ │
│ ┆ энтузиазмы. ┆ ┆ ┆ │
│ 410 ┆ А что еще долгоживущая тема, которая у меня в интерфейсе Трелл аж раздвоилась? ┆ And what else is a long -lived topic that my Trelle has already bifurcated in my ┆ 1 ┆ 0 │
│ ┆ ┆ interface? ┆ ┆ │
│ 410 ┆ А что еще правда полезно, это гид, когда в нем нет уязвимостей. ┆ And what else is really useful, this is a guide when there is no vulnerabilities ┆ 1 ┆ 0 │
│ ┆ ┆ in it. ┆ ┆ │
│ 410 ┆ Вот, а еще в блоге Google Project Zero появился пост про эксплуатацию ┆ So, and the Google Project Zero blog has a post on the operation of the seizure ┆ 1 ┆ 0 │
│ ┆ разыменования пустого указателя в ядре Linux. ┆ of an empty pointer in the Linux nucleus. ┆ ┆ │
│ 410 ┆ Дальше снова тема от меня, подозрительно новый тема от меня идет подряд. ┆ Further again the topic is from me, a suspiciously new topic from me is in a ┆ 1 ┆ 0 │
│ ┆ ┆ row. ┆ ┆ │
│ 410 ┆ Первая тема в закладке это видео. ┆ The first topic in the bookmark is the video. ┆ 1 ┆ 0 │
│ 410 ┆ Вторая тема в закладке, которая у меня есть, это веб-издание, а также веб-сайт ┆ The second theme in the bookmark that I have is the web publication, as well as ┆ 1 ┆ 0 │
│ ┆ howqueryenginework.com, автор Andy Go. ┆ the website Howqueryenginework.com, Author and GO. ┆ ┆ │
│ 410 ┆ Мы поговорим с вами про железки. ┆ We will talk with you about iron. ┆ 1 ┆ 0 │
│ 410 ┆ А мы переходим к следующей теме, которая тоже про Risk 5, поэтому, Вань, ты не ┆ And we move on to the next topic, which is also about Risk 5, so, Van, you do ┆ 1 ┆ 0 │
│ ┆ расслабляйся, ты еще можешь набросить. ┆ not relax, you can still throw it. ┆ ┆ │
│ 410 ┆ Что ж, настало это время, это время тем наших дорогих слушателей. ┆ Well, this time has come, this is the time of those of our dear listeners. ┆ 1 ┆ 0 │
│ 410 ┆ я обычно пользуюсь из английского немецкий а он какие языки вообще знает? ну ты ┆ I usually use German from English and what languages do he generally know? well, ┆ 1 ┆ 0 │
│ ┆ спроси открой да посмотри Dipple.com понял сейчас погляжу если ни у кого больше ┆ ask, open and look at Dipple.com now I will see if no one else has nothing to ┆ ┆ │
│ ┆ нечего добавить я предлагаю плавно перет… ┆ add from anyone, I propose to flow smoo… ┆ ┆ │
│ 410 ┆ ссылку на монстр лабо в чат если кому-то интересно давайте пойдем по геймзену ┆ Link to Monster Labo in chat if someone is interested, let's go on the game, ┆ 1 ┆ 0 │
│ ┆ наконец я сегодня две игры первая игра называется immortality это будет ┆ finally, Two games first game is called immortaly, this will be a short review ┆ ┆ │
│ ┆ коротенький обзор это такой просто то чем восхищал… ┆ is so just what many Revolutionaries admired… ┆ ┆ │
│ 410 ┆ из худших решений, которые я когда-либо видел в интерфейсах я не понимаю почему ┆ Of the worst solutions that I have ever seen in the interfaces, I don’t ┆ 1 ┆ 0 │
│ ┆ просто игру не заклевали ревьюверы просто за это некоторые даже называли это ┆ understand why the Revuvens just didn’t cut the game just for this, some even ┆ ┆ │
│ ┆ интересным и удобным решением, не знаю, я п… ┆ called it an interesting and convenient solution, … ┆ ┆ │
└─────────┴───────────────────────────────────────────────────────────────────────────────────┴──────────────────────────────────────────────────────────────────────────────────┴────────┴────────────┘
------------------------------------------------------LogisticRegression.411------------------------------------------------------
shape: (8, 5)
┌─────────┬──────────────────────────────────────────────────────────────────────────────────┬───────────────────────────────────────────────────────────────────────────────┬────────┬────────────┐
│ episode ┆ ru_sentence ┆ en_sentence ┆ target ┆ prediction │
│ --- ┆ --- ┆ --- ┆ --- ┆ --- │
│ i64 ┆ str ┆ str ┆ i64 ┆ i64 │
╞═════════╪══════════════════════════════════════════════════════════════════════════════════╪═══════════════════════════════════════════════════════════════════════════════╪════════╪════════════╡
│ 411 ┆ И всем привет! ┆ And hello everyone! ┆ 1 ┆ 0 │
│ 411 ┆ Ну что, тогда раз мы разобрали, о чем мы научились за неделю, давайте может быть ┆ Well, then, once we made out what we have learned in a week, let's understand ┆ 1 ┆ 0 │
│ ┆ поймем, о чем мы заучились больше, чем за неделю. ┆ what we memorized more than a week. ┆ ┆ │
│ 411 ┆ Так, тогда поехали на следующую тему. ┆ So, then we went to the next topic. ┆ 1 ┆ 0 │
│ 411 ┆ Так, следующая тема моя. ┆ So, the next topic is mine. ┆ 1 ┆ 0 │
│ 411 ┆ А вот что вовсе не скрыто? ┆ But what is not hidden at all? ┆ 1 ┆ 0 │
│ 411 ┆ Отлично, ну раз одно видео мы обсудили, давай может другое видео обсудим. ┆ Great, well, since we discussed one video, let's discuss another video. ┆ 1 ┆ 0 │
│ 411 ┆ Тогда пошли к темам слушателей. ┆ Then we went to the topics of the listeners. ┆ 1 ┆ 1 │
│ 411 ┆ А давайте добавим подкаст в Spotify. ┆ And let's add a podcast to Spotify. ┆ 1 ┆ 0 │
└─────────┴──────────────────────────────────────────────────────────────────────────────────┴───────────────────────────────────────────────────────────────────────────────┴────────┴────────────┘
------------------------------------------------------LogisticRegression.412------------------------------------------------------
shape: (11, 5)
┌─────────┬───────────────────────────────────────────────────────────────────────────────────┬──────────────────────────────────────────────────────────────────────────────────┬────────┬────────────┐
│ episode ┆ ru_sentence ┆ en_sentence ┆ target ┆ prediction │
│ --- ┆ --- ┆ --- ┆ --- ┆ --- │
│ i64 ┆ str ┆ str ┆ i64 ┆ i64 │
╞═════════╪═══════════════════════════════════════════════════════════════════════════════════╪══════════════════════════════════════════════════════════════════════════════════╪════════╪════════════╡
│ 412 ┆ Всем привет! ┆ Hi all! ┆ 1 ┆ 0 │
│ 412 ┆ Я думаю, Алекс просто скромничает, потому что он пришел к нам не с пустыми ┆ I think Alex is just modest, because he came to us not empty-handed, so he wants ┆ 1 ┆ 0 │
│ ┆ руками, вот он про гид что-то хочет рассказать. ┆ to tell something about the guide. ┆ ┆ │
│ 412 ┆ Спасибо, у меня тоже есть эраты, мы раньше говорили про одноплатники на Risk5, ┆ Thank you, I also have erata, we used to talk about one -payers on RISK5, is ┆ 1 ┆ 0 │
│ ┆ называется Vision5.2, и эрата заключается в том, что похоже спрос превысил ┆ called Vision5.2, and Erata is that the demand seems to exceed the offer, and ┆ ┆ │
│ ┆ предложение, и продавец на Aliexpress теперь р… ┆ the seller on Aliexpress now sends customers … ┆ ┆ │
│ 412 ┆ Кто еще офигевает? ┆ Who else is coming out? ┆ 1 ┆ 0 │
│ 412 ┆ А что еще прекрасно? ┆ And what else is fine? ┆ 1 ┆ 0 │
│ 412 ┆ Следующая тема про Executives. ┆ The next topic about executives. ┆ 1 ┆ 0 │
│ 412 ┆ А какие еще приходят мысли в голову? ┆ What other thoughts come to mind? ┆ 1 ┆ 0 │
│ 412 ┆ Что еще можно показать? ┆ What else can be shown? ┆ 1 ┆ 0 │
│ 412 ┆ Что еще можно развернуть вполне, эта тема в закладке нет для пересказа. ┆ What else can be expanded, this topic is not in the bookmark for retelling. ┆ 1 ┆ 0 │
│ 412 ┆ А что еще у меня в коротких темах, это доклады серии Advanced Database Systems ┆ And what else do I have in short topics are reports of the Advanced Database ┆ 1 ┆ 0 │
│ ┆ 2020 года курс читает Энди Павла в этот раз. ┆ Systems series 2020 reads the course of Andy Pavel this time. ┆ ┆ │
│ 412 ┆ Ну и ладно, пойдем тогда по темам наших слушателей. ┆ Well, okay, then let's follow the topics of our listeners. ┆ 1 ┆ 1 │
└─────────┴───────────────────────────────────────────────────────────────────────────────────┴──────────────────────────────────────────────────────────────────────────────────┴────────┴────────────┘
------------------------------------------------------LogisticRegression.413------------------------------------------------------
shape: (8, 5)
┌─────────┬───────────────────────────────────────────────────────────────────────────────────┬──────────────────────────────────────────────────────────────────────────────────┬────────┬────────────┐
│ episode ┆ ru_sentence ┆ en_sentence ┆ target ┆ prediction │
│ --- ┆ --- ┆ --- ┆ --- ┆ --- │
│ i64 ┆ str ┆ str ┆ i64 ┆ i64 │
╞═════════╪═══════════════════════════════════════════════════════════════════════════════════╪══════════════════════════════════════════════════════════════════════════════════╪════════╪════════════╡
│ 413 ┆ Всем привет и с вами снова Каздев Зен. ┆ Hello everyone and Kazdev Zen with you again. ┆ 1 ┆ 0 │
│ 413 ┆ А следующей темой у нас тема про базу данных. ┆ And the next topic we have a topic about the database. ┆ 1 ┆ 1 │
│ 413 ┆ Ну и раз мы все так здорово все обсудили, пошли к следующей теме. ┆ Well, since we all discussed everything so cool, we went to the next topic. ┆ 1 ┆ 0 │
│ 413 ┆ И мы перейдем к следующей теме. ┆ And we will move on to the next topic. ┆ 0 ┆ 1 │
│ 413 ┆ Вот, а что еще, и с тем, не про базу данных и не про игры, чтобы разбавить. ┆ Here, but what else, and with that, not about the database and not about the ┆ 1 ┆ 0 │
│ ┆ ┆ games, to dilute. ┆ ┆ │
│ 413 ┆ И тогда поехали к следующей теме. ┆ And then we went to the next topic. ┆ 0 ┆ 1 │
│ 413 ┆ Приходим к темам слушателей. ┆ We come to the topics of the listeners. ┆ 1 ┆ 1 │
│ 413 ┆ И это была последняя тема, поэтому мы заканчиваем с обычной частью и переходим к ┆ And this was the last topic, so we finish with the usual part and go to Gamezen. ┆ 1 ┆ 0 │
│ ┆ GameZen. ┆ ┆ ┆ │
└─────────┴───────────────────────────────────────────────────────────────────────────────────┴──────────────────────────────────────────────────────────────────────────────────┴────────┴────────────┘
------------------------------------------------------LogisticRegression.414------------------------------------------------------
shape: (6, 5)
┌─────────┬───────────────────────────────────────────────────┬────────────────────────────────────────────────────────────┬────────┬────────────┐
│ episode ┆ ru_sentence ┆ en_sentence ┆ target ┆ prediction │
│ --- ┆ --- ┆ --- ┆ --- ┆ --- │
│ i64 ┆ str ┆ str ┆ i64 ┆ i64 │
╞═════════╪═══════════════════════════════════════════════════╪════════════════════════════════════════════════════════════╪════════╪════════════╡
│ 414 ┆ Всем снова привет! ┆ Hello everyone again! ┆ 1 ┆ 0 │
│ 414 ┆ И мы постепенно тогда переходим на тему с гостем. ┆ And we are gradually moving on the topic with a guest. ┆ 1 ┆ 0 │
│ 414 ┆ Тогда может быть пойдем дальше по темам? ┆ Then maybe let's go further on topics? ┆ 1 ┆ 0 │
│ 414 ┆ Ну да ладно, пойдем дальше. ┆ Well, okay, let's go further. ┆ 1 ┆ 0 │
│ 414 ┆ Поэтому мы перейдем к темам наших слушателей. ┆ Therefore, we will move on to the topics of our listeners. ┆ 1 ┆ 0 │
│ 414 ┆ А теперь переходим к game zen. ┆ Now we go to Game Zen. ┆ 1 ┆ 0 │
└─────────┴───────────────────────────────────────────────────┴────────────────────────────────────────────────────────────┴────────┴────────────┘
------------------------------------------------------LogisticRegression.415------------------------------------------------------
shape: (8, 5)
┌─────────┬───────────────────────────────────────────────────────────────────────────────────┬──────────────────────────────────────────────────────────────────────────────────┬────────┬────────────┐
│ episode ┆ ru_sentence ┆ en_sentence ┆ target ┆ prediction │
│ --- ┆ --- ┆ --- ┆ --- ┆ --- │
│ i64 ┆ str ┆ str ┆ i64 ┆ i64 │
╞═════════╪═══════════════════════════════════════════════════════════════════════════════════╪══════════════════════════════════════════════════════════════════════════════════╪════════╪════════════╡
│ 415 ┆ Всем привет. ┆ Hi all. ┆ 1 ┆ 0 │
│ 415 ┆ Я предлагаю плавно переходить к тему, которую нам Никита принес, и первая тема ┆ I propose to smoothly go to the topic that Nikita brought us, and the first ┆ 1 ┆ 0 │
│ ┆ про чат GPT, что ты хочешь про него нам повернуть? ┆ topic about the GPT chat, what do you want to turn about him? ┆ ┆ │
│ 415 ┆ Как будто бы тема себя исчерпала, а еще Никита нам принес что-то про SKA, SkyPost ┆ As if the topic has exhausted itself, and Nikita brought us something about SKA, ┆ 1 ┆ 0 │
│ ┆ компонентов, это уже то, что мы обсудили, или это что-то иное? ┆ SkyPost components, is this already what we discussed, or is it something else? ┆ ┆ │
│ 415 ┆ А я думаю, мы потихонечку будем перетекать в следующие темы, тем более, мы ┆ And I think we will slowly flow into the following topics, all the more, we have ┆ 1 ┆ 0 │
│ ┆ наговорили уже прилично почти на час. ┆ said decently for almost an hour. ┆ ┆ │
│ 415 ┆ Ну что ж, в таком случае мы переходим к следующим темам. ┆ Well, in this case, we move on to the following topics. ┆ 1 ┆ 0 │
│ 415 ┆ А следующая наша тема про, ну на самом деле это не тема, это так одной строкой. ┆ And our next theme of pro, well, in fact, this is not a topic, this is so one ┆ 1 ┆ 0 │
│ ┆ ┆ line. ┆ ┆ │
│ 415 ┆ Давайте дальше пользоваться. ┆ Let's use it further. ┆ 1 ┆ 0 │
│ 415 ┆ И мы переходим к GameZen'у. ┆ And we go to Gamezen. ┆ 1 ┆ 0 │
└─────────┴───────────────────────────────────────────────────────────────────────────────────┴──────────────────────────────────────────────────────────────────────────────────┴────────┴────────────┘
Conclusion
While the algorithms perform adequately, they don’t exceed my expectations.
The average windowdiff
for each selected classifier is close to the best achieved by unsupervised methods, which was around 0.36.
However, a significant drawback remains: this approach is specific to podcasts. The classifiers cannot be generalized to other podcasts because each podcast may have its own unique transition phrases or signals for changing topics.
Unfortunately, I only realized this limitation halfway through the research, but I decided to continue for the sake of my curiosity.
PS
Some of you might suggest considering hyperparameter optimization and trying to extend the dataset using augmentations. However, the problem I mentioned in the Conclusion section presents a significant challenge.
If you want to try it for yourself, here are my thoughts on the next steps.
Feature Engineering
One idea is to extend each row with the next and previous rows to provide additional context.
Augmentation
You could add additional boundary sentences using a model from HuggingFace or ChatGPT. Here’s an example using ChatGPT:
from openai import OpenAI
key = os.getenv('OPEN_AI_KEY')
client = OpenAI(api_key=key)
client.chat.completions.create(
model="gpt-3.5-turbo",
messages=[
{'role': 'system', 'content': 'You are a top-level copywriter algorithm. You have to rewrite sentences. For each sentence, write 5 different options. You have to answer in the same language as the sentence you received. Your response should be a JSON array.'},
{'role': 'user', 'content': 'Well, okay, then let\'s follow the topics of our listeners.'}
],
)
Hyperparameter Optimization
Optuna is a popular HPO framework that I recommend. It’s easy to use and performs well, which could help you fine-tune your models.
%watermark --iversions --machine --python
Python implementation: CPython
Python version : 3.9.18
IPython version : 8.18.1
Compiler : GCC 12.3.0
OS : Linux
Release : 5.10.102.1-microsoft-standard-WSL2
Machine : x86_64
Processor : x86_64
CPU cores : 8
Architecture: 64bit
polars : 0.20.10
pandas : 2.2.1
numpy : 1.26.4
sklearn: 1.0.1