package org.ansj.domain;
import java.io.Serializable;
/**
* 人名标注pojo类
*
* @author ansj
*
*/
public class PersonNatureAttr implements Serializable{
/**
*
*/
private static final long serialVersionUID = -8443825231800208197L;
// public int B = -1;//0 姓氏
// public int C = -1;//1 双名的首字
// public int D = -1;//2 双名的末字
// public int E = -1;//3 单名
// public int N = -1; //4任意字
// public int L = -1;//11 人名的下文
// public int M = -1;//12 两个中国人名之间的成分
// public int m = -1;//44 可拆分的姓名
// String[] parretn = {"BC", "BCD", "BCDE", "BCDEN"}
// double[] factory = {"BC", "BCD", "BCDE", "BCDEN"}
public static final PersonNatureAttr NULL = new PersonNatureAttr();
private int[][] locFreq = null;
public int split;
// 12
public int begin;
// 11+12
public int end;
public int allFreq;
// 是否有可能是名字的第一个字
public boolean flag;
/**
* 设置
*
* @param index
* @param freq
*/
public void addFreq(int index, int freq) {
switch (index) {
case 11:
this.end += freq;
allFreq += freq;
break;
case 12:
this.end += freq;
this.begin += freq;
allFreq += freq;
break;
case 44:
this.split += freq;
allFreq += freq;
break;
}
}
/**
* 得道某一个位置的词频
*
* @param length
* @param loc
* @return
*/
public int getFreq(int length, int loc) {
if (locFreq == null)
return 0;
if (length > 3)
length = 3;
if (loc > 4)
loc = 4;
return locFreq[length][loc];
}
/**
* 词频记录表
*
* @param ints
*/
public void setlocFreq(int[][] ints) {
for (int i = 0; i < ints.length; i++) {
if (ints[i][0] > 0) {
flag = true;
break ;
}
}
locFreq = ints;
}
@Override
public String toString() {
StringBuilder sb = new StringBuilder();
sb.append("begin=" + begin);
sb.append(",");
sb.append("end=" + end);
sb.append(",");
sb.append("split=" + split);
return sb.toString();
}
}