欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

java中文代碼大全,java常用代碼

Java代碼

public class BooleanDemo { //這個是類名

成都創(chuàng)新互聯(lián)公司堅持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:成都網(wǎng)站建設(shè)、網(wǎng)站設(shè)計、企業(yè)官網(wǎng)、英文網(wǎng)站、手機端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿足客戶于互聯(lián)網(wǎng)時代的武川網(wǎng)站設(shè)計、移動媒體設(shè)計的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!

public static void main(String[] args) { //表示主函數(shù)

boolean isMan = false; //定義一個布爾型的變量

boolean = true; //同上

boolean f = false; //同上

if(finished){ //如果finished

System.out.println("歡迎你再來!"); //打印“歡迎你再來”

}

if(f){ //如果是f

System.out.println("歡迎你再來!");//打印“歡迎你再來”

}

}

}

給段最簡單的java代碼 讓我新手看一下

最簡單的java代碼肯定就是這個了,如下:

public class MyFirstApp

{

public static void main(String[] args)

{

System.out.print("Hello world");

}

}

“hello world”就是應(yīng)該是所有學(xué)java的新手看的第一個代碼了。如果是零基礎(chǔ)的新手朋友們可以來我們的java實驗班試聽,有免費的試聽課程幫助學(xué)習(xí)java必備基礎(chǔ)知識,有助教老師為零基礎(chǔ)的人提供個人學(xué)習(xí)方案,學(xué)習(xí)完成后有考評團進行專業(yè)測試,幫助測評學(xué)員是否適合繼續(xù)學(xué)習(xí)java,15天內(nèi)免費幫助來報名體驗實驗班的新手快速入門java,更好的學(xué)習(xí)java!

求java中文分類實現(xiàn)過程代碼

前幾天讀到google研究員吳軍的數(shù)學(xué)之美系列篇,頗有感觸。而恰好自己前段時間做了個基于統(tǒng)計語言模型的中文切分系統(tǒng)的課程項目,于是乎,帖出來與大家共同學(xué)習(xí)。

分詞技術(shù)在搜索引擎,信息提取,機器翻譯等領(lǐng)域的重要地位與應(yīng)用就不敖述了。步入正題:)

!--[if !supportLists]--一、 !--[endif]--項目概述

本切分系統(tǒng)的統(tǒng)計語料是用我們學(xué)校自己開放的那部分,大家可以在 這里 下載,中文字符約184萬,當然這都是已切分好了的,可以用此建立一個比較小的語料庫。本系統(tǒng)我主要分下面四個步驟完成:

!--[if !supportLists]--1、 !--[endif]--語料預(yù)處理

!--[if !supportLists]--2、 !--[endif]--建立 2-gram(統(tǒng)計二元模型)

!--[if !supportLists]--3、 !--[endif]--實現(xiàn)全切分

!--[if !supportLists]--4、 !--[endif]--評估測試

下面我分別對這四個方面一一道來。

!--[if !supportLists]--1、 !--[endif]--語料預(yù)處理

下載的已切分的語料都是形如“19980131-04-012-001/m 現(xiàn)實/n 的/u 頓悟/vn 卻/d 被/p 描/v 出/v 形/Ng 來/v 。/w ” ,有的前面還保留了日期編號,因為這些切分語料的來源是人民日報。預(yù)處理主要是按標點符號分句,句子簡單定義為( 。?! : ;)這五種標點符號結(jié)尾的詞串,句子首尾分別添加BOS和EOS這兩個表示句子開始和結(jié)束的標記,這在2-gram建模時要用的,后面會提到。處理過程中,忽略詞類信息和前面的日期信息,因為我這個切分系統(tǒng)不考慮詞類標注。如前面這句預(yù)處理后應(yīng)該為下面形式 “BOS現(xiàn)實 的 頓悟 卻 被 描 出 形 來 。EOS” ,當然切分詞之間你可以用你想用的符號標記,而不必是空格。因為考慮到所有的英文字符和數(shù)字的ASCII,我用了下面方法實現(xiàn)之:

out ; //輸出流

in; //輸入流

StringBuffer s1 = new StringBuffer(); //緩沖

char a = in.read();

while (a != -1) //判斷是否已到流的終點

