libsent/include/sent/dfa.h

決定性有限状態オートマトン文法(DFA)およびカテゴリ対情報の構造体定義 [詳細]

#include <sent/stddefs.h>
#include <sent/vocabulary.h>
#include <sent/htk_hmm.h>

ソースコードを見る。

データ構造

struct  DFA_ARC
 Transition arc of DFA [詳細]
struct  DFA_STATE
 State of DFA [詳細]
struct  TERM_INFO
 Information of each terminal symbol (=category) [詳細]
struct  DFA_INFO
 Top structure of a DFA [詳細]

マクロ定義

#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

関数

DFA_INFOdfa_info_new ()
 Allocate a new grammar information data structure and initialize it.
void dfa_info_free (DFA_INFO *dfa)
 Free all informations in the DFA_INFO.
void dfa_state_init (DFA_INFO *dinfo)
 Initialize and allocate DFA state information list in the grammar.
void dfa_state_expand (DFA_INFO *dinfo, int needed)
 Expand the state information list to the required length.
boolean rddfa (FILE *fp, DFA_INFO *dinfo)
 Top loop function to read DFA grammar via file pointer
boolean rddfa_fd (int fd, DFA_INFO *dinfo)
 Top loop function to read DFA grammar via file descriptor
boolean rddfa_sd (int sd, DFA_INFO *dinfo)
 Top loop function to read DFA grammar via socket descriptor
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.
void dfa_append (DFA_INFO *dst, DFA_INFO *src, int soffset, int coffset)
 Append the DFA state information to other
boolean init_dfa (DFA_INFO *dinfo, char *filename)
 Read in a grammar file and set to DFA grammar structure
WORD_ID dfa_symbol_lookup (DFA_INFO *dinfo, char *terminalname)
 Return category id corresponding to the given terminal name.
boolean extract_cpair (DFA_INFO *dinfo)
 Extract category-pair constraint from DFA grammar and newly set the category pair matrix of the give DFA.
boolean cpair_append (DFA_INFO *dst, DFA_INFO *src, int coffset)
 Append the category pair matrix at the last.
void print_dfa_info (FILE *fp, DFA_INFO *dinfo)
 Output overall grammar information to stdout.
void print_dfa_cp (FILE *fp, DFA_INFO *dinfo)
 Output the category-pair matrix in text format to stdout
boolean dfa_cp (DFA_INFO *dfa, int i, int j)
 Return whether the given two category can be connected or not.
boolean dfa_cp_begin (DFA_INFO *dfa, int i)
 Return whether the category can be appear at the beginning of sentence.
boolean dfa_cp_end (DFA_INFO *dfa, int i)
 Return whether the category can be appear at the end of sentence.
void set_dfa_cp (DFA_INFO *dfa, int i, int j, boolean value)
 Set the category-pair matrix bit
void set_dfa_cp_begin (DFA_INFO *dfa, int i, boolean value)
 Set the category-pair matrix bit at the beginning of sentence
void set_dfa_cp_end (DFA_INFO *dfa, int i, boolean value)
 Set the category-pair matrix bit at the end of sentence
void init_dfa_cp (DFA_INFO *dfa)
 Initialize category pair matrix in the grammar data.
void malloc_dfa_cp (DFA_INFO *dfa, int term_num)
 Allocate memory for category pair matrix and initialize it.
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.
void free_dfa_cp (DFA_INFO *dfa)
 Free the category pair matrix from DFA grammar.
boolean make_dfa_voca_ref (DFA_INFO *dinfo, WORD_INFO *winfo)
 Make correspondence between all words in dictionary and categories in grammar, both from a word to a category and from a category to words.
void make_terminfo (TERM_INFO *tinfo, DFA_INFO *dinfo, WORD_INFO *winfo)
 Make a word list for each category.
void free_terminfo (TERM_INFO *tinfo)
 Free word list for each category.
