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

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

?? graphgenerate.java

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

import java.util.ArrayList;

import org.ictclas4j.bean.Atom;
import org.ictclas4j.bean.Dictionary;
import org.ictclas4j.bean.SegNode;
import org.ictclas4j.bean.WordItem;
import org.ictclas4j.utility.POSTag;
import org.ictclas4j.utility.Utility;


public class GraphGenerate {
 
 

	/**
	 * 全切分,生成切分圖.即找出所有可能的詞組
	 * 
	 * @param atoms
	 * @return
	 */
	public static SegGraph generate(ArrayList<Atom> atoms,Dictionary dict) {
		SegGraph segGraph = null; 
		SegNode sn = null;
		Atom atom = null;

		if (atoms != null && atoms.size() > 0 && dict != null) {
			segGraph = new SegGraph();
			for (int i = 0; i < atoms.size(); i++) {
				atom = atoms.get(i);
				String word = atom.getWord();
				if (atom.getPos() == Utility.CT_CHINESE)
					sn = new SegNode(i, i + 1, 0,0, atom.getWord());
				else {
					double value = Utility.MAX_FREQUENCE;
					int pos = 0;

					switch (atom.getPos()) {
					case Utility.CT_INDEX:
					case Utility.CT_NUM:
						pos = -POSTag.NUM;// 'm'*256
						word = Utility.UNKNOWN_NUM;
						value = 0;
						break;
					case Utility.CT_DELIMITER:
						pos = POSTag.PUNC;// 'w'*256;
						break;
					case Utility.CT_LETTER:
						pos = -POSTag.NOUN_LETTER;//
						value = 0;
						word = Utility.UNKNOWN_LETTER;
						break;
					case Utility.CT_SINGLE:// 12021-2129-3121
						if (Utility.getCharCount("+-1234567890", atom.getWord()) == atom.getLen()) {
							pos = -POSTag.NUM;// 'm'*256
							word = Utility.UNKNOWN_NUM;
						} else {
							pos = -POSTag.NOUN_LETTER;//
							word = Utility.UNKNOWN_LETTER;
						}
						value = 0;
						break;
					default:
						pos = atom.getPos();// '?'*256;
						break;
					}

					sn = new SegNode(i, i + 1,pos, value , word);
				}

				sn.setSrcWord(atom.getWord());
				segGraph.insert(sn, true);
			}

			String word = null;
			for (int i = 0; i < atoms.size(); i++) {
				int j = i + 1;
				word = atoms.get(i).getWord();
				// 如果是“月份”,不要分割
				boolean flag = false;
				if (j < atoms.size()) {
					Atom a2 = atoms.get(j);
					if ("月".equals(word) && "份".equals(a2.getWord())) {
						segGraph.delete(i, j);
						segGraph.delete(i + 1, j + 1);
						word += a2.getWord();
						flag = true;
						j++;
					}
				}

				WordItem wi = null;
				for (; j <= atoms.size(); j++) {
					int totalFreq = 0;
					wi = dict.getMaxMatch(word);
					if (wi != null) {
						// find it
						if (word.equals(wi.getWord())) {
							ArrayList<WordItem> wis = dict.getHandle(word);
							for (WordItem w : wis)
								totalFreq += w.getFreq();

							// 1年內,1999年末
							if (word.length() == 2 && segGraph.getSize() > 0) {
								SegNode g2 = segGraph.getLast();
								if (Utility.isAllNum(g2.getWord()) || Utility.isAllChinese(g2.getWord())
										&& (g2.getWord().indexOf("年") == 0 || g2.getWord().indexOf("月") == 0)) {

									if ("末內中底前間初".indexOf(word.substring(1)) != -1)
										break;
								}
							}
							// 只有一個性詞,存貯它
							SegNode sg = null;
							if (wis.size() == 1)
								sg = new SegNode(i, j,wis.get(0).getHandle(),totalFreq , word);
							else
								sg = new SegNode(i, j, 0,totalFreq , word);
						
							segGraph.insert(sg, true);

						}
						if (flag)
							i++;
						if (j < atoms.size()) { 
							String word2 = atoms.get(j).getWord();
							word += word2;
						} else
							break;
					} else
						break;
				}
			}

		}
		return segGraph;
	}

