3
3
4
4
5
5
def viterbi (
6
- observations_space : List [str ],
7
- states_space : List [str ],
8
- initial_probabilities : Dict [str , float ],
9
- transition_probabilities : Dict [str , Dict [str , float ]],
10
- emission_probabilities : Dict [str , Dict [str , float ]],
11
- ) -> List [str ]:
6
+ observations_space : list [str ],
7
+ states_space : list [str ],
8
+ initial_probabilities : dict [str , float ],
9
+ transition_probabilities : dict [str , dict [str , float ]],
10
+ emission_probabilities : dict [str , dict [str , float ]],
11
+ ) -> list [str ]:
12
12
"""
13
13
Viterbi Algorithm, to find the most likely path of
14
14
states from the start and the expected output.
@@ -246,11 +246,11 @@ def _validate_dict(_object: Any, var_name: str, value_type: type, nested: bool =
246
246
247
247
248
248
def _initialise_probabilities_and_pointers (
249
- observations_space : List [str ],
250
- states_space : List [str ],
251
- initial_probabilities : Dict [str , float ],
252
- emission_probabilities : Dict [str , Dict [str , float ]],
253
- ) -> Tuple [dict , dict ]:
249
+ observations_space : list [str ],
250
+ states_space : list [str ],
251
+ initial_probabilities : dict [str , float ],
252
+ emission_probabilities : dict [str , dict [str , float ]],
253
+ ) -> tuple [dict , dict ]:
254
254
probabilities = {}
255
255
pointers = {}
256
256
for state in states_space :
@@ -263,8 +263,8 @@ def _initialise_probabilities_and_pointers(
263
263
264
264
265
265
def _process_forward (
266
- observations_space : List [str ],
267
- states_space : List [str ],
266
+ observations_space : list [str ],
267
+ states_space : list [str ],
268
268
_prior_state : Callable ,
269
269
probabilities : dict ,
270
270
pointers : dict ,
@@ -294,10 +294,10 @@ def _best_final_state(k_state: str) -> float:
294
294
295
295
296
296
def _extract_best_path (
297
- observations_space : List [str ],
297
+ observations_space : list [str ],
298
298
last_observation : str ,
299
299
pointers : dict ,
300
- ) -> List [str ]:
300
+ ) -> list [str ]:
301
301
previous = last_observation
302
302
result = []
303
303
for o in range (len (observations_space ) - 1 , - 1 , - 1 ):
@@ -307,7 +307,7 @@ def _extract_best_path(
307
307
return result
308
308
309
309
310
- def _arg_max (prior_state : Callable , states_space : List [str ]) -> str :
310
+ def _arg_max (prior_state : Callable , states_space : list [str ]) -> str :
311
311
arg_max = ""
312
312
max_probability = - 1
313
313
for k_state in states_space :
0 commit comments