void terminfo_append (TERM_INFO *dst, TERM_INFO *src, int coffset, int woffset)
 Append the terminal(category) word list.
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.
boolean dfa_pause_word_append (DFA_INFO *dst, DFA_INFO *src, int coffset)
 Append the pause word/category information at the last.
boolean read_grammar_from_socket (int sd, DFA_INFO **ret_dfa, WORD_INFO **ret_winfo, HTK_HMM_INFO *hmminfo)
 Read grammar (DFA and dictionary) from socket and returns newly allocated grammars.


説明

決定性有限状態オートマトン文法(DFA)およびカテゴリ対情報の構造体定義

このファイルには, DFAと呼ばれる有限状態文法の構造体が定義されています.

DFAは, 単語のカテゴリ番号を入力とする決定性オートマトンで,構文制約を 表現します.カテゴリごとの単語リストも保持します.

また,第1パスの認識のために,DFAカテゴリ間の接続関係のみを抜き出した 単語対情報も保持します.これは文法を読みだし後に内部でDFAから抽出されます.

作者:
Akinobu LEE
日付:
Thu Feb 10 18:21:27 2005
Revision
1.1.1.1

dfa.h で定義されています。


関数

DFA_INFO* dfa_info_new (  ) 

Allocate a new grammar information data structure and initialize it.

戻り値:
pointer to the newly allocated DFA_INFO.

dfa_malloc.c34 行で定義されています。

参照元 multigram_read_file_and_add(), multigram_update(), と read_grammar_from_socket().

void dfa_info_free ( DFA_INFO dfa  ) 

Free all informations in the DFA_INFO.

引数:
dfa [i/o] grammar information data to be freed.

dfa_malloc.c55 行で定義されています。

参照元 j_process_lm_free(), multigram_exec_delete(), multigram_free_all(), multigram_read_file_and_add(), multigram_update(), と read_grammar_from_socket().

void dfa_state_init ( DFA_INFO dinfo  ) 

Initialize and allocate DFA state information list in the grammar.

引数:
dinfo [i/o] DFA grammar

rddfa.c36 行で定義されています。

参照元 multigram_update(), rddfa(), rddfa_fd(), と 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

rddfa.c57 行で定義されています。

参照元 dfa_append(), と rddfa_line().

boolean rddfa ( FILE *  fp,
DFA_INFO dinfo 
)

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
戻り値:
TRUE on success, FALSE on failure.

rddfa.c80 行で定義されています。

参照元 init_dfa().

boolean rddfa_fd ( int  fd,
DFA_INFO dinfo 
)

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
戻り値:
TRUE on success, FALSE on failure.

rddfa.c110 行で定義されています。

参照元 read_grammar_from_socket().

boolean rddfa_sd ( int  sd,
DFA_INFO dinfo 
)

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
戻り値:
TRUE on success, FALSE on failure.

rddfa.c140 行で定義されています。

参照元 read_grammar_from_socket().

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
戻り値:
TRUE if the line was successfully parsed, FALSE if failed.

rddfa.c173 行で定義されています。

参照元 rddfa(), rddfa_fd(), と rddfa_sd().

void dfa_append ( DFA_INFO dst,
DFA_INFO src,
int  soffset,
int  coffset 
)

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

rddfa.c248 行で定義されています。

参照元 multigram_append_to_global().

boolean 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

init_dfa.c46 行で定義されています。

参照元 multigram_read_file_and_add().

WORD_ID dfa_symbol_lookup ( DFA_INFO dinfo,
char *  terminalname 
)

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
戻り値:
the category id.

dfa_lookup.c45 行で定義されています。

参照元 make_dfa_voca_ref().

boolean 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.

mkcpair.c61 行で定義されています。

参照元 multigram_update().

boolean cpair_append ( DFA_INFO dst,
DFA_INFO src,
int  coffset 
)

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

mkcpair.c119 行で定義されています。

参照元 multigram_append_to_global().

void print_dfa_info ( FILE *  fp,
DFA_INFO dinfo 
)

Output overall grammar information to stdout.

引数:
fp [in] file pointer
dinfo [in] DFA grammar

