Az-r-ow commited on
Commit
e54bb7f
·
1 Parent(s): fd76209

WIP(ner): HMM for NER

Browse files
app/travel_resolver/libs/nlp/data_processing.py CHANGED
@@ -34,40 +34,35 @@ def get_tagged_content(sentence: str, tag: str) -> str | None:
34
  return None
35
 
36
 
37
- def process_sentence(sentence: str, dep_token="<Dep>", arr_token="<Arr>") -> tuple:
 
 
 
38
  """
39
- Given a sentence, extract the departure and arrival locations and tokenize the sentence.
40
- Then assign labels to the tokens based on whether they are part of the departure or arrival locations.
41
- Finally, return the inputs and labels will be returned.
42
 
43
- Args:
44
- sentence (str): The sentence to process.
45
- dep_token (str): The token to mark the departure location.
46
- arr_token (str): The token to mark the arrival location.
47
 
48
- Returns:
49
- tuple: A tuple containing the inputs and labels (inputs, labels).
 
 
 
 
50
  """
51
- bare_sentence = sentence.replace(dep_token, "").replace(arr_token, "")
52
- departure = get_tagged_content(sentence, dep_token)
53
- arrival = get_tagged_content(sentence, arr_token)
54
- tokenized_sentence = nltk.word_tokenize(bare_sentence)
55
- labels = []
56
- inputs = []
57
  for token in tokenized_sentence:
58
- if token in departure:
59
- departure_labels = [2] * len(token)
60
- labels.extend(departure_labels)
61
- elif token in arrival:
62
- arrival_labels = [3] * len(token)
63
- labels.extend(arrival_labels)
64
- else:
65
- default_labels = [1] * len(token)
66
- labels.extend(default_labels)
67
- int_chars = [ord(char) for char in token]
68
- inputs.extend(int_chars)
69
 
70
- return (inputs, labels)
71
 
72
 
