great-ai/examples/scibert/analyse.ipynb

225 lines
22 KiB
Text

{
"cells": [
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"data/evaluation-experiment-2-stage #1-sa6a0y.json\n",
"data/evaluation-experiment-2-stage #1-2m6dmb.json\n"
]
}
],
"source": [
"from pathlib import Path\n",
"import json\n",
"\n",
"annotations = []\n",
"for p in Path(\"data\").glob(\"*.json\"):\n",
" with open(p, encoding=\"utf-8\") as f:\n",
" print(p)\n",
" annotations.append(json.load(f))\n",
"\n",
"evaluations = {\n",
" sentence: [\n",
" annotation[sentence] for annotation in annotations if sentence in annotation\n",
" ]\n",
" for sentence in {\n",
" sentence for annotation in annotations for sentence in annotation.keys()\n",
" }\n",
"}\n",
"\n",
"X = [s for s in evaluations.keys()]\n",
"y = [int(sum(e) > 0) for e in evaluations.values()]"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [],
"source": [
"y1 = [e[0] for e in evaluations.values() if len(e) == 2]\n",
"y2 = [e[1] for e in evaluations.values() if len(e) == 2]"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"0.3546448712421808"
]
},
"execution_count": 8,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"import sklearn.metrics\n",
"\n",
"sklearn.metrics.cohen_kappa_score(y1, y2)"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {},
"outputs": [],
"source": [
"X = [s for s in evaluations.keys()]\n",
"y = [int(sum(e) > 0) for e in evaluations.values()]"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<style>#sk-container-id-1 {color: black;background-color: white;}#sk-container-id-1 pre{padding: 0;}#sk-container-id-1 div.sk-toggleable {background-color: white;}#sk-container-id-1 label.sk-toggleable__label {cursor: pointer;display: block;width: 100%;margin-bottom: 0;padding: 0.3em;box-sizing: border-box;text-align: center;}#sk-container-id-1 label.sk-toggleable__label-arrow:before {content: \"▸\";float: left;margin-right: 0.25em;color: #696969;}#sk-container-id-1 label.sk-toggleable__label-arrow:hover:before {color: black;}#sk-container-id-1 div.sk-estimator:hover label.sk-toggleable__label-arrow:before {color: black;}#sk-container-id-1 div.sk-toggleable__content {max-height: 0;max-width: 0;overflow: hidden;text-align: left;background-color: #f0f8ff;}#sk-container-id-1 div.sk-toggleable__content pre {margin: 0.2em;color: black;border-radius: 0.25em;background-color: #f0f8ff;}#sk-container-id-1 input.sk-toggleable__control:checked~div.sk-toggleable__content {max-height: 200px;max-width: 100%;overflow: auto;}#sk-container-id-1 input.sk-toggleable__control:checked~label.sk-toggleable__label-arrow:before {content: \"▾\";}#sk-container-id-1 div.sk-estimator input.sk-toggleable__control:checked~label.sk-toggleable__label {background-color: #d4ebff;}#sk-container-id-1 div.sk-label input.sk-toggleable__control:checked~label.sk-toggleable__label {background-color: #d4ebff;}#sk-container-id-1 input.sk-hidden--visually {border: 0;clip: rect(1px 1px 1px 1px);clip: rect(1px, 1px, 1px, 1px);height: 1px;margin: -1px;overflow: hidden;padding: 0;position: absolute;width: 1px;}#sk-container-id-1 div.sk-estimator {font-family: monospace;background-color: #f0f8ff;border: 1px dotted black;border-radius: 0.25em;box-sizing: border-box;margin-bottom: 0.5em;}#sk-container-id-1 div.sk-estimator:hover {background-color: #d4ebff;}#sk-container-id-1 div.sk-parallel-item::after {content: \"\";width: 100%;border-bottom: 1px solid gray;flex-grow: 1;}#sk-container-id-1 div.sk-label:hover label.sk-toggleable__label {background-color: #d4ebff;}#sk-container-id-1 div.sk-serial::before {content: \"\";position: absolute;border-left: 1px solid gray;box-sizing: border-box;top: 0;bottom: 0;left: 50%;z-index: 0;}#sk-container-id-1 div.sk-serial {display: flex;flex-direction: column;align-items: center;background-color: white;padding-right: 0.2em;padding-left: 0.2em;position: relative;}#sk-container-id-1 div.sk-item {position: relative;z-index: 1;}#sk-container-id-1 div.sk-parallel {display: flex;align-items: stretch;justify-content: center;background-color: white;position: relative;}#sk-container-id-1 div.sk-item::before, #sk-container-id-1 div.sk-parallel-item::before {content: \"\";position: absolute;border-left: 1px solid gray;box-sizing: border-box;top: 0;bottom: 0;left: 50%;z-index: -1;}#sk-container-id-1 div.sk-parallel-item {display: flex;flex-direction: column;z-index: 1;position: relative;background-color: white;}#sk-container-id-1 div.sk-parallel-item:first-child::after {align-self: flex-end;width: 50%;}#sk-container-id-1 div.sk-parallel-item:last-child::after {align-self: flex-start;width: 50%;}#sk-container-id-1 div.sk-parallel-item:only-child::after {width: 0;}#sk-container-id-1 div.sk-dashed-wrapped {border: 1px dashed gray;margin: 0 0.4em 0.5em 0.4em;box-sizing: border-box;padding-bottom: 0.4em;background-color: white;}#sk-container-id-1 div.sk-label label {font-family: monospace;font-weight: bold;display: inline-block;line-height: 1.2em;}#sk-container-id-1 div.sk-label-container {text-align: center;}#sk-container-id-1 div.sk-container {/* jupyter's `normalize.less` sets `[hidden] { display: none; }` but bootstrap.min.css set `[hidden] { display: none !important; }` so we also need the `!important` here to be able to override the default hidden behavior on the sphinx rendered scikit-learn.org. See: https://github.com/scikit-learn/scikit-learn/issues/21755 */display: inline-block !important;position: relative;}#sk-container-id-1 div.sk-text-repr-fallback {display: none;}</style><div id=\"sk-container-id-1\" class=\"sk-top-container\"><div class=\"sk-text-repr-fallback\"><pre>Pipeline(steps=[(&#x27;vectorizer&#x27;,\n",
" TfidfVectorizer(max_df=0.3, min_df=3, sublinear_tf=True)),\n",
" (&#x27;classifier&#x27;, LinearSVC())])</pre><b>In a Jupyter environment, please rerun this cell to show the HTML representation or trust the notebook. <br />On GitHub, the HTML representation is unable to render, please try loading this page with nbviewer.org.</b></div><div class=\"sk-container\" hidden><div class=\"sk-item sk-dashed-wrapped\"><div class=\"sk-label-container\"><div class=\"sk-label sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"sk-estimator-id-1\" type=\"checkbox\" ><label for=\"sk-estimator-id-1\" class=\"sk-toggleable__label sk-toggleable__label-arrow\">Pipeline</label><div class=\"sk-toggleable__content\"><pre>Pipeline(steps=[(&#x27;vectorizer&#x27;,\n",
" TfidfVectorizer(max_df=0.3, min_df=3, sublinear_tf=True)),\n",
" (&#x27;classifier&#x27;, LinearSVC())])</pre></div></div></div><div class=\"sk-serial\"><div class=\"sk-item\"><div class=\"sk-estimator sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"sk-estimator-id-2\" type=\"checkbox\" ><label for=\"sk-estimator-id-2\" class=\"sk-toggleable__label sk-toggleable__label-arrow\">TfidfVectorizer</label><div class=\"sk-toggleable__content\"><pre>TfidfVectorizer(max_df=0.3, min_df=3, sublinear_tf=True)</pre></div></div></div><div class=\"sk-item\"><div class=\"sk-estimator sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"sk-estimator-id-3\" type=\"checkbox\" ><label for=\"sk-estimator-id-3\" class=\"sk-toggleable__label sk-toggleable__label-arrow\">LinearSVC</label><div class=\"sk-toggleable__content\"><pre>LinearSVC()</pre></div></div></div></div></div></div></div>"
],
"text/plain": [
"Pipeline(steps=[('vectorizer',\n",
" TfidfVectorizer(max_df=0.3, min_df=3, sublinear_tf=True)),\n",
" ('classifier', LinearSVC())])"
]
},
"execution_count": 10,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"from sklearn.model_selection import train_test_split\n",
"from sklearn.svm import LinearSVC\n",
"from sklearn.pipeline import Pipeline\n",
"from sklearn.feature_extraction.text import TfidfVectorizer\n",
"\n",
"\n",
"X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=0)\n",
"\n",
"model = Pipeline(\n",
" steps=[\n",
" (\"vectorizer\", TfidfVectorizer(sublinear_tf=True, min_df=3, max_df=0.3)),\n",
" (\"classifier\", LinearSVC()),\n",
" ]\n",
") # baseline model\n",
"\n",
"model.fit(X_train, y_train)"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"array([0.81, 0.68, 0.73, 0.75, 0.81])"
]
},
"execution_count": 11,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"from sklearn.model_selection import cross_val_score\n",
"\n",
"cross_val_score(model, X, y, cv=5)"
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
" precision recall f1-score support\n",
"\n",
" False 0.73 0.96 0.83 45\n",
" True 0.95 0.71 0.81 55\n",
"\n",
" accuracy 0.82 100\n",
" macro avg 0.84 0.83 0.82 100\n",
"weighted avg 0.85 0.82 0.82 100\n",
"\n"
]
},
{
"data": {
"image/png": "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",
"text/plain": [
"<Figure size 432x288 with 2 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"y_predicted = model.predict(X_test)\n",
"print(\n",
" sklearn.metrics.classification_report(\n",
" [y > 0 for y in y_test], [y > 0 for y in y_predicted]\n",
" )\n",
")\n",
"sklearn.metrics.ConfusionMatrixDisplay.from_predictions(\n",
" [y > 0 for y in y_test],\n",
" [y > 0 for y in y_predicted],\n",
" xticks_rotation=\"vertical\",\n",
" values_format=\".2f\",\n",
")\n",
"None"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3.10.4 ('.env': venv)",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.10.4"
},
"orig_nbformat": 4,
"vscode": {
"interpreter": {
"hash": "02dd6d3afbfa9fbbe1037d64ad9014965528a1ccad21929d6e72f466389a68ad"
}
}
},
"nbformat": 4,
"nbformat_minor": 2
}