From 620d10993d0cd562fe4d1f387331da21c733547c Mon Sep 17 00:00:00 2001 From: TianYuan Date: Mon, 13 Mar 2023 17:47:13 +0000 Subject: [PATCH] fix SplitWord --- demos/TTSCppFrontend/src/front/front_interface.cpp | 14 +++++++------- demos/TTSCppFrontend/src/front/front_interface.h | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/demos/TTSCppFrontend/src/front/front_interface.cpp b/demos/TTSCppFrontend/src/front/front_interface.cpp index 487897f3b..4682c8bb7 100644 --- a/demos/TTSCppFrontend/src/front/front_interface.cpp +++ b/demos/TTSCppFrontend/src/front/front_interface.cpp @@ -449,7 +449,7 @@ int FrontEngineInterface::Word2WordVec(const std::string &word, // yuantian01解释:把一个词再进行分词找到。例子:小雨伞 --> 小 雨伞 或者 小雨 伞 int FrontEngineInterface::SplitWord(const std::string &word, - std::vector &new_word_vec) { + std::vector *new_word_vec) { std::vector word_vec; std::string second_subword; _jieba->CutForSearch(word, word_vec); @@ -461,12 +461,12 @@ int FrontEngineInterface::SplitWord(const std::string &word, int first_begin_idx = word.find_first_of(first_subword); if (first_begin_idx == 0) { second_subword = word.substr(first_subword.length()); - new_word_vec.push_back(first_subword); - new_word_vec.push_back(second_subword); + new_word_vec->push_back(first_subword); + new_word_vec->push_back(second_subword); } else { second_subword = word.substr(0, word.length() - first_subword.length()); - new_word_vec.push_back(second_subword); - new_word_vec.push_back(first_subword); + new_word_vec->push_back(second_subword); + new_word_vec->push_back(first_subword); } return 0; @@ -940,7 +940,7 @@ int FrontEngineInterface::NeuralSandhi(const std::string &word, // 进行进一步分词,把长词切分更短些 std::vector word_list; - if (0 != SplitWord(word, word_list)) { + if (0 != SplitWord(word, &word_list)) { LOG(ERROR) << "Failed to split word."; return -1; } @@ -997,7 +997,7 @@ int FrontEngineInterface::ThreeSandhi(const std::string &word, } else if (word_num == 3) { // 进行进一步分词,把长词切分更短些 std::vector word_list; - if (0 != SplitWord(word, word_list)) { + if (0 != SplitWord(word, &word_list)) { LOG(ERROR) << "Failed to split word."; return -1; } diff --git a/demos/TTSCppFrontend/src/front/front_interface.h b/demos/TTSCppFrontend/src/front/front_interface.h index 87cbba0fd..6b90c21bd 100644 --- a/demos/TTSCppFrontend/src/front/front_interface.h +++ b/demos/TTSCppFrontend/src/front/front_interface.h @@ -102,7 +102,7 @@ class FrontEngineInterface : public TextNormalizer { // 将整个词重新进行 full cut,分词后,各个词会在词典中 int SplitWord(const std::string &word, - std::vector &fullcut_word); + std::vector *fullcut_word); // 对分词结果进行处理:对包含“不”字的分词结果进行整理 std::vector> MergeBu(