{ "nbformat": 4, "nbformat_minor": 0, "metadata": { "colab": { "name": "ok_toxic_classification_and_vectors.ipynb", "provenance": [], "collapsed_sections": [] }, "kernelspec": { "name": "python3", "display_name": "Python 3" }, "language_info": { "name": "python" } }, "cells": [ { "cell_type": "markdown", "metadata": { "id": "F1K-KbJRElOa" }, "source": [ "# Классификация токсичных комментариев логистической регрессией" ] }, { "cell_type": "markdown", "metadata": { "id": "0HusYfbch0qt" }, "source": [ "https://cups.mail.ru/ru/tasks/1048" ] }, { "cell_type": "code", "metadata": { "id": "7TwDSJ_N-cuF", "colab": { "base_uri": "https://localhost:8080/" }, "outputId": "683b057f-2fe6-4a4e-c92e-35975fd0e80f" }, "source": [ "!wget https://cups.mail.ru/api_v2/task/1048/27 -O train.txt" ], "execution_count": null, "outputs": [ { "output_type": "stream", "text": [ "--2021-07-23 06:57:20-- https://cups.mail.ru/api_v2/task/1048/27\n", "Resolving cups.mail.ru (cups.mail.ru)... 188.93.56.95\n", "Connecting to cups.mail.ru (cups.mail.ru)|188.93.56.95|:443... connected.\n", "HTTP request sent, awaiting response... 200 OK\n", "Length: 24525472 (23M) [text/plain]\n", "Saving to: ‘train.txt’\n", "\n", "train.txt 100%[===================>] 23.39M 10.2MB/s in 2.3s \n", "\n", "2021-07-23 06:57:24 (10.2 MB/s) - ‘train.txt’ saved [24525472/24525472]\n", "\n" ], "name": "stdout" } ] }, { "cell_type": "code", "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "4secCUaUAHpf", "outputId": "7b589b40-571b-4cc8-b966-9c7b0250e25b" }, "source": [ "! head train.txt" ], "execution_count": null, "outputs": [ { "output_type": "stream", "text": [ "41127\t__label__THREAT\tдворника надо тоже уничтожить!\n", "6812\t__label__NORMAL\tмоя старшая неделю шипела, не принимала подкидыша, которого я принесла. китя такой славный, потерпите немного, мои теперь душа в душу живут, ваша примет попозже. а котенок необыкновенно красивый.\n", "6256\t__label__NORMAL\tполностью с вами согласна!\n", "189636\t__label__NORMAL\tхоть ногу вверх, ничего не изменится\n", "99053\t__label__NORMAL\tа что значит - левого ребенка?\n", "98418\t__label__NORMAL\tвечер добрый! а, что он у вас уже постарел?!\n", "3619\t__label__NORMAL\tкакая порода .?\n", "176463\t__label__INSULT\tспасатель? просто петух чванливый, взял наших пацанов в заложники и торгуется. позор! как бы сам в щи не попал.\n", "13520\t__label__NORMAL\tс замечательным юбилеем!!! голос- чудо, заслушаешься 😍и про чтение все правильно- ничто не сравнится с бумажной книгой!\n", "133613\t__label__NORMAL\tеще бы .такой красавец.\n" ], "name": "stdout" } ] }, { "cell_type": "code", "metadata": { "id": "j47IyDHK_1VU" }, "source": [ "import pandas as pd" ], "execution_count": null, "outputs": [] }, { "cell_type": "code", "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "hNqzxwnM_q7L", "outputId": "a237b827-baee-4d1f-c338-329ceae02e78" }, "source": [ "data = []\n", "with open('train.txt', 'r') as f:\n", " for line in f.readlines():\n", " parts = line.split('\\t')\n", " data.append({\n", " 'id': parts[0],\n", " 'text': parts[-1].strip(),\n", " 'labels': parts[1:-1],\n", " 'toxic': int(parts[1] != '__label__NORMAL')\n", " })\n", " \n", "data = pd.DataFrame(data)\n", "data.toxic.value_counts()" ], "execution_count": null, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "0 122194\n", "1 26581\n", "Name: toxic, dtype: int64" ] }, "metadata": { "tags": [] }, "execution_count": 4 } ] }, { "cell_type": "code", "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "jFtHkrn6Agr2", "outputId": "09ca01fe-3ef3-4063-cbe0-88530219925d" }, "source": [ "data.labels.apply(tuple).value_counts()" ], "execution_count": null, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "(__label__NORMAL,) 122194\n", "(__label__INSULT,) 17007\n", "(__label__INSULT, __label__THREAT) 3747\n", "(__label__THREAT,) 3263\n", "(__label__OBSCENITY,) 1323\n", "(__label__INSULT, __label__OBSCENITY) 1087\n", "(__label__INSULT, __label__OBSCENITY, __label__THREAT) 111\n", "(__label__OBSCENITY, __label__THREAT) 43\n", "Name: labels, dtype: int64" ] }, "metadata": { "tags": [] }, "execution_count": 5 } ] }, { "cell_type": "code", "metadata": { "id": "b362vEgRBWad" }, "source": [ "pd.options.display.max_colwidth = 200" ], "execution_count": null, "outputs": [] }, { "cell_type": "code", "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 362 }, "id": "sJpev-rS-7oh", "outputId": "5e2cee23-ca95-4d40-8d11-8049443f5385" }, "source": [ "data.sample(10)" ], "execution_count": null, "outputs": [ { "output_type": "execute_result", "data": { "text/html": [ "
\n", " | id | \n", "text | \n", "labels | \n", "toxic | \n", "
---|---|---|---|---|
77892 | \n", "133009 | \n", "ты чурка тупа, выучи русский язык отбросы, набор слов написал какой-то... псина. | \n", "[__label__INSULT] | \n", "1 | \n", "
54060 | \n", "175778 | \n", "здравствуйте, подскажите пожалуйста сколько стоит детский билет,ребенку 7 лет и сколько стоит багаж? | \n", "[__label__NORMAL] | \n", "0 | \n", "
93254 | \n", "108185 | \n", "да, жаль то время прошло когда ценилась дружба, родство | \n", "[__label__NORMAL] | \n", "0 | \n", "
131894 | \n", "211922 | \n", "замораживать!!! | \n", "[__label__NORMAL] | \n", "0 | \n", "
56550 | \n", "171953 | \n", "дейзики есть в наличии? | \n", "[__label__NORMAL] | \n", "0 | \n", "
39244 | \n", "154430 | \n", "аскитесь, патриот, практика показывает, что сша, вызывает эпидемии, выращивает террористов , и постоянно ставит мир на грань выживания. | \n", "[__label__NORMAL] | \n", "0 | \n", "
94700 | \n", "198586 | \n", "я жиу в испании и когда они спелые и идут дожди ,видно от сырости они взрываютса..здесь они очень сладкие но не такие красные ...видно разные сорта есть.. | \n", "[__label__NORMAL] | \n", "0 | \n", "
23112 | \n", "55579 | \n", "надо всех чиновников посадить на эту пенсию и сказать..им ни в чем себе не отказывай... сучара | \n", "[__label__INSULT] | \n", "1 | \n", "
82710 | \n", "236179 | \n", "а там дальше зависит от типа пандемии | \n", "[__label__NORMAL] | \n", "0 | \n", "
88968 | \n", "110340 | \n", "а чем лучше предатель власов -такая же -------- как и бандера - так чо пидарья везде хватает | \n", "[__label__INSULT] | \n", "1 | \n", "