亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? seggraph.java

?? 基于java語言的分詞系統
?? JAVA
字號:
package org.ictclas4j.segment;

import java.util.ArrayList;

import org.ictclas4j.bean.ContextStat;
import org.ictclas4j.bean.POS;
import org.ictclas4j.bean.SegNode;
import org.ictclas4j.utility.Utility;


/**
 * 分詞圖表,即二維表
 * 
 * @author sinboy
 * @since 2006.6
 * 
 */
public class SegGraph {
	private boolean isRowFirst;// 是否按行優先

	private ArrayList<SegNode> snList;// 分詞圖表實際是用鏈表來表示

	public SegGraph() {

	}

	public SegGraph(ArrayList<SegNode> snList) {
		this.snList = snList;
	}

	public SegNode getElement(int row, int col) {
		SegNode result = new SegNode();
		result.setValue(  Utility.INFINITE_VALUE );
		// if (row > m_nRow || col > m_nCol)
		// return null;

		int index = 0;
		if (snList != null) {
			if (isRowFirst) {
				for (int i = 0; i < snList.size(); i++, index++) {
					SegNode sg = snList.get(i);
					if (row != -1 && sg.getRow() < row || col != -1 && sg.getRow() == row && sg.getCol() < col)
						continue;
					else
						break;
				}
			} else {
				for (int i = 0; i < snList.size(); i++, index++) {
					SegNode sg = snList.get(i);
					if (col != -1 && sg.getCol() < col || row != -1 && sg.getCol() == col && sg.getRow() < row)
						continue;
					else
						break;
				}
			}

			// Find it and return the value
			if (index < snList.size()) {
				SegNode sg = snList.get(index);
				if ((sg.getRow() == row || row == -1) && (sg.getCol() == col || col == -1))
					result = sg;
			}
		}
		return result;

	}

	/**
	 * 設置元素.如果能在圖表中找到,重新設值.否則添加進去.
	 * 
	 * @param sg
	 * @return
	 */
	public boolean setElement(SegNode sg) {
		if (sg != null) {
			if (snList == null)
				snList = new ArrayList<SegNode>();

			int i = 0;
			SegNode sgTemp = null;
			if (isRowFirst) {
				for (i = 0; i < snList.size(); i++) {
					sgTemp = snList.get(i);
					if (sgTemp.getRow() < sg.getRow() || sgTemp.getRow() == sg.getRow()
							&& sgTemp.getCol() < sg.getCol())
						continue;
					else
						break;
				}
			} else {
				for (i = 0; i < snList.size(); i++) {
					sgTemp = snList.get(i);
					if (sgTemp.getCol() < sg.getCol() || sgTemp.getCol() == sg.getCol()
							&& sgTemp.getRow() < sg.getRow())
						continue;
					else
						break;
				}
			}

			if (sgTemp != null && sgTemp.getRow() == sg.getRow() && sgTemp.getCol() == sg.getCol())
				sgTemp = sg;
			else if (i > 0)
				snList.add(i - 1, sg);

		}
		return false;
	}

	/**
	 * 得到所有列值為Col的元素
	 * 
	 * @param curIndex
	 *            當前索引值,表示列值或行值
	 * @param isColFirst
	 *            是否按列優先進行遍歷
	 * @return
	 */
	public ArrayList<SegNode> getNodes(int curIndex, boolean isColFirst) {
		ArrayList<SegNode> result = null;

		if (snList != null && snList.size() > 0 && curIndex >= 0) {
			result = new ArrayList<SegNode>();
			for (int i = 0; i < snList.size(); i++) {
				SegNode sg = snList.get(i);
				if (isColFirst) {
					if (sg.getCol() == curIndex)
						result.add(sg);
				} else {
					if (sg.getRow() == curIndex)
						result.add(sg);
				}

			}
		}
		return result;
	}

