great-ai/docs/examples/scibert/analyse.ipynb

235 lines
22 KiB
Text

{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"annotations/data/evaluation-experiment-2-stage #1-sa6a0y.json\n",
"annotations/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(\"annotations/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": 2,
"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": 3,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"0.3546448712421808"
]
},
"execution_count": 3,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"import sklearn.metrics\n",
"\n",
"sklearn.metrics.cohen_kappa_score(y1, y2)"
]
},
{
"cell_type": "code",
"execution_count": 4,
"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": 5,
"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": 5,
"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": 6,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"array([0.86, 0.74, 0.77, 0.84, 0.7 ])"
]
},
"execution_count": 6,
"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": 7,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
" precision recall f1-score support\n",
"\n",
" False 0.83 0.77 0.80 56\n",
" True 0.73 0.80 0.76 44\n",
"\n",
" accuracy 0.78 100\n",
" macro avg 0.78 0.78 0.78 100\n",
"weighted avg 0.78 0.78 0.78 100\n",
"\n"
]
},
{
"data": {
"text/plain": [
"<sklearn.metrics._plot.confusion_matrix.ConfusionMatrixDisplay at 0x7fb0ec933610>"
]
},
"execution_count": 7,
"metadata": {},
"output_type": "execute_result"
},
{
"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": "590d04b986175369d2a3cfc6a3cb86687cb152d8a3ff3e5e61bf670e70f6d913"
}
}
},
"nbformat": 4,
"nbformat_minor": 2
}