Skip to content
Snippets Groups Projects
Select Git revision
  • 923c30f0d6c9e6c0de692b9641b8eb3c2d957d6e
  • master default protected
  • develop protected
  • develop-0.7.x
  • develop-0.8.0
  • dev_czuk
  • loader
  • kgr10_roberta
  • 14-BiLSTM-CRF-RoBERTa
  • 12-handle-long-sequences
  • 13-flair-embeddings
  • BiLSTM
  • v0.7.0
  • v0.6.1
  • v0.5
  • v0.4.1
  • v0.3
17 results

process_poleval_pretokenized.py

Blame
  • plural.cpp 1.75 KiB
    /*
        Copyright (C) 2010 Tomasz Śniatowski, Adam Radziszewski
    
        This program is free software; you can redistribute it and/or modify it
    under the terms of the GNU General Public License as published by the Free
    Software Foundation; either version 3 of the License, or (at your option)
    any later version.
    
        This program is distributed in the hope that it will be useful, but
    WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
    or FITNESS FOR A PARTICULAR PURPOSE. 
    
        See the LICENSE and COPYING files for more details.
    */
    
    #include <libpwrutils/plural.h>
    #include <sstream>
    
    namespace PwrNlp {
    
    std::string enpl(int amount, const std::string& sg)
    {
    	if (amount == 1) {
    		return sg;
    	} else {
    		return sg + "s";
    	}
    }
    
    std::string enpln(int amount, const std::string& sg)
    {
    	std::stringstream ss;
    	ss << amount << " " << enpl(amount, sg);
    	return ss.str();
    }
    
    std::string enpl(int amount, const std::string& sg, const std::string& pl)
    {
    	if (amount == 1) {
    		return sg;
    	} else {
    		return pl;
    	}
    }
    
    std::string enpln(int amount, const std::string& sg, const std::string& pl)
    {
    	std::stringstream ss;
    	ss << amount << " " << enpl(amount, sg, pl);
    	return ss.str();
    }
    
    
    std::string plpl(int amount, const std::string& gen0, const std::string& nom1, const std::string& acc2)
    {
    	if (amount == 1) {
    		return nom1;
    	} else {
    		amount %= 100;
    		if (amount > 10 && amount < 20) {
    			return gen0;
    		} else {
    			amount %= 10;
    			if (amount == 2 || amount == 3 || amount == 4) {
    				return acc2;
    			} else {
    				return gen0;
    			}
    		}
    	}
    }
    
    std::string plpln(int amount, const std::string& gen0, const std::string& nom1, const std::string& acc2)
    {
    	std::stringstream ss;
    	ss << amount << " " << plpl(amount, gen0, nom1, acc2);
    	return ss.str();
    }
    
    } /* end namespace PwrNlp */