Skip to content

Commit 3c2ccb9

Browse files
[pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
1 parent d610df1 commit 3c2ccb9

File tree

1 file changed

+93
-93
lines changed

1 file changed

+93
-93
lines changed

dynamic_programming/viterbi.py

Lines changed: 93 additions & 93 deletions
Original file line numberDiff line numberDiff line change
@@ -9,102 +9,102 @@ def viterbi(
99
emission_probabilities: dict,
1010
) -> list:
1111
"""
12-
Viterbi Algorithm, to find the most likely path of
13-
states from the start and the expected output.
12+
Viterbi Algorithm, to find the most likely path of
13+
states from the start and the expected output.
1414
15-
https://en.wikipedia.org/wiki/Viterbi_algorithm
15+
https://en.wikipedia.org/wiki/Viterbi_algorithm
1616
17-
Wikipedia example
17+
Wikipedia example
1818
19-
>>> observations = ["normal", "cold", "dizzy"]
20-
>>> states = ["Healthy", "Fever"]
21-
>>> start_p = {"Healthy": 0.6, "Fever": 0.4}
22-
>>> trans_p = {
23-
... "Healthy": {"Healthy": 0.7, "Fever": 0.3},
24-
... "Fever": {"Healthy": 0.4, "Fever": 0.6},
25-
... }
26-
>>> emit_p = {
27-
... "Healthy": {"normal": 0.5, "cold": 0.4, "dizzy": 0.1},
28-
... "Fever": {"normal": 0.1, "cold": 0.3, "dizzy": 0.6},
29-
... }
30-
>>> viterbi(observations, states, start_p, trans_p, emit_p)
31-
['Healthy', 'Healthy', 'Fever']
32-
>>> viterbi((), states, start_p, trans_p, emit_p)
33-
Traceback (most recent call last):
34-
...
35-
ValueError: There's an empty parameter
36-
>>> viterbi(observations, (), start_p, trans_p, emit_p)
37-
Traceback (most recent call last):
38-
...
39-
ValueError: There's an empty parameter
40-
>>> viterbi(observations, states, {}, trans_p, emit_p)
41-
Traceback (most recent call last):
42-
...
43-
ValueError: There's an empty parameter
44-
>>> viterbi(observations, states, start_p, {}, emit_p)
45-
Traceback (most recent call last):
46-
...
47-
ValueError: There's an empty parameter
48-
>>> viterbi(observations, states, start_p, trans_p, {})
49-
Traceback (most recent call last):
50-
...
51-
ValueError: There's an empty parameter
52-
>>> viterbi("invalid", states, start_p, trans_p, emit_p)
53-
Traceback (most recent call last):
54-
...
55-
ValueError: observations_space must be a list
56-
>>> viterbi(["valid", 123], states, start_p, trans_p, emit_p)
57-
Traceback (most recent call last):
58-
...
59-
ValueError: observations_space must be a list of strings
60-
>>> viterbi(observations, "invalid", start_p, trans_p, emit_p)
61-
Traceback (most recent call last):
62-
...
63-
ValueError: states_space must be a list
64-
>>> viterbi(observations, ["valid", 123], start_p, trans_p, emit_p)
65-
Traceback (most recent call last):
66-
...
67-
ValueError: states_space must be a list of strings
68-
>>> viterbi(observations, states, "invalid", trans_p, emit_p)
69-
Traceback (most recent call last):
70-
...
71-
ValueError: initial_probabilities must be a dict
72-
>>> viterbi(observations, states, {2:2}, trans_p, emit_p)
73-
Traceback (most recent call last):
74-
...
75-
ValueError: initial_probabilities all keys must be strings
76-
>>> viterbi(observations, states, {"a":2}, trans_p, emit_p)
77-
Traceback (most recent call last):
78-
...
79-
ValueError: initial_probabilities all values must be float
80-
>>> viterbi(observations, states, start_p, "invalid", emit_p)
81-
Traceback (most recent call last):
82-
...
83-
ValueError: transition_probabilities must be a dict
84-
>>> viterbi(observations, states, start_p, {"a":2}, emit_p)
85-
Traceback (most recent call last):
86-
...
87-
ValueError: transition_probabilities all values must be dict
88-
>>> viterbi(observations, states, start_p, {2:{2:2}}, emit_p)
89-
Traceback (most recent call last):
90-
...
91-
ValueError: transition_probabilities all keys must be strings
92-
>>> viterbi(observations, states, start_p, {"a":{2:2}}, emit_p)
93-
Traceback (most recent call last):
94-
...
95-
ValueError: transition_probabilities all keys must be strings
96-
>>> viterbi(observations, states, start_p, {"a":{"b":2}}, emit_p)
97-
Traceback (most recent call last):
98-
...
99-
ValueError: transition_probabilities nested dictionary all values must be float
100-
>>> viterbi(observations, states, start_p, trans_p, "invalid")
101-
Traceback (most recent call last):
102-
...
103-
ValueError: emission_probabilities must be a dict
104-
>>> viterbi(observations, states, start_p, trans_p, None)
105-
Traceback (most recent call last):
106-
...
107-
ValueError: There's an empty parameter
19+
>>> observations = ["normal", "cold", "dizzy"]
20+
>>> states = ["Healthy", "Fever"]
21+
>>> start_p = {"Healthy": 0.6, "Fever": 0.4}
22+
>>> trans_p = {
23+
... "Healthy": {"Healthy": 0.7, "Fever": 0.3},
24+
... "Fever": {"Healthy": 0.4, "Fever": 0.6},
25+
... }
26+
>>> emit_p = {
27+
... "Healthy": {"normal": 0.5, "cold": 0.4, "dizzy": 0.1},
28+
... "Fever": {"normal": 0.1, "cold": 0.3, "dizzy": 0.6},
29+
... }
30+
>>> viterbi(observations, states, start_p, trans_p, emit_p)
31+
['Healthy', 'Healthy', 'Fever']
32+
>>> viterbi((), states, start_p, trans_p, emit_p)
33+
Traceback (most recent call last):
34+
...
35+
ValueError: There's an empty parameter
36+
>>> viterbi(observations, (), start_p, trans_p, emit_p)
37+
Traceback (most recent call last):
38+
...
39+
ValueError: There's an empty parameter
40+
>>> viterbi(observations, states, {}, trans_p, emit_p)
41+
Traceback (most recent call last):
42+
...
43+
ValueError: There's an empty parameter
44+
>>> viterbi(observations, states, start_p, {}, emit_p)
45+
Traceback (most recent call last):
46+
...
47+
ValueError: There's an empty parameter
48+
>>> viterbi(observations, states, start_p, trans_p, {})
49+
Traceback (most recent call last):
50+
...
51+
ValueError: There's an empty parameter
52+
>>> viterbi("invalid", states, start_p, trans_p, emit_p)
53+
Traceback (most recent call last):
54+
...
55+
ValueError: observations_space must be a list
56+
>>> viterbi(["valid", 123], states, start_p, trans_p, emit_p)
57+
Traceback (most recent call last):
58+
...
59+
ValueError: observations_space must be a list of strings
60+
>>> viterbi(observations, "invalid", start_p, trans_p, emit_p)
61+
Traceback (most recent call last):
62+
...
63+
ValueError: states_space must be a list
64+
>>> viterbi(observations, ["valid", 123], start_p, trans_p, emit_p)
65+
Traceback (most recent call last):
66+
...
67+
ValueError: states_space must be a list of strings
68+
>>> viterbi(observations, states, "invalid", trans_p, emit_p)
69+
Traceback (most recent call last):
70+
...
71+
ValueError: initial_probabilities must be a dict
72+
>>> viterbi(observations, states, {2:2}, trans_p, emit_p)
73+
Traceback (most recent call last):
74+
...
75+
ValueError: initial_probabilities all keys must be strings
76+
>>> viterbi(observations, states, {"a":2}, trans_p, emit_p)
77+
Traceback (most recent call last):
78+
...
79+
ValueError: initial_probabilities all values must be float
80+
>>> viterbi(observations, states, start_p, "invalid", emit_p)
81+
Traceback (most recent call last):
82+
...
83+
ValueError: transition_probabilities must be a dict
84+
>>> viterbi(observations, states, start_p, {"a":2}, emit_p)
85+
Traceback (most recent call last):
86+
...
87+
ValueError: transition_probabilities all values must be dict
88+
>>> viterbi(observations, states, start_p, {2:{2:2}}, emit_p)
89+
Traceback (most recent call last):
90+
...
91+
ValueError: transition_probabilities all keys must be strings
92+
>>> viterbi(observations, states, start_p, {"a":{2:2}}, emit_p)
93+
Traceback (most recent call last):
94+
...
95+
ValueError: transition_probabilities all keys must be strings
96+
>>> viterbi(observations, states, start_p, {"a":{"b":2}}, emit_p)
97+
Traceback (most recent call last):
98+
...
99+
ValueError: transition_probabilities nested dictionary all values must be float
100+
>>> viterbi(observations, states, start_p, trans_p, "invalid")
101+
Traceback (most recent call last):
102+
...
103+
ValueError: emission_probabilities must be a dict
104+
>>> viterbi(observations, states, start_p, trans_p, None)
105+
Traceback (most recent call last):
106+
...
107+
ValueError: There's an empty parameter
108108
109109
"""
110110
_validation(

0 commit comments

Comments
 (0)