Newer
Older
#include <libpwrutils/foreach.h>
#include <libpwrutils/bitset.h>
ilor
committed
#include <sstream>
ilor
committed
std::string TSet::to_raw_string() const
{
return tag_.raw_dump();
}
std::string TSet::to_string(const Corpus2::Tagset& tagset) const
{
return "{" + tagset.tag_to_symbol_string(tag_) + "}";
ilor
committed
}
std::string TSet::var_repr(const std::string &var_name)
{
int TSet::categories_count(const Corpus2::Tagset& tagset) const
{
int cats = (tag_.get_pos().any()) ? 1 : 0;
foreach (const Corpus2::mask_t& mask, tagset.all_attribute_masks()) {
if (tag_.get_values_for(mask).any()) {
++cats;
}
}
return cats;
}
int TSet::matching_categories(const Corpus2::Tag& tag) const
{
const Corpus2::Tag& masked = tag_.get_masked(tag);
return PwrNlp::count_bits_set(masked.get_pos()) + PwrNlp::count_bits_set(masked.get_values());
}
void TSet::insert_symbol(const Corpus2::Tagset& tagset, const std::string& s)
{
tag_.combine_with(tagset.parse_symbol(s));
}
std::string TSet::to_compact_string(const Corpus2::Tagset& tagset)
const
{
if (tag_.is_null()) {
return "-";
}
std::string body = tagset.tag_to_symbol_string(tag_);
boost::algorithm::replace_all(body, ",", "-");
return body;
}