{"metadata":{"kernelspec":{"language":"python","display_name":"Python 3","name":"python3"},"language_info":{"name":"python","version":"3.10.12","mimetype":"text/x-python","codemirror_mode":{"name":"ipython","version":3},"pygments_lexer":"ipython3","nbconvert_exporter":"python","file_extension":".py"}},"nbformat_minor":4,"nbformat":4,"cells":[{"cell_type":"code","source":"import pandas as pd\nimport numpy as np\nfrom sklearn.preprocessing import LabelEncoder\nfrom sklearn.ensemble import GradientBoostingClassifier\nfrom sklearn.feature_extraction.text import TfidfVectorizer\nfrom sklearn.feature_extraction.text import CountVectorizer\nfrom sklearn.metrics import accuracy_score\nfrom sklearn.model_selection import train_test_split","metadata":{"execution":{"iopub.status.busy":"2023-09-02T03:47:07.256127Z","iopub.execute_input":"2023-09-02T03:47:07.256542Z","iopub.status.idle":"2023-09-02T03:47:07.263750Z","shell.execute_reply.started":"2023-09-02T03:47:07.256511Z","shell.execute_reply":"2023-09-02T03:47:07.262322Z"},"trusted":true},"execution_count":18,"outputs":[]},{"cell_type":"code","source":"df = pd.read_csv('/kaggle/input/textclassificationanton/dataset_compress_20230829.csv', delimiter=\";\")\ndf","metadata":{"execution":{"iopub.status.busy":"2023-09-02T03:47:07.295581Z","iopub.execute_input":"2023-09-02T03:47:07.296079Z","iopub.status.idle":"2023-09-02T03:47:07.357395Z","shell.execute_reply.started":"2023-09-02T03:47:07.296037Z","shell.execute_reply":"2023-09-02T03:47:07.356132Z"},"trusted":true},"execution_count":19,"outputs":[{"execution_count":19,"output_type":"execute_result","data":{"text/plain":" X_train Y_train\n0 \"5. Позвонить в отдел по продажам. Позвоните с... \"описание этапов\"\n1 \"5. Позвонить в отдел по продажам. Позвоните с... \"обход секретаря\"\n2 \"2. Представьтесь и расскажите о компании. Пре... \"правила диалога\"\n3 \"2. Представьтесь и расскажите о компании. Пре... \"разговор с ЛПР\"\n4 \"3. Объясните причину звонка. Самый простой сп... \"правила диалога\"\n... ... ...\n7218 \"Продавец: «Давайте сделаем это. Вот список не... \"возражения\"\n7219 \"Продавец: «Давайте сделаем это. Вот список не... \"принятие решения\"\n7220 \"Продавец должен использовать эту версию метод... \"правила диалога\"\n7221 \"Продавец должен использовать эту версию метод... \"возражения\"\n7222 \"Продавец должен использовать эту версию метод... \"принятие решения\"\n\n[7223 rows x 2 columns]","text/html":"
\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
X_trainY_train
0\"5. Позвонить в отдел по продажам. Позвоните с...\"описание этапов\"
1\"5. Позвонить в отдел по продажам. Позвоните с...\"обход секретаря\"
2\"2. Представьтесь и расскажите о компании. Пре...\"правила диалога\"
3\"2. Представьтесь и расскажите о компании. Пре...\"разговор с ЛПР\"
4\"3. Объясните причину звонка. Самый простой сп...\"правила диалога\"
.........
7218\"Продавец: «Давайте сделаем это. Вот список не...\"возражения\"
7219\"Продавец: «Давайте сделаем это. Вот список не...\"принятие решения\"
7220\"Продавец должен использовать эту версию метод...\"правила диалога\"
7221\"Продавец должен использовать эту версию метод...\"возражения\"
7222\"Продавец должен использовать эту версию метод...\"принятие решения\"
\n

7223 rows × 2 columns

\n
"},"metadata":{}}]},{"cell_type":"code","source":"# Создаем экземпляр класса LabelEncoder\nlabel_encoder = LabelEncoder()\n\n# Преобразуем метки классов в числовые значения\ndf['Y_encoded'] = label_encoder.fit_transform(df['Y_train'])","metadata":{"execution":{"iopub.status.busy":"2023-09-02T03:47:07.359495Z","iopub.execute_input":"2023-09-02T03:47:07.359833Z","iopub.status.idle":"2023-09-02T03:47:07.368418Z","shell.execute_reply.started":"2023-09-02T03:47:07.359804Z","shell.execute_reply":"2023-09-02T03:47:07.367192Z"},"trusted":true},"execution_count":20,"outputs":[]},{"cell_type":"code","source":"df","metadata":{"execution":{"iopub.status.busy":"2023-09-02T03:47:07.370387Z","iopub.execute_input":"2023-09-02T03:47:07.370785Z","iopub.status.idle":"2023-09-02T03:47:07.391947Z","shell.execute_reply.started":"2023-09-02T03:47:07.370756Z","shell.execute_reply":"2023-09-02T03:47:07.390398Z"},"trusted":true},"execution_count":21,"outputs":[{"execution_count":21,"output_type":"execute_result","data":{"text/plain":" X_train Y_train \\\n0 \"5. Позвонить в отдел по продажам. Позвоните с... \"описание этапов\" \n1 \"5. Позвонить в отдел по продажам. Позвоните с... \"обход секретаря\" \n2 \"2. Представьтесь и расскажите о компании. Пре... \"правила диалога\" \n3 \"2. Представьтесь и расскажите о компании. Пре... \"разговор с ЛПР\" \n4 \"3. Объясните причину звонка. Самый простой сп... \"правила диалога\" \n... ... ... \n7218 \"Продавец: «Давайте сделаем это. Вот список не... \"возражения\" \n7219 \"Продавец: «Давайте сделаем это. Вот список не... \"принятие решения\" \n7220 \"Продавец должен использовать эту версию метод... \"правила диалога\" \n7221 \"Продавец должен использовать эту версию метод... \"возражения\" \n7222 \"Продавец должен использовать эту версию метод... \"принятие решения\" \n\n Y_encoded \n0 11 \n1 10 \n2 14 \n3 18 \n4 14 \n... ... \n7218 4 \n7219 17 \n7220 14 \n7221 4 \n7222 17 \n\n[7223 rows x 3 columns]","text/html":"
\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
X_trainY_trainY_encoded
0\"5. Позвонить в отдел по продажам. Позвоните с...\"описание этапов\"11
1\"5. Позвонить в отдел по продажам. Позвоните с...\"обход секретаря\"10
2\"2. Представьтесь и расскажите о компании. Пре...\"правила диалога\"14
3\"2. Представьтесь и расскажите о компании. Пре...\"разговор с ЛПР\"18
4\"3. Объясните причину звонка. Самый простой сп...\"правила диалога\"14
............
7218\"Продавец: «Давайте сделаем это. Вот список не...\"возражения\"4
7219\"Продавец: «Давайте сделаем это. Вот список не...\"принятие решения\"17
7220\"Продавец должен использовать эту версию метод...\"правила диалога\"14
7221\"Продавец должен использовать эту версию метод...\"возражения\"4
7222\"Продавец должен использовать эту версию метод...\"принятие решения\"17
\n

7223 rows × 3 columns

\n
"},"metadata":{}}]},{"cell_type":"code","source":"# Создаем экземпляр класса TfidfVectorizer\ntfidf_vectorizer = TfidfVectorizer()\n\n# Преобразуем текстовые данные в векторы TF-IDF\nX_vectorized = tfidf_vectorizer.fit_transform(df['X_train'])\nprint(X_vectorized)","metadata":{"execution":{"iopub.status.busy":"2023-09-02T03:47:07.395508Z","iopub.execute_input":"2023-09-02T03:47:07.396071Z","iopub.status.idle":"2023-09-02T03:47:07.706852Z","shell.execute_reply.started":"2023-09-02T03:47:07.396025Z","shell.execute_reply":"2023-09-02T03:47:07.705713Z"},"trusted":true},"execution_count":22,"outputs":[{"name":"stdout","text":" (0, 3334)\t0.110415984485078\n (0, 4179)\t0.08261072128142914\n (0, 1422)\t0.2128674245716787\n (0, 4310)\t0.22683480964396519\n (0, 11035)\t0.10654702134603232\n (0, 9536)\t0.2913609433538702\n (0, 5292)\t0.2818214423229629\n (0, 3170)\t0.2453915981863474\n (0, 7734)\t0.13843375194459065\n (0, 5573)\t0.21184704027358023\n (0, 2899)\t0.12602955875311148\n (0, 9442)\t0.2744220304664628\n (0, 6194)\t0.24273739215306636\n (0, 9308)\t0.24027998119681926\n (0, 820)\t0.10684215248949677\n (0, 5266)\t0.12773441365422933\n (0, 3372)\t0.12528268319018507\n (0, 6567)\t0.2453915981863474\n (0, 7264)\t0.22845268529894\n (0, 8825)\t0.20630754801645093\n (0, 6463)\t0.2379921863298473\n (0, 7736)\t0.16715815817388044\n (0, 6156)\t0.10527069239043874\n (0, 5572)\t0.21613168489934306\n (0, 6464)\t0.18886236768981884\n :\t:\n (7222, 1137)\t0.10073928741269939\n (7222, 10085)\t0.10272603777955581\n (7222, 772)\t0.12187251571319775\n (7222, 9907)\t0.11150433655009354\n (7222, 11192)\t0.10693831907944727\n (7222, 11193)\t0.12399487633202806\n (7222, 2070)\t0.11911352269253606\n (7222, 6964)\t0.11441922304155085\n (7222, 10086)\t0.09667408877492263\n (7222, 7448)\t0.15050511416346635\n (7222, 9061)\t0.11253614591867475\n (7222, 2274)\t0.10917434606555622\n (7222, 2269)\t0.07082075757190004\n (7222, 3134)\t0.11458326534107716\n (7222, 3333)\t0.0779950668216069\n (7222, 6969)\t0.10214083311786232\n (7222, 10622)\t0.16659436942230438\n (7222, 3223)\t0.06594802135483159\n (7222, 4518)\t0.053645439253052006\n (7222, 11033)\t0.11203134631972902\n (7222, 11187)\t0.06256165576576991\n (7222, 3334)\t0.0772911144399516\n (7222, 4179)\t0.11565489801692229\n (7222, 11035)\t0.07458284286008494\n (7222, 5266)\t0.08941400314193994\n","output_type":"stream"}]},{"cell_type":"code","source":"from sklearn.feature_extraction.text import CountVectorizer\n\n# Создаем экземпляр класса CountVectorizer\ncount_vectorizer = CountVectorizer()\n\n# Преобразуем текстовые данные в векторы\nX_vectorized = count_vectorizer.fit_transform(df['X_train'])","metadata":{"execution":{"iopub.status.busy":"2023-09-02T03:47:07.710860Z","iopub.execute_input":"2023-09-02T03:47:07.711226Z","iopub.status.idle":"2023-09-02T03:47:08.004532Z","shell.execute_reply.started":"2023-09-02T03:47:07.711196Z","shell.execute_reply":"2023-09-02T03:47:08.002480Z"},"trusted":true},"execution_count":23,"outputs":[]},{"cell_type":"code","source":"# Создаем экземпляр класса CountVectorizer\ncount_vectorizer = CountVectorizer()\n\n# Преобразуем текстовые данные в векторы\nX_vectorized = count_vectorizer.fit_transform(df['X_train'])\n\n# Разделяем данные на обучающую и тестовую выборки\nX_train, X_test, y_train, y_test = train_test_split(X_vectorized, df['Y_encoded'], test_size=0.2, random_state=42)\n\n# Создаем и обучаем модель градиентного бустинга\ngb_model = GradientBoostingClassifier()\ngb_model.fit(X_train, y_train)\n\n# Предсказываем значения для тестовой выборки\ny_pred = gb_model.predict(X_test)\n\n# Оцениваем точность модели\naccuracy = accuracy_score(y_test, y_pred)\nprint(\"Точность модели градиентного бустинга:\", accuracy)","metadata":{"execution":{"iopub.status.busy":"2023-09-02T03:47:08.007241Z","iopub.execute_input":"2023-09-02T03:47:08.007800Z"},"trusted":true},"execution_count":null,"outputs":[]}]}