	/**
	 * 生成二叉圖表,每個節點表示相鄰兩個詞組的耦合關系,如:說@的確
	 * 
	 * @param sgs
	 */
	public static SegGraph biGenerate(SegGraph seg,Dictionary dict,Dictionary biDict) {
		SegGraph segGraph = null;
		final double smoothParam = 0.1;
		double curFreq;

		if (seg != null && dict != null && biDict != null) {
			segGraph = new SegGraph();
			ArrayList<SegNode> sgs = seg.getSnList();

			for (int i = 0; sgs != null && i < sgs.size(); i++) {
				SegNode sg = sgs.get(i);
				if (sg.getPos() >= 0)
					curFreq = sg.getValue();
				else
					curFreq = dict.getFreq(sg.getWord(), 2);

				// 得到下面行值和該列值相等的所有元素
				ArrayList<SegNode> nextSgs = seg.getNextElements(i);
				for (SegNode graph : nextSgs) {
					String twoWords = sg.getWord();
					twoWords += Utility.WORD_SEGMENTER;
					twoWords += graph.getWord();

					// 計算相臨兩個詞之間的平滑值
					// -log{a*P(Ci-1)+(1-a)P(Ci|Ci-1)} Note 0<a<1
					int twoFreq = biDict.getFreq(twoWords, 3);
					double temp = (double) 1 / Utility.MAX_FREQUENCE;
					double value = smoothParam * (1 + curFreq) / (Utility.MAX_FREQUENCE + 80000);
					value += (1 - smoothParam) * ((1 - temp) * twoFreq / (1 + curFreq) + temp);
					value = -Math.log(value);

					if (value < 0)
						value += sg.getValue();

					SegNode sg2 = new SegNode();
					// 分隔符@前的詞在鏈表中的位置
					int wordIndex = getWordIndex(sgs, sg);
					sg2.setRow(wordIndex);

					// 分隔符@后的詞在鏈表中的位置
					wordIndex = getWordIndex(sgs, graph);
					sg2.setCol(wordIndex);
					sg2.setWord(twoWords);
					sg2.setPos(sg.getPos());
					sg2.setValue(value); 
					segGraph.insert(sg2, false);
				}
			}
		}
		return segGraph;
	}