	/**
	 * 把SegGraph插入的列表當中
	 * 
	 * @param snList
	 * @param graph
	 * @param isRowFirst
	 *            是否按行優先原則
	 * @return 如果插入成功返回True,否則返回False
	 */
	public boolean insert(SegNode graph, boolean isRowFirst) {
		SegNode sg = null;
		if (snList == null)
			snList = new ArrayList<SegNode>();

		if (graph != null) {
			if (snList.size() == 0) {
				snList.add(graph);
				return true;
			}

			for (int i = 0; i < snList.size(); i++) {
				sg = snList.get(i);

				if (isRowFirst) {
					// 到最后一個節點
					if (i == snList.size() - 1) {
						if (graph.getRow() > sg.getRow()
								|| (graph.getRow() == sg.getRow() && graph.getCol() > sg.getCol()))
							snList.add(graph);
						else {
							if (graph.getCol() == sg.getCol()) {
								snList.set(i, graph);
							} else
								snList.add(i, graph);
						}
						return true;
					}

					if (graph.getRow() > sg.getRow() || (graph.getRow() == sg.getRow() && graph.getCol() > sg.getCol()))
						continue;
					else {
						if (graph.getRow()==sg.getRow() && graph.getCol() == sg.getCol()) {
							snList.set(i, graph);
						} else
							snList.add(i, graph);

						return true;
					}
				} else {
					// 到最后一個節點
					if (i == snList.size() - 1) {
						if (graph.getCol() > sg.getCol()
								|| (graph.getCol() == sg.getCol() && graph.getRow() > sg.getRow()))
							snList.add(graph);
						else {
							if (graph.getRow()==sg.getRow() && graph.getCol() == sg.getCol()) {
								snList.set(i, graph);
							} else
								snList.add(i, graph);
						}
						return true;
					}

					if (graph.getCol() > sg.getCol() || (graph.getCol() == sg.getCol() && graph.getRow() > sg.getRow()))
						continue;
					else {
						if (graph.getRow() == sg.getRow()) {
							snList.set(i, graph);
						} else
							snList.add(i, graph);

						return true;
					}
				}
			}
		}

		return false;
	}

	public SegNode delete(int row, int col) {
		SegNode result = null;

		if (snList != null && snList.size() > 0) {
			for (SegNode sn : snList) {
				if (sn.getRow() == row && sn.getCol() == col) {
					snList.remove(sn);
					return sn;
				}
			}
		}

		return result;
	}

	/**
	 * 得到下一個行值和該列值相等的所有元素。
	 * 
	 * @param snList
	 * @param curIndex
	 *            當前元素的位置
	 * @return
	 */
	public ArrayList<SegNode> getNextElements(int curIndex) {
		ArrayList<SegNode> result = null;

		if (snList != null && snList.size() > 0 && curIndex >= 0 && curIndex < snList.size()) {
			result = new ArrayList<SegNode>();
			SegNode curSg = snList.get(curIndex);

			for (int i = curIndex + 1; i < snList.size(); i++) {
				SegNode sg = snList.get(i);
				if (sg.getRow() == curSg.getCol())
					result.add(sg);

			}
		}
		return result;
	}

	public boolean isRowFirst() {
		return isRowFirst;
	}

	public void setRowFirst(boolean isRowFirst) {
		this.isRowFirst = isRowFirst;
	}

	public ArrayList<SegNode> getSnList() {
		return snList;
	}

	public void setSnList(ArrayList<SegNode> sgs) {
		this.snList = sgs;
	}

	public int getSize() {
		if (snList != null)
			return snList.size();
		else
			return -1;
	}

	public int getMaxRow() {
		int result = -1;

		if (snList != null && snList.size() > 0) {
			int size = snList.size();
			SegNode sn = snList.get(size - 1);
			result = sn.getRow();
		}

		return result;
	}

	public int getMaxCol() {
		int result = -1;

		if (snList != null && snList.size() > 0) {
			int size = snList.size();
			SegNode sn = snList.get(size - 1);
			result = sn.getCol();
		}

		return result;
	}

