Download tools/mosesdecoder/moses/Syntax/F2S/HyperTree.h from Quagmire1/wiki-cased: direct link, hf CLI and curl.
- Browser
- Download file 1.87 kB
-
https://huggingface.co/Quagmire1/wiki-cased/resolve/main/tools/mosesdecoder/moses/Syntax/F2S/HyperTree.h
- Command line
-
hf download hf://Quagmire1/wiki-cased/tools/mosesdecoder/moses/Syntax/F2S/HyperTree.h
-
curl -L -o HyperTree.h https://huggingface.co/Quagmire1/wiki-cased/resolve/main/tools/mosesdecoder/moses/Syntax/F2S/HyperTree.h
1.87 kB
| namespace Moses | |
| { | |
| namespace Syntax | |
| { | |
| namespace F2S | |
| { | |
| // A HyperTree for representing a tree-to-string rule table. See this paper: | |
| // | |
| // Hui Zhang, Min Zhang, Haizhou Li, and Chew Lim Tan | |
| // "Fast Translation Rule Matching for Syntax-based Statistical Machine | |
| // Translation" | |
| // In proceedings of EMNLP 2009 | |
| // | |
| class HyperTree : public RuleTable | |
| { | |
| public: | |
| class Node | |
| { | |
| public: | |
| typedef boost::unordered_map<HyperPath::NodeSeq, Node> Map; | |
| bool IsLeaf() const { | |
| return m_map.empty(); | |
| } | |
| bool HasRules() const { | |
| return !m_targetPhraseCollection->IsEmpty(); | |
| } | |
| void Prune(std::size_t tableLimit); | |
| void Sort(std::size_t tableLimit); | |
| Node *GetOrCreateChild(const HyperPath::NodeSeq &); | |
| const Node *GetChild(const HyperPath::NodeSeq &) const; | |
| TargetPhraseCollection::shared_ptr | |
| GetTargetPhraseCollection() const { | |
| return m_targetPhraseCollection; | |
| } | |
| TargetPhraseCollection::shared_ptr | |
| GetTargetPhraseCollection() { | |
| return m_targetPhraseCollection; | |
| } | |
| const Map &GetMap() const { | |
| return m_map; | |
| } | |
| Node() : m_targetPhraseCollection(new TargetPhraseCollection) { } | |
| private: | |
| Map m_map; | |
| TargetPhraseCollection::shared_ptr m_targetPhraseCollection; | |
| }; | |
| HyperTree(const RuleTableFF *ff) : RuleTable(ff) { } | |
| const Node &GetRootNode() const { | |
| return m_root; | |
| } | |
| private: | |
| friend class HyperTreeCreator; | |
| TargetPhraseCollection::shared_ptr | |
| GetOrCreateTargetPhraseCollection(const HyperPath &); | |
| Node &GetOrCreateNode(const HyperPath &); | |
| void SortAndPrune(std::size_t); | |
| Node m_root; | |
| }; | |
| } // namespace F2S | |
| } // namespace Syntax | |
| } // namespace Moses | |