[e01b6c]: / CNN for data extraction from medical records.ipynb

Download this file

439 lines (438 with data), 59.0 kB

{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "9cafc10b",
   "metadata": {},
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "import os\n",
    "from random import shuffle\n",
    "import re\n",
    "import urllib.request\n",
    "import zipfile\n",
    "import lxml.etree\n",
    "import codecs"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "id": "c183c134",
   "metadata": {},
   "outputs": [],
   "source": [
    "sentences = []\n",
    "fileAllRecords = codecs.open (r'Path.txt',\n",
    "            \"r\",  encoding = 'utf-8')\n",
    "\n",
    "allStrings = fileAllRecords.readlines()\n",
    "new_file = codecs.open(r'Path', 'w',   encoding = 'utf-8')\n",
    "\n",
    "for string in allStrings:\n",
    "    if len(string) > 20:\n",
    "        new_file.write(string)\n",
    "\n",
    "full_new_corpus = open(r'Path.txt', 'r',  encoding = 'utf-8')\n",
    "lines = full_new_corpus.readlines()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "64d9184a",
   "metadata": {},
   "outputs": [],
   "source": [
    "\n",
    "import re \n",
    "import pymorphy2\n",
    "\n",
    "def lemmatization_samples(samples):\n",
    "    morph = pymorphy2.MorphAnalyzer()\n",
    "    new_samples = []\n",
    "    for s in samples:\n",
    "        new_s = \"\"\n",
    "        for w in s.split():\n",
    "            r = re.compile(\"[^а-zА-Z]+\")\n",
    "            w = r.sub('', w).lower()\n",
    "            w = morph.parse(w)[0].normal_form\n",
    "            new_s += w + \" \"\n",
    "        new_samples.append(new_s)\n",
    "    return new_samples\n",
    "\n",
    "sentences = lemmatization_samples(sentences) "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "id": "ce416a9b",
   "metadata": {},
   "outputs": [],
   "source": [
    "for sent_str in lines:\n",
    "    tokens = re.sub(\"[a-z0-9]+.,´-\", \" \", sent_str.lower()).split()\n",
    "    sentences.append(tokens)\n",
    "\n",
    "from gensim.models import Word2Vec\n",
    "\n",
    "model = Word2Vec(sentences=sentences, vector_size=50, window=4, min_count=3, workers=4, sg=0)\n",
    "model.train(sentences, total_examples=len(sentences), epochs=100)\n",
    "model.save('model.bin')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "id": "d818a57a",
   "metadata": {},
   "outputs": [],
   "source": [
    "from keras.preprocessing.text import Tokenizer\n",
    "from keras.preprocessing.sequence import pad_sequences\n",
    "from keras.models import Sequential\n",
    "from keras.layers import Dense, Flatten, LSTM, Conv1D, Conv2D, MaxPooling1D, Dropout, Activation\n",
    "from keras.layers.embeddings import Embedding\n",
    "from keras import optimizers\n",
    "\n",
    "from keras.layers import Flatten, Dropout, Conv2D, MaxPooling2D\n",
    "from tensorflow.keras.optimizers import RMSprop\n",
    "\n",
    "import pandas\n",
    "from sklearn.model_selection import KFold\n",
    "from matplotlib import pyplot as plt\n",
    "from sklearn.metrics import f1_score\n",
    "from sklearn.preprocessing import MultiLabelBinarizer\n",
    "\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "id": "396879b9",
   "metadata": {},
   "outputs": [],
   "source": [
    "#get data in words\n",
    "some_data = pandas.read_csv(r\"test.csv\",\n",
    "                            sep=' ; ', encoding = 'utf-8', engine='python', index_col=False)\n",
    "\n",
    "labels = some_data.iloc[:,0]\n",
    "samples = some_data.iloc[:,1]\n",
    "\n",
    "num_of_diagnoses = len(set(labels))\n",
    "\n",
    "#convert labels to categorical\n",
    "from sklearn.preprocessing import LabelEncoder\n",
    "from keras.utils import np_utils\n",
    "encoder = LabelEncoder()\n",
    "encoder.fit(labels)\n",
    "encoded_labels = encoder.transform(labels)\n",
    "Y_encoded = np_utils.to_categorical(encoded_labels)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "id": "3708d1b0",
   "metadata": {},
   "outputs": [],
   "source": [
    "def preprocessing_samples(samples):\n",
    "    morph = pymorphy2.MorphAnalyzer()\n",
    "    new_samples = []\n",
    "    for s in samples:\n",
    "        new_s = \"\"\n",
    "        for w in s.split():\n",
    "            r = re.compile(\"[^a-zA-Z ]+\")\n",
    "            w = r.sub('', w).lower()\n",
    "            w = morph.parse(w)[0].normal_form  \n",
    "            new_s += w + \" \"\n",
    "        new_samples.append(new_s)\n",
    "    return new_samples\n",
    "\n",
    "samples = preprocessing_samples(samples) \n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "id": "9cddc576",
   "metadata": {},
   "outputs": [],
   "source": [
    "#Word2Vec load\n",
    "def words_in_sample(samples):\n",
    "    \"\"\"Max number of words in one sample\"\"\"\n",
    "    max_len = 0\n",
    "    for sample in samples:\n",
    "        cur_sample = sample.split()\n",
    "        max_len = len(cur_sample) if len(cur_sample) > max_len else max_len\n",
    "    return max_len\n",
    "\n",
    "max_words_in_sample = words_in_sample(samples)\n",
    "#load word2vec model\n",
    "from gensim.models import Word2Vec, KeyedVectors\n",
    "\n",
    "# my model\n",
    "word2vecModel = Word2Vec.load(\"model.bin\")\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "id": "7d60bdd5",
   "metadata": {},
   "outputs": [],
   "source": [
    "from collections import defaultdict\n",
    "modelWord_from_word = dict()\n",
    "\n",
    "for inx in range(len(word2vecModel.wv.key_to_index)):\n",
    "    modelWord_from_word[word2vecModel.wv.index_to_key[inx].split('_')[0]] = word2vecModel.wv.index_to_key[inx]\n",
    "\n",
    "from keras.preprocessing.text import text_to_word_sequence\n",
    "def get_embedded_samples(samples, word2vecModel, words_in_sample):\n",
    "    \"\"\"get word2vec embeddings for given samples and words absent in given word2vec model\"\"\"\n",
    "    new_x = np.zeros((len(samples), word2vecModel.vector_size*words_in_sample))\n",
    "    absent_words = []\n",
    "    i = 0 \n",
    "    for sample in samples:\n",
    "        current_sample = text_to_word_sequence(sample)\n",
    "        newcur_x = np.zeros((1, word2vecModel.vector_size*max_words_in_sample))\n",
    "        j = 0\n",
    "        for word in current_sample:\n",
    "            if word in modelWord_from_word:\n",
    "                newcur_x[:, j:j+word2vecModel.vector_size] = (word2vecModel.wv[modelWord_from_word[word]])\n",
    "                j += word2vecModel.vector_size\n",
    "            else:\n",
    "                absent_words.append(word)\n",
    "        new_x[i] = newcur_x\n",
    "        i += 1\n",
    "    return new_x, absent_words\n",
    "\n",
    "new_x, absentWords = get_embedded_samples(samples, word2vecModel, max_words_in_sample)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "id": "983463f9",
   "metadata": {},
   "outputs": [],
   "source": [
    "def create_network():\n",
    "    model_CNN = Sequential([\n",
    "        Conv2D(32, (3, 3), activation='relu',\n",
    "               input_shape=(max_words_in_sample,\n",
    "                            word2vecModel.vector_size,\n",
    "                            1),\n",
    "               data_format=\"channels_last\"),\n",
    "        MaxPooling2D((2,2), padding='same'),\n",
    "        Dropout(0.25),\n",
    "\n",
    "        Conv2D(64, (2, 2), activation='relu'),\n",
    "        MaxPooling2D((2,2), padding='same'),\n",
    "        Dropout(0.25),\n",
    "\n",
    "        Flatten(),\n",
    "        Dense(256, activation='relu'),\n",
    "        Dropout(0.5),\n",
    "        Dense(num_of_diagnoses, activation='softmax')])\n",
    "\n",
    "    model_CNN.compile(optimizer=RMSprop(lr=0.001),\n",
    "                      loss='categorical_crossentropy',\n",
    "                      metrics=['accuracy'])\n",
    "    return model_CNN\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "id": "a2cc859e",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch 1/10\n",
      "1/1 [==============================] - 1s 816ms/step - loss: 3.2444 - accuracy: 0.1176 - val_loss: 3.5865 - val_accuracy: 0.0000e+00\n",
      "Epoch 2/10\n",
      "1/1 [==============================] - 0s 43ms/step - loss: 2.7458 - accuracy: 0.1176 - val_loss: 3.8463 - val_accuracy: 0.0000e+00\n",
      "Epoch 3/10\n",
      "1/1 [==============================] - 0s 51ms/step - loss: 2.7483 - accuracy: 0.1176 - val_loss: 3.7823 - val_accuracy: 0.0000e+00\n",
      "Epoch 4/10\n",
      "1/1 [==============================] - 0s 51ms/step - loss: 2.5846 - accuracy: 0.2941 - val_loss: 4.0130 - val_accuracy: 0.0000e+00\n",
      "Epoch 5/10\n",
      "1/1 [==============================] - 0s 50ms/step - loss: 2.4616 - accuracy: 0.2353 - val_loss: 4.0984 - val_accuracy: 0.0000e+00\n",
      "Epoch 6/10\n",
      "1/1 [==============================] - 0s 57ms/step - loss: 2.1347 - accuracy: 0.4706 - val_loss: 4.3427 - val_accuracy: 0.0000e+00\n",
      "Epoch 7/10\n",
      "1/1 [==============================] - 0s 43ms/step - loss: 2.3721 - accuracy: 0.3529 - val_loss: 4.5549 - val_accuracy: 0.0000e+00\n",
      "Epoch 8/10\n",
      "1/1 [==============================] - 0s 45ms/step - loss: 2.5455 - accuracy: 0.1765 - val_loss: 4.7046 - val_accuracy: 0.0000e+00\n",
      "Epoch 9/10\n",
      "1/1 [==============================] - 0s 53ms/step - loss: 2.3466 - accuracy: 0.2353 - val_loss: 4.6282 - val_accuracy: 0.0000e+00\n",
      "Epoch 10/10\n",
      "1/1 [==============================] - 0s 52ms/step - loss: 2.1220 - accuracy: 0.4118 - val_loss: 4.4499 - val_accuracy: 0.0000e+00\n",
      "Epoch 1/10\n",
      "1/1 [==============================] - 1s 739ms/step - loss: 3.4322 - accuracy: 0.0000e+00 - val_loss: 3.4956 - val_accuracy: 0.0000e+00\n",
      "Epoch 2/10\n",
      "1/1 [==============================] - 0s 37ms/step - loss: 3.3399 - accuracy: 0.0000e+00 - val_loss: 3.5247 - val_accuracy: 0.0000e+00\n",
      "Epoch 3/10\n",
      "1/1 [==============================] - 0s 42ms/step - loss: 2.9631 - accuracy: 0.1176 - val_loss: 3.6416 - val_accuracy: 0.0000e+00\n",
      "Epoch 4/10\n",
      "1/1 [==============================] - 0s 51ms/step - loss: 2.8239 - accuracy: 0.0588 - val_loss: 3.6962 - val_accuracy: 0.0000e+00\n",
      "Epoch 5/10\n",
      "1/1 [==============================] - 0s 66ms/step - loss: 2.4786 - accuracy: 0.2941 - val_loss: 3.7688 - val_accuracy: 0.0000e+00\n",
      "Epoch 6/10\n",
      "1/1 [==============================] - 0s 50ms/step - loss: 2.6336 - accuracy: 0.1176 - val_loss: 3.7802 - val_accuracy: 0.0000e+00\n",
      "Epoch 7/10\n",
      "1/1 [==============================] - 0s 49ms/step - loss: 2.5674 - accuracy: 0.2353 - val_loss: 3.8051 - val_accuracy: 0.0000e+00\n",
      "Epoch 8/10\n",
      "1/1 [==============================] - 0s 39ms/step - loss: 2.1251 - accuracy: 0.4118 - val_loss: 3.9043 - val_accuracy: 0.0000e+00\n",
      "Epoch 9/10\n",
      "1/1 [==============================] - 0s 45ms/step - loss: 2.3014 - accuracy: 0.2941 - val_loss: 3.9471 - val_accuracy: 0.0000e+00\n",
      "Epoch 10/10\n",
      "1/1 [==============================] - 0s 54ms/step - loss: 2.3043 - accuracy: 0.3529 - val_loss: 4.0018 - val_accuracy: 0.0000e+00\n",
      "Epoch 1/10\n",
      "1/1 [==============================] - 1s 821ms/step - loss: 3.1544 - accuracy: 0.0000e+00 - val_loss: 3.4289 - val_accuracy: 0.0000e+00\n",
      "Epoch 2/10\n",
      "1/1 [==============================] - 0s 49ms/step - loss: 3.2343 - accuracy: 0.0556 - val_loss: 3.5602 - val_accuracy: 0.0000e+00\n",
      "Epoch 3/10\n",
      "1/1 [==============================] - 0s 67ms/step - loss: 3.2300 - accuracy: 0.0000e+00 - val_loss: 3.5737 - val_accuracy: 0.0000e+00\n",
      "Epoch 4/10\n",
      "1/1 [==============================] - 0s 47ms/step - loss: 2.9136 - accuracy: 0.1667 - val_loss: 3.7166 - val_accuracy: 0.0000e+00\n",
      "Epoch 5/10\n",
      "1/1 [==============================] - 0s 51ms/step - loss: 2.7003 - accuracy: 0.1667 - val_loss: 3.8146 - val_accuracy: 0.0000e+00\n",
      "Epoch 6/10\n",
      "1/1 [==============================] - 0s 49ms/step - loss: 2.6158 - accuracy: 0.1667 - val_loss: 3.8005 - val_accuracy: 0.0000e+00\n",
      "Epoch 7/10\n",
      "1/1 [==============================] - 0s 64ms/step - loss: 2.4130 - accuracy: 0.2778 - val_loss: 3.6501 - val_accuracy: 0.0000e+00\n",
      "Epoch 8/10\n",
      "1/1 [==============================] - 0s 53ms/step - loss: 2.3655 - accuracy: 0.3889 - val_loss: 3.6982 - val_accuracy: 0.0000e+00\n",
      "Epoch 9/10\n",
      "1/1 [==============================] - 0s 52ms/step - loss: 2.0815 - accuracy: 0.4444 - val_loss: 3.8038 - val_accuracy: 0.0000e+00\n",
      "Epoch 10/10\n",
      "1/1 [==============================] - 0s 56ms/step - loss: 2.2378 - accuracy: 0.3333 - val_loss: 3.9684 - val_accuracy: 0.0000e+00\n",
      "Epoch 1/10\n",
      "1/1 [==============================] - 1s 951ms/step - loss: 3.1892 - accuracy: 0.0000e+00 - val_loss: 3.5943 - val_accuracy: 0.0000e+00\n",
      "Epoch 2/10\n",
      "1/1 [==============================] - 0s 57ms/step - loss: 2.8738 - accuracy: 0.1111 - val_loss: 3.6645 - val_accuracy: 0.0000e+00\n",
      "Epoch 3/10\n",
      "1/1 [==============================] - 0s 39ms/step - loss: 3.0650 - accuracy: 0.1111 - val_loss: 3.6499 - val_accuracy: 0.0000e+00\n",
      "Epoch 4/10\n",
      "1/1 [==============================] - 0s 42ms/step - loss: 2.6688 - accuracy: 0.1111 - val_loss: 3.6862 - val_accuracy: 0.0000e+00\n",
      "Epoch 5/10\n",
      "1/1 [==============================] - 0s 47ms/step - loss: 2.6148 - accuracy: 0.0556 - val_loss: 3.7885 - val_accuracy: 0.0000e+00\n",
      "Epoch 6/10\n",
      "1/1 [==============================] - 0s 48ms/step - loss: 2.5785 - accuracy: 0.2222 - val_loss: 3.8872 - val_accuracy: 0.0000e+00\n",
      "Epoch 7/10\n",
      "1/1 [==============================] - 0s 81ms/step - loss: 2.5052 - accuracy: 0.2778 - val_loss: 3.9845 - val_accuracy: 0.0000e+00\n",
      "Epoch 8/10\n",
      "1/1 [==============================] - 0s 42ms/step - loss: 2.3661 - accuracy: 0.3333 - val_loss: 4.1035 - val_accuracy: 0.0000e+00\n",
      "Epoch 9/10\n",
      "1/1 [==============================] - 0s 38ms/step - loss: 2.3365 - accuracy: 0.2778 - val_loss: 4.1271 - val_accuracy: 0.0000e+00\n",
      "Epoch 10/10\n",
      "1/1 [==============================] - 0s 54ms/step - loss: 2.4532 - accuracy: 0.2222 - val_loss: 4.1003 - val_accuracy: 0.0000e+00\n",
      "Epoch 1/10\n",
      "1/1 [==============================] - 1s 1s/step - loss: 3.1248 - accuracy: 0.0556 - val_loss: 3.5680 - val_accuracy: 0.0000e+00\n",
      "Epoch 2/10\n",
      "1/1 [==============================] - 0s 45ms/step - loss: 2.9414 - accuracy: 0.0556 - val_loss: 3.8748 - val_accuracy: 0.0000e+00\n",
      "Epoch 3/10\n",
      "1/1 [==============================] - 0s 44ms/step - loss: 2.8951 - accuracy: 0.0556 - val_loss: 3.9887 - val_accuracy: 0.0000e+00\n",
      "Epoch 4/10\n",
      "1/1 [==============================] - 0s 40ms/step - loss: 2.7659 - accuracy: 0.0556 - val_loss: 4.1472 - val_accuracy: 0.0000e+00\n",
      "Epoch 5/10\n",
      "1/1 [==============================] - 0s 42ms/step - loss: 2.6744 - accuracy: 0.2778 - val_loss: 4.3868 - val_accuracy: 0.0000e+00\n",
      "Epoch 6/10\n",
      "1/1 [==============================] - 0s 75ms/step - loss: 2.4798 - accuracy: 0.2222 - val_loss: 4.5266 - val_accuracy: 0.0000e+00\n",
      "Epoch 7/10\n",
      "1/1 [==============================] - 0s 64ms/step - loss: 2.3073 - accuracy: 0.3333 - val_loss: 4.8416 - val_accuracy: 0.0000e+00\n",
      "Epoch 8/10\n",
      "1/1 [==============================] - 0s 65ms/step - loss: 2.5268 - accuracy: 0.1111 - val_loss: 4.9002 - val_accuracy: 0.0000e+00\n",
      "Epoch 9/10\n",
      "1/1 [==============================] - 0s 62ms/step - loss: 2.4926 - accuracy: 0.2778 - val_loss: 4.9485 - val_accuracy: 0.0000e+00\n",
      "Epoch 10/10\n",
      "1/1 [==============================] - 0s 53ms/step - loss: 2.1174 - accuracy: 0.5000 - val_loss: 5.3694 - val_accuracy: 0.0000e+00\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "n_splits = 5\n",
    "n_epochs = 10\n",
    "\n",
    "x_CNN = new_x.reshape(new_x.shape[0], max_words_in_sample, word2vecModel.vector_size, 1)\n",
    "\n",
    "kf = KFold(n_splits=n_splits, shuffle=True, random_state=2)\n",
    "kf.get_n_splits(x_CNN)\n",
    "\n",
    "f1_score_all = []\n",
    "for train_index, test_index in kf.split(x_CNN):\n",
    "    X_train, X_test = x_CNN[train_index], x_CNN[test_index]\n",
    "    y_train, y_test = Y_encoded[train_index], Y_encoded[test_index]\n",
    "\n",
    "    model_CNN = create_network()\n",
    "\n",
    "    history_CNN = model_CNN.fit(X_train, y_train,\n",
    "                                epochs=n_epochs,\n",
    "                                verbose=1,\n",
    "                                batch_size = 128,\n",
    "                                validation_data=(X_test, y_test))\n",
    "\n",
    "    # summarize history for accuracy\n",
    "    plt.plot(history_CNN.history['accuracy'])\n",
    "    plt.plot(history_CNN.history['val_accuracy'])\n",
    "    plt.title('CNN accuracy')\n",
    "    plt.ylabel('accuracy')\n",
    "    plt.xlabel('epoch')\n",
    "    plt.legend(['train', 'test'], loc='lower right')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "fb76541e",
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "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.9.7"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}