diff options
author | Peng Wu <alexepico@gmail.com> | 2012-05-21 14:56:50 +0800 |
---|---|---|
committer | Peng Wu <alexepico@gmail.com> | 2012-05-21 14:56:50 +0800 |
commit | 34de36eabbc3baac56885e01fa2ec79ba7fb5cc6 (patch) | |
tree | a02d1f43a569cfbbf9b201a41451a1436266c234 /utils | |
parent | 931df7d5a0924cde0c5b249b5f82a8d5bf9039b5 (diff) | |
download | libpinyin-34de36eabbc3baac56885e01fa2ec79ba7fb5cc6.tar.gz libpinyin-34de36eabbc3baac56885e01fa2ec79ba7fb5cc6.tar.xz libpinyin-34de36eabbc3baac56885e01fa2ec79ba7fb5cc6.zip |
write save_phrase_index
Diffstat (limited to 'utils')
-rw-r--r-- | utils/storage/gen_binary_files.cpp | 11 | ||||
-rw-r--r-- | utils/storage/import_interpolation.cpp | 11 | ||||
-rw-r--r-- | utils/training/gen_ngram.cpp | 11 | ||||
-rw-r--r-- | utils/training/gen_unigram.cpp | 11 | ||||
-rw-r--r-- | utils/utils_helper.h | 21 |
5 files changed, 28 insertions, 37 deletions
diff --git a/utils/storage/gen_binary_files.cpp b/utils/storage/gen_binary_files.cpp index 4519064..eeed911 100644 --- a/utils/storage/gen_binary_files.cpp +++ b/utils/storage/gen_binary_files.cpp @@ -98,15 +98,8 @@ int main(int argc, char * argv[]){ phrase_index.compat(); - new_chunk = new MemoryChunk; - phrase_index.store(1, new_chunk); - new_chunk->save("gb_char.bin"); - phrase_index.load(1, new_chunk); + if (!save_phrase_index(&phrase_index)) + exit(ENOENT); - new_chunk = new MemoryChunk; - phrase_index.store(2, new_chunk); - new_chunk->save("gbk_char.bin"); - phrase_index.load(2, new_chunk); - return 0; } diff --git a/utils/storage/import_interpolation.cpp b/utils/storage/import_interpolation.cpp index 9d8f4bd..5325b95 100644 --- a/utils/storage/import_interpolation.cpp +++ b/utils/storage/import_interpolation.cpp @@ -251,15 +251,8 @@ int main(int argc, char * argv[]){ taglib_fini(); - chunk = new MemoryChunk; - phrase_index.store(1, chunk); - chunk->save("gb_char.bin"); - phrase_index.load(1, chunk); - - chunk = new MemoryChunk; - phrase_index.store(2, chunk); - chunk->save("gbk_char.bin"); - phrase_index.load(2, chunk); + if (!save_phrase_index(&phrase_index)) + exit(ENOENT); return 0; } diff --git a/utils/training/gen_ngram.cpp b/utils/training/gen_ngram.cpp index 5721ce7..20b160c 100644 --- a/utils/training/gen_ngram.cpp +++ b/utils/training/gen_ngram.cpp @@ -130,15 +130,8 @@ int main(int argc, char * argv[]){ free(linebuf); - MemoryChunk * new_chunk = new MemoryChunk; - phrase_index.store(1, new_chunk); - new_chunk->save("gb_char.bin"); - phrase_index.load(1, new_chunk); - - new_chunk = new MemoryChunk; - phrase_index.store(2, new_chunk); - new_chunk->save("gbk_char.bin"); - phrase_index.load(2, new_chunk); + if (!save_phrase_index(&phrase_index)) + exit(ENOENT); return 0; } diff --git a/utils/training/gen_unigram.cpp b/utils/training/gen_unigram.cpp index 470a60a..f94c214 100644 --- a/utils/training/gen_unigram.cpp +++ b/utils/training/gen_unigram.cpp @@ -52,15 +52,8 @@ int main(int argc, char * argv[]){ } #endif - MemoryChunk * new_chunk = new MemoryChunk; - phrase_index.store(1, new_chunk); - new_chunk->save("gb_char.bin"); - phrase_index.load(1, new_chunk); - - new_chunk = new MemoryChunk; - phrase_index.store(2, new_chunk); - new_chunk->save("gbk_char.bin"); - phrase_index.load(2, new_chunk); + if (!save_phrase_index(&phrase_index)) + exit(ENOENT); return 0; } diff --git a/utils/utils_helper.h b/utils/utils_helper.h index 59286db..2f143c9 100644 --- a/utils/utils_helper.h +++ b/utils/utils_helper.h @@ -33,7 +33,7 @@ static bool load_phrase_index(FacadePhraseIndex * phrase_index) { chunk = new MemoryChunk; bool retval = chunk->load(bin_file); if (!retval) { - fprintf(stderr, "open %s failed!\n", bin_file); + fprintf(stderr, "load %s failed!\n", bin_file); return false; } @@ -42,5 +42,24 @@ static bool load_phrase_index(FacadePhraseIndex * phrase_index) { return true; } +static bool save_phrase_index(FacadePhraseIndex * phrase_index) { + MemoryChunk * new_chunk = NULL; + for (size_t i = 0; i < PHRASE_INDEX_LIBRARY_COUNT; ++i) { + const char * bin_file = pinyin_phrase_files[i]; + if (NULL == bin_file) + continue; + + new_chunk = new MemoryChunk; + phrase_index->store(i, new_chunk); + bool retval = new_chunk->save(bin_file); + if (!retval) { + fprintf(stderr, "save %s failed.", bin_file); + return false; + } + + phrase_index->load(i, new_chunk); + } + return true; +} #endif |