[features] Adding counter/bag-of-words representation of features

This commit is contained in:
Al
2015-09-08 00:17:26 -07:00
parent 49d389b9d8
commit ae7e30634b
2 changed files with 23 additions and 5 deletions

View File

@@ -22,4 +22,21 @@ void feature_array_add(cstring_array *features, size_t count, ...) {
char_array_terminate(features->str);
va_end(args);
}
}
bool feature_counts_update(khash_t(str_uint32) *features, char *feature, int count) {
khiter_t k;
k = kh_get(str_uint32, features, feature);
if (k == kh_end(features)) {
int ret;
k = kh_put(str_uint32, features, feature, &ret);
if (ret < 0) return false;
kh_value(features, k) = count;
} else {
kh_value(features, k) += count;
}
return true;
}

View File

@@ -1,18 +1,19 @@
#ifndef FEATURES_H
#define FEATURES_H
#include <stdlib.h>
#include <stdarg.h>
#include "collections.h"
#include "string_utils.h"
#define FEATURE_SEPARATOR_CHAR "|"
// Add feature to array
void feature_array_add(cstring_array *features, size_t count, ...);
// Add feature count to dictionary
bool feature_counts_update(khash_t(str_uint32) *features, char *feature, int count);
#endif