Sha256: 033d2d3f9e7d87e556a681c2404110d7cd07b575816ac4e9e2134a5d03887c43

Contents?: true

Size: 1.24 KB

Versions: 8

Compression:

Stored size: 1.24 KB

Contents

#ifndef _CHUNK_H_
#define _CHUNK_H_

#include <cmath>

#include "word.h"

namespace rmmseg
{
    /**
     * A chunk stores 3 (or less) successive words.
     */
    struct Chunk
    {
        int total_length()
        {
            int len = 0;
            for (int i = 0; i < n; ++i)
                if (words[i]->length == -1) /* tmp word */
                    len += 1;
                else
                    len += words[i]->length;
            return len;
        }
        double average_length()
        {
            return ((double)total_length())/n;
        }
        double variance()
        {
            double avg = average_length();
            double sqr_sum = 0;
            double tmp;
            for (int i = 0; i < n; ++i)
            {
                tmp = words[i]->length;
                if (tmp == -1)
                    tmp = 1;
                tmp = tmp-avg;
                sqr_sum += tmp*tmp;
            }
            return std::sqrt(sqr_sum);
        }
        int degree_of_morphemic_freedom()
        {
            int sum = 0;
            for (int i = 0; i < n; ++i)
                sum += words[i]->freq;
            return sum;
        }

        
        int n;
        Word *words[3];
    };
}

#endif /* _CHUNK_H_ */

Version data entries

8 entries across 8 versions & 2 rubygems

Version Path
pluskid-rmmseg-cpp-0.2.0 ext/rmmseg/chunk.h
pluskid-rmmseg-cpp-0.2.1 ext/rmmseg/chunk.h
pluskid-rmmseg-cpp-0.2.2 ext/rmmseg/chunk.h
pluskid-rmmseg-cpp-0.2.3 ext/rmmseg/chunk.h
pluskid-rmmseg-cpp-0.2.4 ext/rmmseg/chunk.h
rmmseg-cpp-0.2.7 ext/rmmseg/chunk.h
rmmseg-cpp-0.2.6 ext/rmmseg/chunk.h
rmmseg-cpp-0.2.5 ext/rmmseg/chunk.h