{

if ((a == '。' || a == '?' || a == '!' || a == ':' || a == ';' )) //一句結(jié)束

{

String s2 = new String(s1);

out.write("BOS"); //在句子前加 BOS

out.write(s2);

out.write("EOS"); //在句子末尾加 EOS

out.write('/n'); //換行

s1 = new StringBuffer();

}

else if ( a == '/')

s1 = s1.append((char)32); //分詞位置空格

else if (a 256 )

s1 = s1.append((char)a);

a = in.read();

}

out.close();

in.close();

!--[if !supportLists]--2、 !--[endif]--建立 2-gram模型(統(tǒng)計二元模型)

在這里首先簡單介紹一下n-gram模型和2-gram模型。

根據(jù)語言樣本估計出的概率分布P就稱為語言L的語言模型。對給定的句子s = w1w2…wn,(數(shù)字,n,i都為下標,wi為句子s的一個詞)。由鏈式規(guī)則(Chain rule),P(s) = p(w1)p(w2|w1)p(w3|w1w2)……p(wn|w1w2w3…w(n-1)) , 對p(wi|w1w2…w(i-1))而言,(w1w2…w(i-1))即為wi的歷史。考慮前面n-1個詞構(gòu)成歷史的模型即為n-gram模型。 n越大,提供的語境信息也越多,但代價就越大,且需訓(xùn)練語料多;n較小時,提供的信息比較少,但計算代價小,且無需太多訓(xùn)練語料。

令c(w1,…,wi)表示詞串w1,w2…wi在訓(xùn)練語料中出現(xiàn)的次數(shù),則由最大似然估計, P(wn|w1,…,w(n-1)) = c(w1,…,wn) / c(w1,…,w(n-1)). 同理,則2-gram為 P(wn|w(n-1)) = c(w(n-1),wn) / c(w(n-1)).

若想了解更多相關(guān)知識,大家找相關(guān)資料看看,隨便把大學(xué)時的那本概率與統(tǒng)計課本拿出來翻翻,數(shù)學(xué)真是一個好東東:)

回歸項目:) 訓(xùn)練語料一共有5萬多個不同的詞。建立2-gram統(tǒng)計模型時不斷要把每個詞在訓(xùn)練語料中出現(xiàn)頻率統(tǒng)計出來,還要把每個詞及其后面的那個詞組成的2-gram在訓(xùn)練語料中出現(xiàn)頻率統(tǒng)計出來。因為在切分時會頻繁的在建立的2-gram模型中查找相關(guān)的數(shù)據(jù),所有,存儲這個2-gram模型數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu)一定要能提供高效的查找。故選擇hash表,它能提供常數(shù)時間的查找。Java類庫里提供了HashMap類,基于數(shù)據(jù)兩還不是非常大,故可直接拿來用。在存儲時,每一個key值對應(yīng)一個在訓(xùn)練語料中出現(xiàn)過的詞語,而每一個key值對應(yīng)的value值又是一個HashMap。暫且稱為子hashmap.這個結(jié)構(gòu)有點類似文件結(jié)構(gòu)里的二級索引。 其相關(guān)代碼如下:

怎么在預(yù)處理文件里把詞分別讀出來就不羅嗦了,方法:每讀入一行,按空格分成String數(shù)組,用個正則表達式匹配下即能得到。

//此方法傳入的兩個詞組成一個2-gram,prewd為前一個詞,currwd為緊隨其后的詞

public static void add(String prewd , String currwd){

String key = prewd;

String curr = currwd;

boolean bb = HMap.containsKey(key); //Hmap是一個已存在的HashMap,用來存儲2-gram統(tǒng)計模型。在這里判斷 preword 是否在 主map 中

if (bb == false) { //若 主map 中無,則添加

HashMap hm = new HashMap(); //首先,新構(gòu)造一個 子MAP

hm.put(key , new Integer(1)); //存儲 主KEY 的頻率 hm.put(curr , new Integer(1)); //存儲 主KEY 后面緊接著的那個詞頻率

HMap.put(key,hm); //將 主KEY 和對應(yīng)的 子MAP 放入 主MAP 中

}

else //若 主map 中含有該詞

{

HashMap temp = (HashMap)HMap.get(key); //返回 主KEY 所對應(yīng)的 子MAP ,進行值的修改

int count = ((Integer)temp.get(key)).intValue() + 1; //在 子map 中將 主key 次數(shù)加 1

temp.put(key , new Integer(count));

if (temp.containsKey(curr)) //判斷 子map 中是否含有該詞

{

int value = ((Integer)temp.get(curr)).intValue() + 1; temp.put(curr , new Integer(value));

}

else

temp.put(curr, new Integer(1)); //若無,則將其存入子map

HMap.put(key , temp); //子map 修改完畢 ,將其重新放入 主map

}

}

}