	/**
	 * 獲取前一個詞與當前詞最匹配的詞性位置
	 * 
	 */
	public void getBestPrev(ContextStat context) {
		if (snList != null) {
			SegNode sn = null;
			ArrayList<POS> posList = null;
			for (int i = 1; i < snList.size(); i++) {
				sn = snList.get(i);
				posList = sn.getAllPos();
				for (int j = 0; posList != null && j < posList.size(); j++) {
					double minFee = 1000000;
					int minPrev = 100000;
					POS pos = posList.get(j);
					SegNode psn = snList.get(i - 1);
					ArrayList<POS> pposList = psn.getAllPos();
					for (int k = 0; pposList != null && k < pposList.size(); k++) {
						double temp = -Math.log(context
								.getPossibility(0, pposList.get(k).getTag(), pos.getTag()));
						temp += pposList.get(k).getFreq();// Add the fees
						if (temp < minFee) {
							minFee = temp;
							minPrev = k;
						}
					}
					pos.setPrev(minPrev);
					pos.setFreq(pos.getFreq() + minFee);
				}
			}
		}
	}

	public SegNode getLast() {
		if (snList != null && snList.size() > 0) {
			return snList.get(snList.size() - 1);
		} else
			return null;
	}
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
琪琪久久久久日韩精品| 欧美视频中文字幕| 91久久香蕉国产日韩欧美9色| 欧美三级日韩三级国产三级| 久久精品人人做人人综合| 亚洲国产精品久久久男人的天堂| 国产毛片精品国产一区二区三区| 欧美午夜在线观看| 国产精品麻豆99久久久久久| 五月激情六月综合| 日本韩国视频一区二区| 国产视频亚洲色图| 激情欧美一区二区| 欧美一区二区三区小说| 一区二区在线观看视频| 成人综合婷婷国产精品久久蜜臀| 日韩女优av电影在线观看| 亚洲国产日韩a在线播放性色| 成人av在线播放网站| 精品福利在线导航| 免费一级欧美片在线观看| 欧美天堂一区二区三区| 亚洲免费观看高清完整版在线观看| 国产在线一区观看| 精品区一区二区| 麻豆91精品91久久久的内涵| 欧美精品亚洲一区二区在线播放| 亚洲伊人伊色伊影伊综合网| 91在线观看免费视频| 亚洲欧洲精品成人久久奇米网| 国产在线精品一区二区夜色| 精品国产91洋老外米糕| 久久精品国产第一区二区三区| 制服丝袜日韩国产| 天堂成人免费av电影一区| 欧美日韩高清一区| 亚洲成人在线免费| 欧美日韩一区二区三区视频| 亚洲一区二区视频| 7777精品久久久大香线蕉| 日韩中文字幕亚洲一区二区va在线| 欧美日韩国产综合一区二区三区| 亚洲一级在线观看| 91精品国产免费| 激情久久五月天| 国产精品免费av| 91性感美女视频| 亚洲二区在线观看| 日韩视频在线一区二区| 午夜成人免费电影| 精品少妇一区二区三区日产乱码 | 欧美一区二区精品久久911| 亚洲1区2区3区4区| 久久久久久久久久看片| 成人av在线资源网站| 亚洲高清免费在线| 精品久久久久av影院| eeuss鲁片一区二区三区在线观看| 亚洲婷婷综合久久一本伊一区| 欧美专区亚洲专区| 国产一区二区视频在线| 一区二区三区四区中文字幕| 777欧美精品| av不卡免费在线观看| 三级影片在线观看欧美日韩一区二区| 日韩一区二区在线观看视频播放| 国产高清不卡二三区| 亚洲一二三四久久| 精品国产精品一区二区夜夜嗨| 91伊人久久大香线蕉| 久久99精品久久久久| 亚洲视频在线一区观看| 精品va天堂亚洲国产| 在线观看www91| 国产成人精品三级麻豆| 婷婷开心激情综合| 亚洲欧洲日产国产综合网| 欧美电影精品一区二区| 91福利社在线观看| 国产精品亚洲视频| 日韩电影在线免费观看| 亚洲视频网在线直播| 精品国产百合女同互慰| 欧美福利一区二区| 色妹子一区二区| 国产精品资源在线看| 首页国产欧美日韩丝袜| 亚洲精品国产精华液| 国产色产综合产在线视频| 日韩欧美电影在线| 欧美三级乱人伦电影| av在线播放成人| 国产成人亚洲综合a∨婷婷| 免费成人小视频| 亚洲国产精品久久久男人的天堂| 国产精品久久久久三级| 久久久九九九九| 日韩欧美黄色影院| 日韩午夜激情免费电影| 欧美日本韩国一区二区三区视频| 一本高清dvd不卡在线观看| av亚洲产国偷v产偷v自拍| 国产一区二区三区四区五区入口| 美女脱光内衣内裤视频久久网站| 午夜精品久久久久久久蜜桃app | 久久精品一区四区| 欧美tk—视频vk| 日韩精品中文字幕一区| 欧美乱妇23p| 欧美另类久久久品| 91精品国产黑色紧身裤美女| 欧美日韩成人在线| 欧美精品1区2区3区| 欧美疯狂做受xxxx富婆| 欧美色综合网站| 欧美日韩国产成人在线免费| 欧美色图12p| 欧美四级电影网| 欧美日韩国产天堂| 欧美一区二区久久久| 欧美成人一区二区三区| 亚洲精品一区二区三区香蕉| 精品国产91洋老外米糕| 国产欧美精品一区二区三区四区 | 日韩亚洲欧美一区| 欧美大肚乱孕交hd孕妇| 26uuu亚洲| 国产精品高潮久久久久无| 中文字幕在线一区| 亚洲精品国产成人久久av盗摄| 亚洲精品免费视频| 亚洲国产精品久久久久婷婷884| 天堂成人免费av电影一区| 蜜臀av性久久久久蜜臀aⅴ| 国内不卡的二区三区中文字幕| 国产成人综合在线观看| 99久久精品免费| 欧美日韩成人在线一区| 欧美精品一区二区在线播放| 国产精品免费视频网站| 亚洲国产精品欧美一二99| 美女一区二区三区| 91网站最新网址| 日韩三级电影网址| 中文字幕在线播放不卡一区| 亚洲高清中文字幕| 国产高清精品网站| 欧美蜜桃一区二区三区| 国产午夜精品久久久久久久 | 日韩二区三区四区| 风流少妇一区二区| 欧美三级韩国三级日本三斤| 精品国产乱码久久久久久蜜臀| 国产欧美日本一区视频| 午夜欧美一区二区三区在线播放| 国产精品亚洲视频| 欧美日韩美女一区二区| 中文字幕av资源一区| 丝袜美腿一区二区三区| 91啪亚洲精品| 日韩精品在线看片z| 亚洲精品成人精品456| 精品亚洲欧美一区| 欧美亚洲高清一区| 国产欧美一区二区精品婷婷 | caoporn国产一区二区| 91精品国产入口| 亚洲综合另类小说| 国产91精品免费| 日韩欧美色综合网站| 亚洲愉拍自拍另类高清精品| 成人一区二区三区| 精品欧美乱码久久久久久| 午夜激情综合网| 色婷婷一区二区| 国产精品夫妻自拍| 国产精品一区免费在线观看| 欧美日本高清视频在线观看| 亚洲男女一区二区三区| www.亚洲免费av| 中文字幕精品在线不卡| 精品一区二区久久久| 欧美电影精品一区二区| 免费欧美在线视频| 日韩一区二区不卡| 天堂蜜桃91精品| 欧美日韩免费不卡视频一区二区三区| 亚洲女同一区二区| 成人h精品动漫一区二区三区| 久久综合国产精品| 韩国av一区二区三区四区| 91精品国产免费| 蜜桃av一区二区| 欧美一区二区在线播放| 丝袜美腿亚洲色图| 欧美肥妇bbw| 美女视频免费一区| 精品久久国产老人久久综合| 另类专区欧美蜜桃臀第一页| 日韩美女天天操|