	private static int getWordIndex(ArrayList<SegNode> sgs, SegNode graph) {
		if (sgs != null && graph != null) {
			for (int i = 0; i < sgs.size(); i++) {
				if (sgs.get(i) == graph)
					return i;
			}
		}

		return -1;
	}

}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
99re在线精品| 国产女同互慰高潮91漫画| 亚洲色图在线播放| 色综合久久综合网| 夜夜精品视频一区二区| 欧美日韩一卡二卡| 亚洲va国产va欧美va观看| 欧美精品日韩综合在线| 蜜桃免费网站一区二区三区| 日韩欧美国产三级| 国产成人午夜片在线观看高清观看| 久久久久久日产精品| 成人亚洲精品久久久久软件| 日韩毛片视频在线看| 欧洲另类一二三四区| 奇米888四色在线精品| 久久午夜老司机| 91美女福利视频| 亚洲第一精品在线| 337p粉嫩大胆噜噜噜噜噜91av | 免费在线看成人av| 久久综合精品国产一区二区三区 | 丁香一区二区三区| 亚洲蜜臀av乱码久久精品蜜桃| 欧洲激情一区二区| 精品一二三四区| 1区2区3区精品视频| 欧美一区在线视频| 成人一区二区视频| 图片区日韩欧美亚洲| 久久综合色综合88| 精品视频1区2区| 成人中文字幕在线| 五月婷婷欧美视频| 国产精品国产三级国产aⅴ中文| 欧美日韩一区高清| 成人av在线一区二区三区| 亚洲成人三级小说| 国产精品日日摸夜夜摸av| 欧美精品乱码久久久久久按摩 | 午夜精品久久久久久久久久| 久久久久久久综合色一本| 欧美这里有精品| 国产成a人亚洲精品| 麻豆一区二区三| 一区二区三区蜜桃网| 国产亚洲欧美中文| 欧美一区二区日韩| 欧美午夜影院一区| jiyouzz国产精品久久| 激情综合色综合久久| 亚洲成在人线免费| 亚洲人亚洲人成电影网站色| 精品sm捆绑视频| 欧美日韩久久一区| 在线观看成人小视频| 国产成人精品免费一区二区| 日韩在线一区二区三区| 一区二区在线观看不卡| 1区2区3区精品视频| 亚洲国产成人在线| 久久免费午夜影院| 精品电影一区二区| 欧美电视剧在线看免费| 91精选在线观看| 欧美日韩国产免费一区二区 | 色综合色综合色综合色综合色综合 | 国产欧美一区二区精品秋霞影院| 色综合天天视频在线观看 | 国产资源精品在线观看| 亚洲一区二区三区四区五区黄| 国产婷婷精品av在线| 久久亚洲一区二区三区四区| 51精品秘密在线观看| 欧美影视一区二区三区| av电影天堂一区二区在线| 国产91精品露脸国语对白| 精品一区二区三区在线视频| 处破女av一区二区| 国产精品99久久久久久似苏梦涵| 蜜臀精品久久久久久蜜臀| 香蕉乱码成人久久天堂爱免费| 亚洲精品五月天| 亚洲伦理在线精品| 亚洲黄网站在线观看| 亚洲日本乱码在线观看| 亚洲色大成网站www久久九九| 亚洲欧洲精品天堂一级| 成人欧美一区二区三区小说| 亚洲欧洲精品成人久久奇米网| 中文字幕一区视频| 尤物在线观看一区| 一区二区理论电影在线观看| 亚洲一区二区成人在线观看| 亚洲r级在线视频| 日韩电影在线免费观看| 婷婷久久综合九色综合伊人色| 国内精品伊人久久久久影院对白| 亚洲综合一二三区| 精品美女一区二区三区| 精品国产免费一区二区三区香蕉| 日韩免费观看2025年上映的电影| 精品美女被调教视频大全网站| 精品免费视频.| 欧美国产日韩在线观看| 亚洲天堂精品在线观看| 亚洲福利视频三区| 另类小说欧美激情| 国产成+人+日韩+欧美+亚洲 | 激情五月婷婷综合| 成人av在线网站| 日本电影亚洲天堂一区| 日韩欧美一区二区三区在线| 久久人人97超碰com| 国产精品国产三级国产aⅴ原创| 一片黄亚洲嫩模| 久久99国产精品成人| 成人激情电影免费在线观看| 在线中文字幕一区二区| 日韩免费高清电影| 久久久国产综合精品女国产盗摄| 久久亚洲精品国产精品紫薇| 美女一区二区久久| 亚洲国产欧美日韩另类综合 | 日韩一区国产二区欧美三区| 亚洲精品在线观看视频| 亚洲精品国产精华液| 日本女人一区二区三区| 99视频一区二区三区| 日韩女优av电影| 一区二区三区四区亚洲| 久国产精品韩国三级视频| 色呦呦一区二区三区| wwww国产精品欧美| 亚洲午夜免费电影| 成人国产亚洲欧美成人综合网| 欧美日韩中文另类| 亚洲欧美在线另类| 久久精品国产一区二区| 91网站在线观看视频| 久久精品男人的天堂| 日韩在线播放一区二区| 91蝌蚪porny成人天涯| 久久先锋影音av| 秋霞国产午夜精品免费视频| 色婷婷综合久久久中文一区二区| 精品久久国产97色综合| 日韩高清国产一区在线| 91丨porny丨首页| 久久久www成人免费毛片麻豆 | 国产精品灌醉下药二区| 老司机精品视频线观看86| 欧美午夜在线一二页| 亚洲天堂久久久久久久| 波多野结衣精品在线| 久久精品男人天堂av| 韩日av一区二区| 91精品在线麻豆| 午夜激情久久久| 欧美无砖砖区免费| 亚洲男人的天堂在线观看| 风间由美性色一区二区三区| 欧美精品一区二区三区很污很色的| 午夜不卡av免费| 欧美日韩国产乱码电影| 性欧美大战久久久久久久久| 在线观看不卡视频| 亚洲主播在线观看| 欧美色精品在线视频| 亚洲大片在线观看| 欧美日韩激情在线| 日韩国产在线观看| 欧美一卡二卡在线观看| 免播放器亚洲一区| 精品国产伦理网| 国产乱人伦偷精品视频免下载| 亚洲精品在线免费播放| 国产成人在线看| 国产色一区二区| av午夜一区麻豆| 亚洲黄色小视频| 欧美性欧美巨大黑白大战| 亚洲电影中文字幕在线观看| 欧美日韩免费视频| 日本vs亚洲vs韩国一区三区二区| 91精品国产综合久久精品| 日本美女视频一区二区| 精品国产凹凸成av人网站| 国产一区二区三区四区在线观看| 久久久亚洲精品一区二区三区 | 日韩网站在线看片你懂的| 久久精品国产免费看久久精品| 久久久久国产精品麻豆 | 色欧美乱欧美15图片| 亚洲国产综合在线| 日韩一区二区三区在线| 国产精品亚洲人在线观看| 国产精品久久久久久久蜜臀| 欧美在线免费播放| 久久99蜜桃精品|