因為語言中的大部分詞屬于低頻詞,所以稀疏問題肯定存在。而MLE(最大似然估計)給在訓(xùn)練語料中沒有出現(xiàn)的2-gram的賦給0概率。所以還得對2-gram模型進行數(shù)據(jù)平滑,以期得到更好的參數(shù)。目前平滑技術(shù)比較多,如Add-one,Add-delta,Witten-Bell,held-out留存平滑等。本系統(tǒng)主要采用了Add-delta和held-out兩中平滑方式,下面就Add-delta平滑技術(shù)為例,對2-gram進行平滑。對2-gram模型,其平滑公式為:

P(wn|w(n-1)) = [c(w(n-1),wn) + delta ] / ( N + delta * V) ,這里去delta為0.5

其中,N:訓(xùn)練語料中所有的2-gram的數(shù)量

V:所有的可能的不同的2-gram的數(shù)量

平滑思路 :1.產(chǎn)生主hashmap的迭代器iterator,依次讀key;

2.對每一個key,又讀出其value,即一個子hashmap;

3.然后根據(jù)平滑公式對子map里的值進行計算修改

算法框架:

Iterator it = 主hashmap.keySet().iterator();

While(it.hasNext())

{

主key = it.next();

子hashmap = (HashMap)主hashmap.get(主key);

Iterator itr = 子hashmap.keySet().iterator();

While(itr.hasNext())

{

根據(jù)平滑公式依次計算修改

}

}

注意問題:1.因為計算得出的概率值一般都比較小,為了防止出現(xiàn)下溢,可對其取對數(shù),再取反。

2.每一個主key所對應(yīng)的所有沒有出現(xiàn)過的,即頻率為零的2-gram,統(tǒng)一用一個鍵值對存儲在相應(yīng)的子hashmap里即可。

完畢,對象序列化。使用該系統(tǒng)時,lazy load將其載入內(nèi)存,然后可讓其一直存活在內(nèi)存,這會大大加快速度。

到此,2-gram模型建立完畢。

!--[if !supportLists]-- 3、 !--[endif]--全切分實現(xiàn)

切詞一般有最大匹配法(MM、RMM),基于規(guī)則的方法,基于統(tǒng)計的方法。關(guān)于前兩者就不羅嗦了。所謂全切分就是要根據(jù)字典得到所以可能的切分形式。歧義識別的方法主要有:基于規(guī)則的方法和基于統(tǒng)計的方法。這里當然是采用基于2-gram統(tǒng)計模型的方法了:)為了避免切分后再進行歧義分析的時間浪費。并且這里采用邊切分邊評價的方法,即在切分進行的同時進行評價的方法。

對一個句子進行全切分的結(jié)果,即所以可能的組合,可以形成一棵解空間樹

于是,可用回溯法搜索最優(yōu)解

若將所有的全切分組合先搜索出來,然后再根據(jù)2-gram選擇最佳,顯然會很浪費時間,因為過程中可能存在很多的重復(fù)搜索,而回溯搜索的時間復(fù)雜度為指數(shù)時間

所以,在搜索過程中要結(jié)合 剪枝,避免無效搜索,可很大提高效率

采用樹的深度優(yōu)先法則。可找到最優(yōu)解

具體算法如下:

Stack.push(BOS) //樹節(jié)點

while stack不為空

x=stack.pop()

pos:=x.Pos, w = x.w oldvalue:= x.value preword:=x.preword

if mO then //m為首詞串的個數(shù)

forj:=1 to m do

FWj為fwc的第j個元素l

if length(w+FWj) =length(c)且概率最大 then output w+FWjl且設(shè)置最新的句子最大概率值

else

posl:=pos+length(FWj)l

if probability(w+FWj,posl,newsate)maxValue(pos1)

stack.push(x)

endif

endfor

endif

endwhile

end.

