All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.ansj.domain.PersonNatureAttr Maven / Gradle / Ivy

There is a newer version: 5.1.6
Show newest version
package org.ansj.domain;

/**
 * 人名标注pojo类
 * 
 * @author ansj
 * 
 */
public class PersonNatureAttr {
	// 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;
			}
		}
		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();
	}
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy