#include <sent/stddefs.h>
#include <sent/vocabulary.h>
#include <sent/htk_hmm.h>
Include dependency graph for dfa.h:
This graph shows which files directly or indirectly include this file:
Go to the source code of this file.
Data Structures | |
struct | _dfa_arc |
Transition arc of DFA. More... | |
struct | DFA_STATE |
State of DFA. More... | |
struct | TERM_INFO |
Information of each terminal symbol (=category). More... | |
struct | DFA_INFO |
Top structure of a DFA. More... | |
Defines | |
#define | DFA_STATESTEP 1000 |
Allocation step of DFA state. | |
#define | INITIAL_S 0x10000000 |
Status flag mask specifying an initial state. | |
#define | ACCEPT_S 0x00000001 |
Status flag mask specifying an accept state. | |
Typedefs | |
typedef _dfa_arc | DFA_ARC |
Transition arc of DFA. | |
Functions | |
DFA_INFO * | dfa_info_new () |
void | dfa_info_free (DFA_INFO *dfa) |
void | dfa_state_init (DFA_INFO *dinfo) |
void | dfa_state_expand (DFA_INFO *dinfo, int needed) |
boolean | rddfa (FILE *fp, DFA_INFO *dinfo) |
boolean | rddfa_fd (int fd, DFA_INFO *dinfo) |
boolean | rddfa_sd (int sd, DFA_INFO *dinfo) |
boolean | rddfa_line (char *line, DFA_INFO *dinfo, int *state_max, int *arc_num, int *terminal_max) |
void | dfa_append (DFA_INFO *dst, DFA_INFO *src, int soffset, int coffset) |
void | init_dfa (DFA_INFO *dinfo, char *filename) |
WORD_ID | dfa_symbol_lookup (DFA_INFO *dinfo, char *terminalname) |
void | extract_cpair (DFA_INFO *dinfo) |
void | cpair_append (DFA_INFO *dst, DFA_INFO *src, int coffset) |
void | print_dfa_info (DFA_INFO *dinfo) |
void | print_dfa_cp (DFA_INFO *dinfo) |
boolean | dfa_cp (DFA_INFO *dfa, int i, int j) |
boolean | dfa_cp_begin (DFA_INFO *dfa, int i) |
boolean | dfa_cp_end (DFA_INFO *dfa, int i) |
void | set_dfa_cp (DFA_INFO *dfa, int i, int j, boolean value) |
void | set_dfa_cp_begin (DFA_INFO *dfa, int i, boolean value) |
void | set_dfa_cp_end (DFA_INFO *dfa, int i, boolean value) |
void | init_dfa_cp (DFA_INFO *dfa) |
void | malloc_dfa_cp (DFA_INFO *dfa, int term_num) |
void | realloc_dfa_cp (DFA_INFO *dfa, int old_term_num, int new_term_num) |
void | free_dfa_cp (DFA_INFO *dfa) |
void | make_dfa_voca_ref (DFA_INFO *dinfo, WORD_INFO *winfo) |
void | make_terminfo (TERM_INFO *tinfo, DFA_INFO *dinfo, WORD_INFO *winfo) |
void | terminfo_append (TERM_INFO *dst, TERM_INFO *src, int coffset, int woffset) |
void | dfa_find_pause_word (DFA_INFO *dfa, WORD_INFO *winfo, HTK_HMM_INFO *hmminfo) |
void | dfa_pause_word_append (DFA_INFO *dst, DFA_INFO *src, int coffset) |
DFA is a deterministic finite state automaton describing grammartical constraint, using the category number of each dictionary word as an input. It also holds lists of words belonging for each categories.
Additionaly, the category-pair information will be generated from the given DFA by extracting allowed connections between categories. It will be used as a degenerated constraint of word connection at the 1st pass.
Definition in file dfa.h.
DFA_INFO* dfa_info_new | ( | ) |
Allocate a new grammar information data structure and initialize it.
Definition at line 33 of file dfa_malloc.c.
Referenced by msock_read_grammar(), and multigram_read_file().
void dfa_info_free | ( | DFA_INFO * | dfa | ) |
Free all informations in the DFA_INFO.
dfa | [i/o] grammar information data to be freed. |
Definition at line 54 of file dfa_malloc.c.
Referenced by msock_read_grammar(), and multigram_exec_delete().
void dfa_state_init | ( | DFA_INFO * | dinfo | ) |
Initialize and allocate DFA state information list in the grammar.
dinfo | [i/o] DFA grammar |
Definition at line 35 of file rddfa.c.
Referenced by rddfa(), rddfa_fd(), and rddfa_sd().
void dfa_state_expand | ( | DFA_INFO * | dinfo, | |
int | needed | |||
) |
Expand the state information list to the required length.
dinfo | [i/o] DFA grammar | |
needed | [in] required new length |
Definition at line 56 of file rddfa.c.
Referenced by dfa_append(), and rddfa_line().
Top loop function to read DFA grammar via file pointer
fp | [in] file pointer that points to the DFA grammar data | |
dinfo | [out] the read data will be stored in this DFA grammar structure |
Definition at line 79 of file rddfa.c.
Referenced by init_dfa().
Top loop function to read DFA grammar via file descriptor
fd | [in] file descriptor that points to the DFA grammar data | |
dinfo | [out] the read data will be stored in this DFA grammar structure |
Definition at line 109 of file rddfa.c.
Referenced by msock_read_grammar().
Top loop function to read DFA grammar via socket descriptor
sd | [in] socket descriptor that points to the DFA grammar data | |
dinfo | [out] the read data will be stored in this DFA grammar structure |
Definition at line 139 of file rddfa.c.
Referenced by msock_read_grammar().
boolean rddfa_line | ( | char * | line, | |
DFA_INFO * | dinfo, | |||
int * | state_max, | |||
int * | arc_num, | |||
int * | terminal_max | |||
) |
Parse the input line and set grammar information, one by line.
line | [in] text buffer that holds a line of DFA file | |
dinfo | [i/o] the read data will be appended to this DFA data | |
state_max | [i/o] maximum number of state id appeared, will be updated | |
arc_num | [i/o] number of read arcs, will be updated | |
terminal_max | [i/o] maximum number of state id appended, will be updated |
Definition at line 172 of file rddfa.c.
Referenced by rddfa(), rddfa_fd(), and rddfa_sd().
Append the DFA state information to other
dst | [i/o] DFA grammar | |
src | [i/o] DFA grammar to be appended to dst | |
soffset | [in] offset state number in dst where the new state should be stored | |
coffset | [in] category id offset in dst where the new data should be stored |
Definition at line 230 of file rddfa.c.
Referenced by multigram_build_append().
void init_dfa | ( | DFA_INFO * | dinfo, | |
char * | filename | |||
) |
Read in a grammar file and set to DFA grammar structure
dinfo | [i/o] a blank DFA data | |
filename | [in] DFA grammar file name |
Definition at line 45 of file init_dfa.c.
Referenced by multigram_read_file().
Return category id corresponding to the given terminal name. Actually they are mere strings of ID itself.
dinfo | [in] DFA grammar information | |
terminalname | [in] name string |
Definition at line 44 of file dfa_lookup.c.
Referenced by make_dfa_voca_ref().
void extract_cpair | ( | DFA_INFO * | dinfo | ) |
Extract category-pair constraint from DFA grammar and newly set the category pair matrix of the give DFA.
dinfo | [i/o] DFA grammar, in which the category-pair matrix will be created. |
Definition at line 60 of file mkcpair.c.
Referenced by multigram_exec().
Append the category pair matrix at the last.
dst | [i/o] DFA grammar | |
src | [in] DFA grammar to be appended to dst | |
coffset | [in] category id in dst where the new data should be stored |
Definition at line 113 of file mkcpair.c.
Referenced by multigram_build_append().
void print_dfa_info | ( | DFA_INFO * | dinfo | ) |
Output overall grammar information to stdout.
dinfo | [in] DFA grammar |
Definition at line 33 of file dfa_util.c.
Referenced by print_info().
void print_dfa_cp | ( | DFA_INFO * | dinfo | ) |
Output the category-pair matrix in text format to stdout
dinfo | [in] DFA grammar that holds category pair matrix |
Definition at line 48 of file dfa_util.c.
Referenced by print_info().
Return whether the given two category can be connected or not.
dfa | [in] DFA grammar holding category pair matrix | |
i | [in] category id of left word | |
j | [in] category id of right word |
Definition at line 48 of file cpair.c.
Referenced by cpair_append(), lcdset_register_with_category(), lcdset_register_with_category_all(), and print_dfa_cp().
Return whether the category can be appear at the beginning of sentence.
dfa | [in] DFA grammar holding category pair matrix | |
i | [in] category id of the word |
Definition at line 63 of file cpair.c.
Referenced by cpair_append(), init_nodescore(), and print_dfa_cp().
Return whether the category can be appear at the end of sentence.
dfa | [in] DFA grammar holding category pair matrix | |
i | [in] category id of the word |
Definition at line 78 of file cpair.c.
Referenced by cpair_append(), and print_dfa_cp().
Set the category-pair matrix bit
dfa | [out] DFA grammar holding category pair matrix | |
i | [in] category id of left word | |
j | [in] category id of right word | |
value | TRUE if connection allowed, FALSE if connection prohibited. |
Definition at line 93 of file cpair.c.
Referenced by cpair_append(), malloc_dfa_cp(), and realloc_dfa_cp().
Set the category-pair matrix bit at the beginning of sentence
dfa | [out] DFA grammar holding category pair matrix | |
i | [in] category id of the word | |
value | TRUE if the category can appear at the beginning of sentence, FALSE if not. |
Definition at line 112 of file cpair.c.
Referenced by cpair_append(), and realloc_dfa_cp().
Set the category-pair matrix bit at the end of sentence
dfa | [out] DFA grammar holding category pair matrix | |
i | [in] category id of the word | |
value | TRUE if the category can appear at the end of sentence, FALSE if not. |
Definition at line 131 of file cpair.c.
Referenced by cpair_append(), extract_cpair(), and realloc_dfa_cp().
void init_dfa_cp | ( | DFA_INFO * | dfa | ) |
Initialize category pair matrix in the grammar data.
dfa | [out] DFA grammar to hold category pair matrix |
Definition at line 147 of file cpair.c.
Referenced by dfa_info_new().
void malloc_dfa_cp | ( | DFA_INFO * | dfa, | |
int | term_num | |||
) |
Allocate memory for category pair matrix and initialize it.
dfa | [out] DFA grammar to hold category pair matrix | |
term_num | [in] number of categories in the grammar |
Definition at line 162 of file cpair.c.
Referenced by extract_cpair(), and realloc_dfa_cp().
void realloc_dfa_cp | ( | DFA_INFO * | dfa, | |
int | old_term_num, | |||
int | new_term_num | |||
) |
Re-allocate memory for category pair matrix, can be called when the number of category is expanded.
dfa | [I/O] DFA grammar holding category pair matrix | |
old_term_num | [in] number of categories when the last category pair matrix was allocated | |
new_term_num | [in] new number of categories in the grammar |
Definition at line 193 of file cpair.c.
Referenced by cpair_append().
void free_dfa_cp | ( | DFA_INFO * | dfa | ) |
Free the category pair matrix from DFA grammar.
dfa | [i/o] DFA grammar holding category pair matrix |
Definition at line 254 of file cpair.c.
Referenced by dfa_info_free().
Make correspondence between all words in dictionary and categories in grammar, both from a word to a category and from a category to words.
dinfo | [i/o] DFA grammar, category information will be built here. | |
winfo | [i/o] Word dictionary, word-to-category information will be build here. |
Definition at line 71 of file init_dfa.c.
Referenced by multigram_exec().
Make a word list for each category.
tinfo | [i/o] terminal data structure to hold the result | |
dinfo | [in] DFA gammar to supply the number of category in the grammar | |
winfo | [in] word dictionary. |
Definition at line 38 of file mkterminfo.c.
Append the terminal(category) word list.
dst | [i/o] category data | |
src | [i/o] category data to be appended to dst | |
coffset | [in] category id offset in dst where the new data should be stored | |
woffset | [in] word id offset where the new data should be stored |
Definition at line 76 of file mkterminfo.c.
Referenced by multigram_build_append().
void dfa_find_pause_word | ( | DFA_INFO * | dfa, | |
WORD_INFO * | winfo, | |||
HTK_HMM_INFO * | hmminfo | |||
) |
Find pause word and pause category information, and set to the grammar data.
dfa | [i/o] DFA grammar, sp_id and is_sp will be built here. | |
winfo | [in] Word dictionary | |
hmminfo | [in] HTK HMM to provide which is short pause HMM |
Definition at line 104 of file init_dfa.c.
Referenced by multigram_exec().
Append the pause word/category information at the last.
dst | [i/o] DFA grammar | |
src | [in] DFA grammar to be appended to dst | |
coffset | appending category point in dst |
Definition at line 135 of file init_dfa.c.
Referenced by multigram_build_append().