1 """Tools to extend NLTK's implementation of HMMs.
2
3 """
4 """
5 ============================== License ========================================
6 Copyright (C) 2008, 2010-12 University of Edinburgh, Mark Granroth-Wilding
7
8 This file is part of The Jazz Parser.
9
10 The Jazz Parser is free software: you can redistribute it and/or modify
11 it under the terms of the GNU General Public License as published by
12 the Free Software Foundation, either version 3 of the License, or
13 (at your option) any later version.
14
15 The Jazz Parser is distributed in the hope that it will be useful,
16 but WITHOUT ANY WARRANTY; without even the implied warranty of
17 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18 GNU General Public License for more details.
19
20 You should have received a copy of the GNU General Public License
21 along with The Jazz Parser. If not, see <http://www.gnu.org/licenses/>.
22
23 ============================ End license ======================================
24
25 """
26 __author__ = "Mark Granroth-Wilding <mark.granroth-wilding@ed.ac.uk>"
27
28
29
30 from nltk.tag.hmm import HiddenMarkovModelTrainer, HiddenMarkovModelTagger
31 from jazzparser.utils.nltk.storage import ObjectStorer
34 """
35 We override HiddenMarkovModelTrainer to overcome the fact that it
36 produces HMMs that can't be pickled. We only make supervised
37 trained HMMs picklable at the moment.
38
39 This is quite a nasty hack to overcome the fact that NLTK HMMs
40 can't be stored and also can't be pickled if constructed using the
41 default trainer. However, this is not very stable, since someone
42 could, for example, set some attribute of the model to be a Python
43 lambda and pickling would once again fail.
44
45 """
59
87