dfa_util.c35 行で定義されています。

参照元 print_engine_info().

void print_dfa_cp ( FILE *  fp,
DFA_INFO dinfo 
)

Output the category-pair matrix in text format to stdout

引数:
fp [in] file pointer
dinfo [in] DFA grammar that holds category pair matrix

dfa_util.c52 行で定義されています。

参照元 print_engine_info().

boolean dfa_cp ( DFA_INFO dfa,
int  i,
int  j 
)

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
戻り値:
TRUE if connection is allowed by the grammar, FALSE if prohibited.

cpair.c49 行で定義されています。

参照元 cpair_append(), と print_dfa_cp().

boolean dfa_cp_begin ( DFA_INFO dfa,
int  i 
)

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
戻り値:
TRUE if it can appear at the beginning of sentence, FALSE if not.

cpair.c64 行で定義されています。

参照元 cpair_append(), と print_dfa_cp().

boolean dfa_cp_end ( DFA_INFO dfa,
int  i 
)

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
戻り値:
TRUE if it can appear at the end of sentence, FALSE if not.

cpair.c79 行で定義されています。

参照元 cpair_append(), と print_dfa_cp().

void set_dfa_cp ( DFA_INFO dfa,
int  i,
int  j,
boolean  value 
)

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.

cpair.c94 行で定義されています。

参照元 cpair_append(), extract_cpair(), malloc_dfa_cp(), と realloc_dfa_cp().

void set_dfa_cp_begin ( DFA_INFO dfa,
int  i,
boolean  value 
)

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.

cpair.c113 行で定義されています。

参照元 cpair_append(), extract_cpair(), malloc_dfa_cp(), と realloc_dfa_cp().

void set_dfa_cp_end ( DFA_INFO dfa,
int  i,
boolean  value 
)

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.

cpair.c132 行で定義されています。

参照元 cpair_append(), extract_cpair(), malloc_dfa_cp(), と 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

cpair.c148 行で定義されています。

参照元 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

cpair.c163 行で定義されています。

参照元 extract_cpair(), と 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

cpair.c194 行で定義されています。

参照元 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

cpair.c255 行で定義されています。

参照元 dfa_info_free().

boolean make_dfa_voca_ref ( DFA_INFO dinfo,
WORD_INFO winfo 
)

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.

init_dfa.c74 行で定義されています。

参照元 multigram_add_words_to_grammar(), と multigram_update().

void make_terminfo ( TERM_INFO tinfo,
DFA_INFO dinfo,
WORD_INFO winfo 
)

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.

mkterminfo.c39 行で定義されています。

参照元 make_dfa_voca_ref().

void free_terminfo ( TERM_INFO tinfo  ) 

Free word list for each category.

引数:
tinfo [in] terminal data structure holding the content.

mkterminfo.c75 行で定義されています。

参照元 dfa_info_free(), と multigram_add_words_to_grammar().

void terminfo_append ( TERM_INFO dst,
TERM_INFO src,
int  coffset,
int  woffset 
)

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

mkterminfo.c97 行で定義されています。

参照元 multigram_append_to_global().

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

init_dfa.c107 行で定義されています。

参照元 multigram_update().

boolean dfa_pause_word_append ( DFA_INFO dst,
DFA_INFO src,
int  coffset 
)

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

init_dfa.c138 行で定義されています。

参照元 multigram_append_to_global().

boolean read_grammar_from_socket ( int  sd,
DFA_INFO **  ret_dfa,
WORD_INFO **  ret_winfo,
HTK_HMM_INFO hmminfo 
)

Read grammar (DFA and dictionary) from socket and returns newly allocated grammars.

引数:
sd [in] socket descpriter
ret_dfa [out] read DFA
ret_winfo [out] read dictionary
hmminfo [in] HMM definition
戻り値:
TRUE on success, or FALSE on failure.

init_dfa.c178 行で定義されています。


Juliusに対してTue Dec 18 16:05:02 2007に生成されました。  doxygen 1.5.4