在算法實現(xiàn)過程中需要考慮一些諸如樹節(jié)點保存,首詞串處理等問題。

4.評估測試

環(huán)境:windows XP2, AMD Athlon 1800+, Memory 768m,JDK1.5

Delta平滑:隨著delta的取值變小,準確率上升,0.5,0.01,0.0001

召回率: 0.9756 0.9826 0.9928

準確率: 0.9638 0.9710 0.9883

留存平滑

召回率: 0.9946

準確率: 0.9902

一般情況下,留存平滑應(yīng)該還是比delta平滑更好

所有建模過程及平滑過程在1分鐘內(nèi)都可完成。

切分時間與效率:

!--[if !supportLists]--n !--[endif]--測試語料,17455字符, (中文17287),平均句長 41個字,時間 :340ms, 平均切分速度:5.1 萬/S

!--[if !supportLists]--n !--[endif]--20.5萬測試語料(取自笑傲江湖), 預(yù)處理后 17.46萬 ,時間 110 MS,句子文本行數(shù)目 24945,平均句長 7 , 切分時間 1300MS , 平均13.46 萬 / 秒

!--[if !supportLists]--n !--[endif]--20.5萬測試語料(取自笑傲江湖),不預(yù)處理,平均句長 239 ,切分時間40S, 平均 5000字/秒

回溯算法是時間開銷為O(N!),所以在切分過程中句子長度直接決定了切分的速度,因為句子越長詞越多

經(jīng)過預(yù)處理,句子短,平均句長 7, 回溯短,故速度要快很多。

到此,該系統(tǒng)基本完成,告一段落。感覺寫的挺亂的呵呵

現(xiàn)在在做另一個作業(yè),做個簡單搜索引擎,準備把這個東東結(jié)合在搜索引擎里面,實現(xiàn)切分功能:)

簡單JAVA代碼

輸出錯了!!!

第一個類的構(gòu)造方法,請看

public tt(int b) {

b=x;

}

請問,你new出來tt這個類了,x有值了吧?

也就是說你在這里把x賦給了b,但是在第二個方法又無法用到b,也就是說,這個方法毫無用處

請將 b 和x的位置換換,同時,x為成員變量,不需要初始化給值的,是靠你傳參數(shù)的。

第二,請看

public int cc(int b) {

b=x*2;

return b;

}

你可以完全把這個方法里的傳參去掉,應(yīng)為你的x是成員變量,改為

public int cc() {

return x*2;

}

然后在另外一個類里new出來tt,請看,我?guī)湍阈薷牧?/p>

Scanner a =new Scanner(System.in);

int b = a.nextInt();

tt cd =new tt(b);

int sd= cd.cc();

System.out.println(sb);

其實還可以改,

Scanner a =new Scanner(System.in);

tt cd =new tt(a.nextInt());

System.out.println(cd.cc());

Java語言編寫代碼

代碼如下

/**

*?Author:?zhyx

*?Date:2017/11/30

*?Time:8:56

*/

public?abstract?class?Contailner?{

double?r;

abstract?double?volume();

}

/**

*?Author:?zhyx

*?Date:2017/11/30

*?Time:8:57

*/

public?class?Cube?extends?Contailner?{

public?Cube(double?r)?{

this.r=r;

}

@Override

double?volume()?{

return?r*r*r;

}

}

/**

*?Author:?zhyx

*?Date:2017/11/30

*?Time:9:01

*/

public?class?Sphere?extends?Contailner?{

public?Sphere(double?r)?{

this.r=r;

}

@Override

double?volume()?{

return?4/3*Math.PI*r*r*r;

}

}

/**

*?Author:?zhyx

*?Date:2017/11/30

*?Time:9:02

*/

public?class?Tiji?{

public?static?void?main(String[]?args)?{

Cube?cube=new?Cube(4);

System.out.println("立方體體積為:"+cube.volume());

Sphere?sphere=?new?Sphere(4);

System.out.println("球體體積為:"+sphere.volume());

}

}

當前文章:java中文代碼大全,java常用代碼
URL分享:http://chinadenli.net/article47/dsecdej.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站改版網(wǎng)站導(dǎo)航外貿(mào)建站網(wǎng)站建設(shè)ChatGPT商城網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

h5響應(yīng)式網(wǎng)站建設(shè)