73
  def convert_tagged_sentence_to_bio(
@@ -161,9 +156,12 @@ def from_tagged_file_to_bio_file(
161
  file.write(bio_format + "\n")
162
 
163
 
164
- def from_bio_file_to_examples(file_path: str) -> tuple:
165
  """
166
- Given a file path, read the file and convert the content to a tuple of inputs and labels.
 
 
 
167
 
168
  Args:
169
  file_path (str): The path to the file to read.
@@ -172,12 +170,13 @@ def from_bio_file_to_examples(file_path: str) -> tuple:
172
  tuple: A tuple containing the inputs and labels (inputs, labels).
173
  """
174
  stop_sentences = [".", "?", "!"]
 
175
 
176
  with open(file_path, "r") as file:
177
  content = file.read()
178
  lines = content.split("\n")
179
 
180
- inputs = []
181
  labels = []
182
 
183
  unique_labels = set()
@@ -187,6 +186,11 @@ def from_bio_file_to_examples(file_path: str) -> tuple:
187
  if (len(line.split(" "))) < 2:
188
  continue
189
  word, label = line.split(" ")
 
 
 
 
 
190
  unique_labels.add(label)
191
 
192
  unique_labels = list(unique_labels)
@@ -195,25 +199,34 @@ def from_bio_file_to_examples(file_path: str) -> tuple:
195
  unique_labels = sorted(unique_labels, key=lambda x: (x != "O", x))
196
 
197
  # mapping labels to ids
198
- unique_labels = {label: i + 1 for i, label in enumerate(unique_labels)}
 
 
 
199
 
200
- sentence_logits = []
201
  sentence_labels = []
202
  for line in lines:
203
  if (len(line.split(" "))) < 2:
204
  continue
205
  word, label = line.split(" ")
206
- ascii_code_chars = [ord(char) for char in word]
207
- chars_labels = [unique_labels[label]] * len(ascii_code_chars)
208
- sentence_logits.extend(ascii_code_chars)
209
- sentence_labels.extend(chars_labels)
 
 
 
 
 
 
210
  if word in stop_sentences:
211
- inputs.append(sentence_logits)
212
  labels.append(sentence_labels)
213
- sentence_logits = []
214
  sentence_labels = []
215
 
216
- return (inputs, labels)
217
 
218
 
219
  def from_examples_to_tf_dataset(
 
34
  return None
35
 
36
 
37
+ def process_sentence(
38
+ sentence: str,
39
+ stemming: bool = False,
40
+ ) -> str:
41
  """
42
+ Given a sentence, apply some processing techniques to the sentence and return the processed sentence
 
 
43
 
44
+ **Note**: We are stemming the tokens instead of lemmatizing them because stemming is faster and in our case
45
+ we are interested in getting a response the fastest way possible.
 
 
46
 
47
+ Args:
48
+ sentence (str): The sentence to process.
49
+ stemming (bool): Whether to stem the tokens.
50
+
51
+ Returns:
52
+ str: The processed sentence
53
  """
54
+ tokenized_sentence = nltk.word_tokenize(sentence)
55
+ stemmer = nltk.stem.snowball.FrenchStemmer()
56
+
57
+ processed_sentence = ""
58
+
 
59
  for token in tokenized_sentence:
60
+ token = token if not stemming else stemmer.stem(token)
61
+ processed_sentence += token + " "
62
+
63
+ processed_sentence = processed_sentence.strip()
 
 
 
 
 
 
 
64
 
65
+ return processed_sentence
66
 
67
 
68
  def convert_tagged_sentence_to_bio(
 
156
  file.write(bio_format + "\n")
157
 
158
 
159
+ def from_bio_file_to_examples(file_path: str, process_sentence: bool = False) -> tuple:
160
  """
161
+ Given a file path, read the file and convert the content to a tuple of sentences and their respective labels vectors.
162
+
163
+ **Note**: We are stemming the tokens instead of lemmatizing them because stemming is faster and in our case
164
+ we are interested in getting a response the fastest way possible.
165
 
166
  Args:
167
  file_path (str): The path to the file to read.
 
170
  tuple: A tuple containing the inputs and labels (inputs, labels).
171
  """
172
  stop_sentences = [".", "?", "!"]
173
+ stemmer = nltk.stem.snowball.FrenchStemmer()
174
 
175
  with open(file_path, "r") as file:
176
  content = file.read()
177
  lines = content.split("\n")
178
 
179
+ sentences = []
180
  labels = []
181
 
182
  unique_labels = set()
 
186
  if (len(line.split(" "))) < 2:
187
  continue
188
  word, label = line.split(" ")
189
+ label = (
190
+ "-".join(label.split("-")[-2:])
191
+ if label.startswith("B") or label.startswith("I")
192
+ else label
193
+ )
194
  unique_labels.add(label)
195
 
196
  unique_labels = list(unique_labels)
 
199
  unique_labels = sorted(unique_labels, key=lambda x: (x != "O", x))
200
 
201
  # mapping labels to ids
202
+ unique_labels = {label: i for i, label in enumerate(unique_labels)}
203
+
204
+ # tracking the vocabulary
205
+ vocab = set()
206
 
207
+ sentence_words = []
208
  sentence_labels = []
209
  for line in lines:
210
  if (len(line.split(" "))) < 2:
211
  continue
212
  word, label = line.split(" ")
213
+ label = (
214
+ "-".join(label.split("-")[-2:])
215
+ if label.startswith("B") or label.startswith("I")
216
+ else label
217
+ )
218
+ word = word if not process_sentence else stemmer.stem(word)
219
+ label = unique_labels[label]
220
+ sentence_words.append(word)
221
+ sentence_labels.append(label)
222
+ vocab.add(word)
223
  if word in stop_sentences:
224
+ sentences.append(" ".join(sentence_words))
225
  labels.append(sentence_labels)
226
+ sentence_words = []
227
  sentence_labels = []
228
 
229
+ return (sentences, labels, vocab, unique_labels)
230
 
231
 
232
  def from_examples_to_tf_dataset(
data/scripting_lcs_1/script.py CHANGED
@@ -56,7 +56,7 @@ def get_cities() -> List:
56
  """
57
 
58
  cities = []
59
- with open("../sncf_stations_database.csv", "r") as csvfile:
60
  reader = csv.DictReader(csvfile, delimiter=";")
61
  for row in reader:
62
  cities.append(row["COMMUNE"])
 
56
  """
57
 
58
  cities = []
59
+ with open("../sncf/sncf_stations_database.csv", "r") as csvfile:
60
  reader = csv.DictReader(csvfile, delimiter=";")
61
  for row in reader:
62
  cities.append(row["COMMUNE"])
hmm_ner.ipynb ADDED
@@ -0,0 +1,257 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "cells": [
3
+ {
4
+ "cell_type": "markdown",
5
+ "metadata": {},
6
+ "source": [
7
+ "# Hidden Markov Model for NER\n"
8
+ ]
9
+ },
10
+ {
11
+ "cell_type": "code",
12
+ "execution_count": 1,
13
+ "metadata": {},
14
+ "outputs": [
15
+ {
16
+ "name": "stderr",
17
+ "output_type": "stream",
18
+ "text": [
19
+ "[nltk_data] Downloading package punkt_tab to /Users/az-r-\n",
20
+ "[nltk_data] ow/nltk_data...\n",
21
+ "[nltk_data] Package punkt_tab is already up-to-date!\n"
22
+ ]
23
+ }
24
+ ],
25
+ "source": [
26
+ "from app.travel_resolver.libs.nlp.data_processing import from_bio_file_to_examples\n",
27
+ "\n",
28
+ "BIO_FILE = \"data/bio/fr.bio/1k_samples.bio\"\n",
29
+ "\n",
30
+ "sentences, labels, vocab, unique_labels = from_bio_file_to_examples(\n",
31
+ " BIO_FILE, process_sentence=True\n",
32
+ ")"
33
+ ]
34
+ },
35
+ {
36
+ "cell_type": "code",
37
+ "execution_count": 3,
38
+ "metadata": {},
39
+ "outputs": [],
40
+ "source": [
41
+ "def t2_given_t1(\n",
42
+ " t2: str | int,\n",
43
+ " t1: str | int,\n",
44
+ " train_bag=labels,\n",
45
+ " unique_labels_mapping: dict = unique_labels,\n",
46
+ "):\n",
47
+ " \"\"\"\n",
48
+ " Get the probability of getting t2 given t1 in the given labels\n",
49
+ "\n",
50
+ " Args:\n",
51
+ " t2: str | int, the second tag\n",
52
+ " t1: str | int, the first tag\n",
53
+ " train_bag: list, the list of labels\n",
54
+ "\n",
55
+ " Returns:\n",
56
+ " float, the probability of getting t2 given t1\n",
57
+ " \"\"\"\n",
58
+ " t1 = t1 if isinstance(t1, int) else unique_labels_mapping[t1]\n",
59
+ " t2 = t2 if isinstance(t2, int) else unique_labels_mapping[t2]\n",
60
+ " count_t1 = 0\n",
61
+ " count_t2_t1 = 0\n",
62
+ " for row in train_bag:\n",
63
+ " for index in range(len(row) - 1):\n",
64
+ " if row[index] == t1:\n",
65
+ " count_t1 += 1\n",
66
+ " if row[index] == t1 and row[index + 1] == t2:\n",
67
+ " count_t2_t1 += 1\n",
68
+ " return count_t2_t1 / count_t1"
69
+ ]
70
+ },
71
+ {
72
+ "cell_type": "markdown",
73
+ "metadata": {},
74
+ "source": [
75
+ "In the next part, we will be getting the **transition matrix** which represents the _probability_ of transitioning from a state to another $P(S_2 | S_1)$. In our case it would be for example $P(O | \\text{ARR-LOC})$.\n"
76
+ ]
77
+ },
78
+ {
79
+ "cell_type": "code",
80
+ "execution_count": 17,
81
+ "metadata": {},
82
+ "outputs": [
83
+ {
84
+ "data": {
85
+ "text/plain": [
86
+ "array([[0.81054505, 0.93784787, 0.93186004],\n",
87
+ " [0.09468065, 0.06215213, 0. ],\n",
88
+ " [0.0947743 , 0. , 0.06813996]])"
89
+ ]
90
+ },
91
+ "execution_count": 17,
92
+ "metadata": {},
93
+ "output_type": "execute_result"
94
+ }
95
+ ],
96
+ "source": [
97
+ "import numpy as np\n",
98
+ "\n",
99
+ "tags = list(unique_labels.keys())\n",
100
+ "n_tags = len(tags)\n",
101
+ "\n",
102
+ "trans_matrix = np.zeros((n_tags, n_tags))\n",
103
+ "\n",
104
+ "for t1 in range(n_tags):\n",
105
+ " for t2 in range(n_tags):\n",
106
+ " trans_matrix[t1][t2] = t2_given_t1(tags[t1], tags[t2])\n",
107
+ "\n",
108
+ "trans_matrix"
109
+ ]
110
+ },
111
+ {
112
+ "cell_type": "code",
113
+ "execution_count": 19,
114
+ "metadata": {},
115
+ "outputs": [
116
+ {
117
+ "data": {
118
+ "text/html": [
119
+ "<div>\n",
120
+ "<style scoped>\n",
121
+ " .dataframe tbody tr th:only-of-type {\n",
122
+ " vertical-align: middle;\n",
123
+ " }\n",
124
+ "\n",
125
+ " .dataframe tbody tr th {\n",
126
+ " vertical-align: top;\n",
127
+ " }\n",
128
+ "\n",
129
+ " .dataframe thead th {\n",
130
+ " text-align: right;\n",
131
+ " }\n",
132
+ "</style>\n",
133
+ "<table border=\"1\" class=\"dataframe\">\n",
134
+ " <thead>\n",
135
+ " <tr style=\"text-align: right;\">\n",
136
+ " <th></th>\n",
137
+ " <th>O</th>\n",
138
+ " <th>LOC-ARR</th>\n",
139
+ " <th>LOC-DEP</th>\n",
140
+ " </tr>\n",
141
+ " </thead>\n",
142
+ " <tbody>\n",
143
+ " <tr>\n",
144
+ " <th>O</th>\n",
145
+ " <td>0.810545</td>\n",
146
+ " <td>0.937848</td>\n",
147
+ " <td>0.93186</td>\n",
148
+ " </tr>\n",
149
+ " <tr>\n",
150
+ " <th>LOC-ARR</th>\n",
151
+ " <td>0.094681</td>\n",
152
+ " <td>0.062152</td>\n",
153
+ " <td>0.00000</td>\n",
154
+ " </tr>\n",
155
+ " <tr>\n",
156
+ " <th>LOC-DEP</th>\n",
157
+ " <td>0.094774</td>\n",
158
+ " <td>0.000000</td>\n",
159
+ " <td>0.06814</td>\n",
160
+ " </tr>\n",
161
+ " </tbody>\n",
162
+ "</table>\n",
163
+ "</div>"
164
+ ],
165
+ "text/plain": [
166
+ " O LOC-ARR LOC-DEP\n",
167
+ "O 0.810545 0.937848 0.93186\n",
168
+ "LOC-ARR 0.094681 0.062152 0.00000\n",
169
+ "LOC-DEP 0.094774 0.000000 0.06814"
170
+ ]
171
+ },
172
+ "execution_count": 19,
173
+ "metadata": {},
174
+ "output_type": "execute_result"
175
+ }
176
+ ],
177
+ "source": [
178
+ "import pandas as pd\n",
179
+ "\n",
180
+ "trans_matrix_df = pd.DataFrame(trans_matrix, columns=tags, index=tags)\n",
181
+ "\n",
182
+ "trans_matrix_df"
183
+ ]
184
+ },
185
+ {
186
+ "cell_type": "code",
187
+ "execution_count": 34,
188
+ "metadata": {},
189
+ "outputs": [
190
+ {
191
+ "data": {
192
+ "image/png": "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Bw4cSDV2sWLF9M0336h69eqG5+1q+AoAAAAAAACT8/Pz04oVKzR37lytW7dOp06dUkJCgsqXL69OnTppwIAB8vT0dCq2t7e3vvvuOy1evFirVq3S8ePHdfPmTZUuXVrt2rXTU089pSJFijgVm4ogAAAAAAAAk6BZNAAAAAAAgEmQCAIAAAAAADAJegQBGdi6das2bNigvXv36vLly4qKipKXl5cqV66sZs2aKTAwUGXLls3paQJwUrt27XTu3DmVKVNGmzZtynS8PXv2aP369dq5c6fCwsIUEREhT09PVahQQY0aNVJgYKCqVq1qOO61a9e0evVqbdmyRUePHtWVK1eUL18+FS1aVAEBAercubM6duwoV9es/6f9xo0bat68uaKjoyVJn3zyiTp37pzhdWfPnlX79u0zHOfi4qICBQqoRIkSqlWrlh566CG1aNHijsUE8hKeaSlNnTpV06ZNS/O8q6urChYsqJIlS6pu3boKDAxUo0aN0o352muvKSgoyKn5TJgwQQ899JD9z8uXL9frr7+e5niLxSJ3d3d5enqqbNmyatSokR555BFVqlTJqfsDgESPICBNBw8e1DvvvJNml3YbNzc3Pfrooxo1apQ8PDzu0OwAZJWs+qXp1KlTevfdd/Xrr7+mO85isahLly564403HGrwl5CQoNmzZ+vLL7/U9evX0x3r7++vyZMnO7V7RHpWrVqll19+2f7nVq1aaebMmRle52jSJjW9evXS+PHj70hMIC/hmZZSRomg1LRt21bvvfeeihYtmur5O5kISo2rq6tGjhypQYMGOTUHAKAiCEjFhg0bNHLkSMXExEiSatWqpa5du6p69ery9vbW33//rV27dmn58uUKDw/X/PnztXPnTs2aNUslSpTI4dkDuNP27t2rYcOGKTw8XFLSVqHdu3dX3bp1VahQIYWHh2vfvn1avny5Ll68qLVr12r37t2aPXu2KleunGbcmzdv6vnnn9fmzZslSZ6enurRo4eaNm2qUqVKKT4+XsePH1dQUJD27t2rkJAQ9e3bV7NmzVK9evWy7P2tXLlSklSmTBmdO3dO27dv14ULF27bCjU9bdu21fPPP5/qubi4OIWFhemXX37R8uXLlZCQoKVLl6py5coaOHDgHY0JIO8+08aPH6+AgIAUr8XGxurq1as6cuSIli9frlOnTmnz5s0aMGCAFi5cKC8vr3RjTp8+3dBnv/SemyNGjEg10R0fH69r165p27Ztmj9/vmJjYzVp0iSVKlVKXbp0cfjeAGBnBZDC7t27rTVr1rT6+/tb69SpY12+fLk1MTEx1bERERHWIUOGWP39/a3+/v7Wbt26WaOjo+/wjAFkRtu2ba3+/v7Wtm3bOnV9aGiotX79+lZ/f39rjRo1rDNmzLDGxcWlOjYmJsb65ptv2p8ZLVu2tF6+fDnN2C+99JJ97KOPPmoNCwtLc+zs2bPtY1u0aGENDw936v38V1hYmLVGjRpWf39/6+LFi+3Px2nTpmV47ZkzZ+xzevXVVx263+bNm63Vq1e3+vv7Wxs3bmyNiYnJ9phAXsIzLaXPPvvMHmfHjh3pjr1582aKOQ4ZMiTVca+++qp9zJkzZ5yal82yZcvssZYtW5bh+PXr19vHt2nTxpqQkJCp+wMwJ5pFA8lcv35dI0eOVHx8vNzc3DRr1iz17NlTFosl1fE+Pj6aNm2aOnXqJEkKCQnRxx9/fCenDCAHJSYm6oUXXlBUVJQk6cMPP9TgwYPT7GmRP39+vfPOO/aKlLCwML311lupjl23bp3WrFkjSQoICNDMmTNVvHjxNOcyYMAAPf7445Kky5cv6+uvv3b6fSW3Zs0aJSQkyGKxqG3btrr33nslJS1nsGbD6vI2bdqoY8eOkqTw8HD99ttvd2VMIC8ywzMtPe7u7po4caLq1q0rSdq8ebN27dqV7fc1omPHjmrcuLEk6fz589q7d28OzwhAbkQiCEhm8eLFunDhgiTp2Weftf/Ckx5XV1eNGzdOvr6+kqTvvvvOHgNA3rZ+/XodOnRIUlL/GUdL9F966SVVqFBBUtJS1NR6kU2dOtV+/Pbbb2e4PEGShg8froIFC0qSli1bptjYWIfmkx7bsrBatWqpePHi9ibRZ8+e1Y4dOzIdPzW2X3Ik6fTp03dtTCCvMcMzLSNubm5644037H/+6quvsv2eRjVv3tx+HBISkoMzAZBbkQgCkpk/f74kycPDQ4899pjD1xUuXFhPPvmkpKS+FN9//322zA/A3cX2zLBYLIaadrq7u+u5556z/3nhwoUpzu/bt0/Hjh2TJLVs2fK2nhZp8fX11bBhwzRixAhNnTpV+fJl7p/5kJAQHT58WJLsfSseeOABe3VAdj3rEhIS7MdxcXF3bUwgr8nrzzRH1alTRzVq1JAk7dy5Uzdu3Lgj93VU8ibWkZGROTgTALkViSDglhMnTuj8+fOSpGbNmsnHx8fQ9bZlB5LsTRAB5F3R0dHat2+fpKSdbYxu5du6dWu5ublJkn755RclJibaz23bts1+3KpVK0Nxn376aQ0fPlyNGzfO9LbLtmogSerataskqUiRImrWrJkk6eeff1ZERESm7pGa5EsdbFUGd2NMIC8xwzPNiKZNm0pKShzfbcuv/vnnH/uxrSIdAIwgEQTckvwfeUe/qUquYsWKKlOmjCTp8OHDd6R8GUDOOXDggOLj4yU598zw8vJS/fr1JUlXr15NsVzJtjRDkho0aJDJmTonMTFRq1evliTVrl1b5cuXt5/r1q2bpKQdgGxjssqePXu0YcMGSUm/4NiSTndbTCCvyevPNKMqVqxoP77bll9t3brVfmzrZwQARrB9PHCLrRpIksqVK+dUDD8/P507d06JiYk6c+ZMuluoAsjdsuqZYXP69Gl7pUry2KVKlXJugpm0c+dOXbp0SZLUvXv3FOc6duyocePG6caNG/r+++/Vr18/p+9jtVoVGRmpc+fOaePGjZo5c6b9l9GRI0fK09PzrogJ5HV5/ZlmVPJG1uHh4WmOO378uMPLswoVKqTSpUtnal5Lliyxf3lZs2ZNVa9ePVPxAJgTiSDgluTLG7y9vZ2KwZptwDyy85kRHR1tP86psn/bsjAXF5fbGsZ6enqqXbt2Wrt2rQ4fPqzg4GDVqlUr3XhBQUEKCgpy6N5ubm4aNWqUevfufcdjAmaV159pRnl4eNiPr169mua4p59+2uGYPXv21MSJE9M8f/78eXtftuRu3Lih06dP6+eff7ZXN7q4uGjMmDEO3xsAkiMRBNwSExNjP3Z3d3cqRvK169mxrTKAu0d2PjOSN0SNi4tzOr6zYmJitH79eklSkyZNUt3iuXv37lq7dq2kpKbRGSWCMuLm5qaqVauqZcuW6t27t+65555MxcuumEBelZefac5IvsT/TjWpnjp1aord1dLi4eGh999/Xw0bNrwDswKQF5EIAm5J/u2Xs9U8WfFtGoDcITufGcm/MQ8PD7/jS5k2bNigqKgoSf/2A/qvli1bytfXV+Hh4VqzZo1ee+015c+fP82Ybdu21fPPP2//c1xcnE6cOKFvvvlGISEhcnFxUceOHTV06FCHf+nKjpiAWeXlZ5ozkv8dpLeByMaNG1W2bNlsnYuHh4d8fHxUtWpVNW7cWL169VKRIkWy9Z4A8jYSQcAtyb8pTr6W3YgzZ85ISvrmiG+egbwteQ+NzD4z/huvXLly2r9/vyQpLCzM3ojeWZcvX9bff/+d5nk/P78Uv6gl3y1s9OjRGj16dLrxr127pvXr19/WSyg5X19f+3bMNnXq1FGnTp30zDPPaPv27fr00091/Phxffjhh7JYLBm8q+yJCZhVXn6mOSN5/NSqIrPDhAkT9NBDD92RewEwN74eA25JvouFbftUI65cuaJTp05JStp2Nb1vxgHkfnXq1LFXmTjzzEhISNCff/4pKSmhkXxXrtq1a9uPd+/ebSju7t279cEHH+jXX3/VjRs3JEmLFi1SYGBgmj+bNm2yX//3339r+/btht/P999/b/gaSSpQoIA++eQT+y+Ga9as0WeffeZUrOyMCeR1efWZ5qyDBw/ajzO79BUA7jYkgoBbqlevbv+lYevWrSnKmx2RfAvltm3bZuncANx9ChcurHvvvVeSFBwcrOPHjxu6fvPmzfalB/fdd1+KpUutWrWyH//++++G4q5du1bffPONBg8erI0bNxq6VkpKmiQkJEiShgwZok8//TTdH1v1486dO1NUAxjh4+OjSZMm2St2vv76a/uuOM7KjphAXpZXn2nOsFqt2rNnjySpYMGCqlmz5h25LwDcKSSCgFssFov+7//+T1LS7gzffPONw9dGRUVp7ty5kpJ2cWBXGsAc+vbtKynpl4YvvvjC4esSEhI0ffp0+59tzx6bihUrqm7dupKSfmk6ceKEQ3GvX79uT0p7eHioTZs2kqQRI0bo6NGjaf4kX4qwatUq+/VDhw5Vp06d0v0JDAy0/x0sW7bM4b+D/2rUqJH92ZmQkKDRo0enaNZ6t8QE8rK8+Exzxvbt2+3L49q1a6cCBQpkKh4A3G1IBAHJ9OvXT6VKlZIkzZw5U7/99luG11itVo0bN07nzp2TlPThp3Tp0tk6TwB3h86dOysgIEBSUiWNo4mQzz77TAcOHJCUVEGYfGmqzZAhQyRJiYmJevPNNx1KYEyaNMn+jXyfPn3k5eXl0Hxsjh07puDgYElSmzZtVLBgwQyvefDBB+3HQUFBSkxMNHTP5F5++WUVK1ZMknTy5EnNnj3b6VjZGRPIq/LaM80ZcXFx+vDDD+1/fvzxx7P9ngBwp5EIApLx8PDQlClT5ObmpoSEBA0dOlRBQUFpjo+IiNDIkSPt36BXqVJFL7744p2aLoAcZrFYNHnyZPsvJ2+88YZmzJhhX1r1XzExMXr//ff11VdfSUpqQPr222+nOrZ9+/bq0KGDpKQeGc8884yuXLmS6tiEhARNnjxZS5YskSSVLl1azzzzjOH3k7xJdJcuXRy6ply5cqpfv74k6eLFi/r1118N39fG29tbo0aNsv/5yy+/dLppbXbGBPKqvPZMM+rmzZt67bXXdPjwYUlS9+7dVa9evWy/LwDcaewaBvxHw4YN9cknn+ill16yfyBYsGCBunXrpmrVqqlgwYL6+++/tXPnTq1atUpXr16VJFWqVEkzZ868I99WAch6ERERmjRpkkNjhw4dqkKFCkn69//7Q4YMUUREhD788EMtX75cPXr0UEBAgHx8fHT16lXt3btXK1eu1IULFyQl/cI0c+ZMlSxZMs37TJo0Sf3791dwcLB+/fVXdezYUYGBgWrWrJlKliyp6OhoHTx4UEuXLtXJkyclJTVpnTZtWrrbHafGarXal2B4enqqdevWDl/bo0cPe3PZZcuWGbr2vwIDA7V48WLt27dPN27c0HvvvafPP//c6XjZFRO425n9mZaa06dP3xYnKipKV69e1YEDB7Ry5UqFhYVJkmrWrJlmUiu548ePp9hqPiNubm6qUqWKsYkDQBazWK1Wa05PArgbhYSE6M0337Rvd5oWNzc39erVSyNHjiQJBORC7dq1sy/tdNTGjRtVtmzZFK+dP39eb731lrZu3ZrutRaLRZ07d9aYMWPsS5bSEx0drXfffVdBQUHK6J/s2rVra9KkSapcuXLGb+I/duzYoSeeeEJS0nKvyZMnO3xteHi4WrZsqbi4OLm5uWnr1q0qUqSIzp49q/bt20uSevbsqYkTJzoU7/Dhw3r44YftVQjTp0+3J5eyIyaQl/BMS2nq1KmaNm2aoWu6dOmid999N83Pda+99lq6FePpKVOmTIpdzZYvX67XX39dEtvHA7hzqAgC0uDv76/Fixfr999/15o1a7R//36dP39esbGx8vb2VpUqVdSiRQv16NGDnkAAVLp0ac2YMUN//PGHVq1apd27d+vs2bOKjo6Wl5eXKlasqCZNmqhHjx6GfqkpWLCgJkyYoEGDBmnVqlXatWuXQkNDdf36dbm4uKh48eKqW7euunXrptatW6fYqceI5MvCunbtauhaX19ftWnTRj///LPi4uK0cuVKDRw40Kl5SFKNGjXUp08fLViwQJL07rvvqmnTpsqfP/9dFRPIy3L7M81Rbm5u8vb2Vvny5VW/fn1169aN7eIB5HlUBAEAAAAAAJgEzaIBAAAAAABMgkQQAAAAAACASZAIAgAAAAAAMAkSQQAAAAAAACZBIggAAAAAAMAkSAQBAAAAAACYBIkgAAAAAAAAkyARBAAAAAAAYBIkggAAAAAAAEyCRBAAAAAAAIBJkAgCAAAAAAAwCRJBAAAAAAAAJkEiCAAAAAAAwCRIBAEAAAAAAJjE/wP17AvOwfr3qwAAAABJRU5ErkJggg==",
193
+ "text/plain": [
194
+ "<Figure size 1800x1200 with 2 Axes>"
195
+ ]
196
+ },
197
+ "metadata": {},
198
+ "output_type": "display_data"
199
+ }
200
+ ],
201
+ "source": [
202
+ "import matplotlib.pyplot as plt\n",
203
+ "import seaborn as sns\n",
204
+ "\n",
205
+ "plt.figure(figsize=(18, 12))\n",
206
+ "\n",
207
+ "sns.set(font_scale=1.9)\n",
208
+ "\n",
209
+ "sns.heatmap(trans_matrix_df, annot=True, square=True, annot_kws={\"fontsize\": 20})\n",
210
+ "\n",
211
+ "plt.title(\"Transition Matrix\")\n",
212
+ "\n",
213
+ "plt.show()"
214
+ ]
215
+ },
216
+ {
217
+ "cell_type": "code",
218
+ "execution_count": 48,
219
+ "metadata": {},
220
+ "outputs": [],
221
+ "source": [
222
+ "def get_emission_prob(sentences=sentences, labels=labels, unique_labels=unique_labels):\n",
223
+ " tags = list(unique_labels.keys())\n",
224
+ " word_label_count = {}\n",
225
+ " sample_count = {tag: 0 for tag in tags}\n",
226
+ " for i in range(len(sentences)):\n",
227
+ " for word, label in zip(sentences[i].split(\" \"), labels[i]):\n",
228
+ " if word not in word_label_count:\n",
229
+ " word_label_count[word] = sample_count.copy()\n",
230
+ " else:\n",
231
+ " word_label_count[word][tags[label]] += 1\n",
232
+ " return word_label_count"
233
+ ]
234
+ }
235
+ ],
236
+ "metadata": {
237
+ "kernelspec": {
238
+ "display_name": "venv",
239
+ "language": "python",
240
+ "name": "python3"
241
+ },
242
+ "language_info": {
243
+ "codemirror_mode": {
244
+ "name": "ipython",
245
+ "version": 3
246
+ },
247
+ "file_extension": ".py",
248
+ "mimetype": "text/x-python",
249
+ "name": "python",
250
+ "nbconvert_exporter": "python",
251
+ "pygments_lexer": "ipython3",
252
+ "version": "3.12.4"
253
+ }
254
+ },
255
+ "nbformat": 4,
256
+ "nbformat_minor": 2
257
+ }
requirements.txt CHANGED
@@ -1,4 +1,7 @@
1
  nltk==3.9.1
2
  numpy
3
  tensorflow==2.17.0
4
- tqdm==4.66.5
 
 
 
 
1
  nltk==3.9.1
2
  numpy
3
  tensorflow==2.17.0
4
+ tqdm==4.66.5
5
+ seaborn
6
+ pillow
7
+ matplotlib