From 24bda0a647ac3c076dbbf4084958d1ee86a908cc Mon Sep 17 00:00:00 2001 From: Taku Kudo Date: Tue, 8 Jan 2019 17:47:19 +0900 Subject: added (Encode|Decode)AsSerializedProto interface so Python module can get full access to the proto. --- src/sentencepiece_processor.cc | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) (limited to 'src/sentencepiece_processor.cc') diff --git a/src/sentencepiece_processor.cc b/src/sentencepiece_processor.cc index 8c9c208..43dd11c 100644 --- a/src/sentencepiece_processor.cc +++ b/src/sentencepiece_processor.cc @@ -512,6 +512,41 @@ util::Status SentencePieceProcessor::Decode(const std::vector &ids, return Decode(pieces, spt); } +util::bytes SentencePieceProcessor::EncodeAsSerializedProto( + util::min_string_view input) const { + SentencePieceText spt; + if (!Encode(input, &spt).ok()) return ""; + return spt.SerializeAsString(); +} + +util::bytes SentencePieceProcessor::SampleEncodeAsSerializedProto( + util::min_string_view input, int nbest_size, float alpha) const { + SentencePieceText spt; + if (!SampleEncode(input, nbest_size, alpha, &spt).ok()) return ""; + return spt.SerializeAsString(); +} + +util::bytes SentencePieceProcessor::NBestEncodeAsSerializedProto( + util::min_string_view input, int nbest_size) const { + NBestSentencePieceText spt; + if (!NBestEncode(input, nbest_size, &spt).ok()) return ""; + return spt.SerializeAsString(); +} + +util::bytes SentencePieceProcessor::DecodePiecesAsSerializedProto( + const std::vector &pieces) const { + SentencePieceText spt; + if (!Decode(pieces, &spt).ok()) return ""; + return spt.SerializeAsString(); +} + +util::bytes SentencePieceProcessor::DecodeIdsAsSerializedProto( + const std::vector &ids) const { + SentencePieceText spt; + if (!Decode(ids, &spt).ok()) return ""; + return spt.SerializeAsString(); +} + #define CHECK_STATUS_OR_RETURN_DEFAULT(value) \ if (!status().ok()) { \ LOG(ERROR) << status().error_message() << "\nReturns default value " \ -- cgit v1.2.3