現(xiàn)在是有奇趣代理。盛大賣給奇趣了。還可以玩。就是人不多
全稱“上海盛大網(wǎng)絡(luò)發(fā)展有限公司”
盛大集團(tuán)是全球最大的私人投資控股集團(tuán)之一。盛大于1999年,由我們的董事長兼首席執(zhí)行官陳天橋先生及其他家人在中國上海創(chuàng)立目前在上海,北京,香港,新加坡和美國硅谷都設(shè)有辦公室。旗下有多家公司:盛大游戲,盛大在線,盛大文學(xué)等
你看你是賬號不對還是你要密碼不對,不行就直接找客服
恭喜我們的船,楊帆啟航,盛大起航
個人加入盛大做得時間不長,但是去了盛大不少地方,去的時候盛大游戲是行業(yè)第一,走的時候盛大游戲行業(yè)第四,也算是見證了由盛轉(zhuǎn)衰的過程,簡單說點個人意見,僅供參考,謝絕轉(zhuǎn)載。
1. 領(lǐng)導(dǎo)力。大家都說橋哥獨裁是大問題,其實個人覺得獨裁不算大問題,盛大初期也獨裁,依然牛X,投機(jī)的話當(dāng)不了行業(yè)老大那么多年。大問題是你獨裁就獨裁,但是到了后期卻只顧空談,養(yǎng)了一幫子奴才。橋哥應(yīng)該創(chuàng)業(yè)時期還是很給力的,戰(zhàn)略也到位,但是那個時候公司小,自己精力好,所以公司還行,但是隨著公司大了,橋哥結(jié)果居然身體還不好了,這個就糟糕了,而更糟糕的是皇上身邊居然缺乏信任的人。創(chuàng)始人團(tuán)隊里,和自己的弟弟之間幾乎形同陌路,各玩各的,譚、張不得信任,現(xiàn)在都已經(jīng)離開,譚走的時候居然還點評為“有功有過”,這早就說明撕破臉皮了。而所謂的奴才,關(guān)注盛大新聞的因為很多人都看過,內(nèi)部某某稱“我不懂業(yè)務(wù),但我懂橋哥",這話MS古時候都屬于那些稱奴才的人說的吧,關(guān)鍵是這話的奴才居然在有新聞后依然混得風(fēng)生水起,公司內(nèi)更有被底下人戲稱為”東廠“的組織,在此就不點名了。懂業(yè)務(wù)的很多郁郁不得志,大批業(yè)內(nèi)有真才實學(xué)的,來了最后都走了。官僚主義的管理風(fēng)格,加上皇上被奸佞迷惑,那就沒得玩了。“空談?wù)`國,實干興邦”
2. 走得太快,看得太遠(yuǎn),沒有著重點。所謂的盛大勝在彎道超車,這動作本來交通規(guī)則里就是危險動作,你玩一次就算了,你多玩幾次,即便是超跑也得撞上吧,你當(dāng)這是美國大片還是跑跑卡丁車呢,各種甩尾。當(dāng)了游戲行業(yè)老大那么多年,其實盛大游戲有多苦逼可能很多人都不知道,完全就是一頭牛,吃的是草,擠得是奶,奶被其他孩子喝了,自己卻越來越消瘦了??纯淳W(wǎng)易、看看騰訊,游戲賺的錢就繼續(xù)投入到游戲,現(xiàn)在兩家的游戲收入都占全公司50%以上,對游戲也很看重,而SD都拿去投了無數(shù)公司,結(jié)果除了盛大文學(xué)還行,其他都打了水漂。錢都花完了,自己缺乏投入,那就無能為力了。
3. 缺乏創(chuàng)新,或者說不看重創(chuàng)新。應(yīng)該是大年作為GEEK還是算是看創(chuàng)新的,可惜志不在游戲,開了個創(chuàng)新院自己去玩。而游戲呢,當(dāng)了游戲老大那么多年,居然缺乏一支真正行業(yè)頂尖的開發(fā)團(tuán)隊,這是不可想象的!看看現(xiàn)在前三,網(wǎng)易、搜狐龍頭產(chǎn)品都是自我創(chuàng)新的,當(dāng)年的完美研發(fā)能力也極強(qiáng),騰訊雖然DNF、CF貢獻(xiàn)能力強(qiáng),但是人家也研發(fā)了很多產(chǎn)品啊,雖然不少也失敗了,但是總體來說還是有精品拿出的。不要說盛大的傳奇世界也是自研,傳奇這類游戲只能說是現(xiàn)象級游戲,你沒法復(fù)制的。而盛大其他自研游戲無一生還,當(dāng)時的英雄年代團(tuán)隊被史玉柱整個挖走,側(cè)面也反映了盛大對研發(fā)的不看重。星辰變、零世界都是雷聲大、雨點小,品質(zhì)如何,大家玩玩就知道了。盛大運營一流,研發(fā)個人覺得不說三流,但肯定在業(yè)內(nèi)排不進(jìn)前五。
4. 研發(fā)不行,你代理好也總行吧。我們說代理,只能說,做了多年老大,自己也驕傲了,覺得我代理你的游戲是看得起你。魔獸、DNF基本都是研發(fā)公司先找盛大,盛大不是給不起錢,但是就是不愿意給,結(jié)果一個成就了九城(現(xiàn)在當(dāng)然是網(wǎng)易傍上了暴雪大腿),一個成就了騰訊。韓國NCSOFT當(dāng)年和盛大幾乎穿一條褲子,還是戰(zhàn)略合作伙伴,結(jié)果AION被盛大搞殘搞廢了,還發(fā)生了很多不愉快的事情,總之就是把NCSOFT惹火了,至此再也不給盛大代理權(quán)了,劍靈、天堂、上古世紀(jì)等等優(yōu)秀IP全給了騰訊,人家不跟你玩了。我能說據(jù)說當(dāng)年跑跑卡丁車也差點是盛大的么。想想看,這些游戲如果全部還在盛大手上,研發(fā)不行,盛大老大應(yīng)該還是沒啥大問題吧。
5. 人才。盛大其實待遇還是在業(yè)內(nèi)不錯的,但是晉升機(jī)制等還是有問題,不過這個感覺是行業(yè)通病,不過Jack Ma還是說得好,人走主要為啥,“錢拿少了,心受傷了”。
6. 其他雜七雜八說一下,發(fā)現(xiàn)一個好玩的地方,橋哥很多戰(zhàn)略其實并不算失敗,只因為別人后來都用同樣的戰(zhàn)略勝利了,難道這就是傳說中的“別人家的“.....當(dāng)年盒子失敗了,結(jié)果看看現(xiàn)在,蘋果有盒子,谷歌有類似盒子的產(chǎn)品,小米盒子,樂視盒子,滿眼望去都是盒子,而橋哥比喬布斯還要早好幾年推出盒子??!再看網(wǎng)上迪斯尼,看起來騰訊好像距離這個夢想更近了!
之前有個帖子,好像叫你為什么離開盛大,那里面也講了很多。其實一個公司興衰常有,只是看著自己曾經(jīng)一直仰慕的一家公司就這么衰落,也是自己的老東家,還是挺難過的。盛大文學(xué)、盛大游戲都再也不屬于盛大,且行且珍惜吧。
==================
補充一個,個人一個感覺,橋哥從始至終其實就看!不!起!做游戲的。他幾乎從始至終也沒有把游戲當(dāng)做一回事,當(dāng)年的游戲成功只是因為看起來游戲還可以賺錢。游戲就像是他的私生子,無論孩子怎么優(yōu)秀,當(dāng)?shù)亩伎床黄鹚?,在他眼中,就是一個賺錢工具,毫無感情!我感覺他一直都想賣掉它,只是一直沒找到一個能夠替代它的對象罷了,現(xiàn)在看著游戲也不行了,干脆賣了算了,盛大文學(xué)始終難以IPO,所以索性也賣了。這又讓我想起,為啥王全安有一個如花似玉的張雨綺當(dāng)老婆,卻還要去嫖娼,這我始終想不明白啊,橋哥為啥就讓我感覺他看不起那么牛X的盛大游戲呢,奇怪啊。
6月13日更新===============
第一次被邀請知乎回答,還第一次點贊過百,讓我受寵若驚,看到評論的,做一些能夠說出來的解釋
1. 對于AION的問題。這個我本人沒有直接進(jìn)入該工作室,所以有的信息也是從其他方面間接知道。這個游戲確實優(yōu)秀,畫面到玩法等都很符合中國玩家。但是為什么在被盛大做殘了后還能和NCSOFT續(xù)約,我只能說對不起這個事不能說,邏輯鏈很長很復(fù)雜,總之就是盛大驕傲過頭。
2. 很多人說外掛那么多,運營還能好?外掛問題真!的!不!是!運營能夠解決的?。。∥乙埠苡憛捦鈷?,我做過的游戲也碰到外掛,但是這個一般涉及到開發(fā)程序的問題,盛大內(nèi)部為了抓外掛做了很大努力,很多工作組通宵加班,但是因為這是代理的游戲,所以棒子們不修程序,或者根本就修不好,你讓我怎么運營?我們只有封號,但是有時候也抓不完啊,免費的游戲,封了重新建個小號就行,或者干脆只用小號玩外掛,怎么抓?
3. 至于我說盛大運營一流,這個應(yīng)該業(yè)界還是承認(rèn)的吧。盛大內(nèi)部一直說,研發(fā)不足運營補,就是靠運營去延長游戲壽命。蝸牛把九陰和黑金這兩款制作很好的游戲給盛大運營,也說明了盛大運營能力吧。
4. 至于說運營好為啥盛大還衰落了,我只有呵呵了。高收入指標(biāo)、壓榨用戶、短期投機(jī)、外行指導(dǎo)內(nèi)行等等也都是有發(fā)生的,運營真的不是神。都說企鵝運營好,我認(rèn)識很多企鵝過來的人,以前在企鵝運營過很優(yōu)秀的游戲,來了盛大也沒法了,這個就是我之前說的比如領(lǐng)導(dǎo)力的問題,看很多人都說盛大投機(jī),這個在后期確實也是有的。短期砸一筆市場費,如果不出成績,馬上投入另外一個游戲,基本這個游戲就廢了,用戶基礎(chǔ)怎么來?保持高收入和高活躍很多時候是個相悖的目標(biāo),拉收入狠了,必然導(dǎo)致很多玩家流失。打一棒子也得給顆紅棗嘛。說實話,我離開盛大有一部分原因也就是因為這種不理性的高層投機(jī)指導(dǎo),看不下去了,我又人微言輕,只有自己走人了。
5. 還有一位兄弟的評論根據(jù)我的理解,好像是說運營好就能有好的代理吧?這個好像沒有邏輯聯(lián)系啊。運營好是好,但是問題是你是跟人家去做商務(wù)談判的啊。暴雪這種國際大鱷面前你還裝X,暴雪能開心?暴雪出品,必然精品,盛大不愿意跟你出這錢,朱老板愿意出,當(dāng)然給朱老板了。記得一個朋友曾經(jīng)說,盛大最早和別人談合作是自己躺著談,后來不行了就坐著談,再后來現(xiàn)在只有站著談了。
我也不是來詆毀盛大的,畢竟是自己待過的公司,還是很有感情的,盛大依然有著領(lǐng)先全行業(yè)的很多東西,優(yōu)秀的運營,完備的組織架構(gòu)體系和人才梯隊,渠道關(guān)系和盛大的體量等等也依然有崛起的資本。只是如果不痛定思痛,重新出發(fā),確實我個人是很難看到他的未來?,F(xiàn)在游戲已經(jīng)賣給財團(tuán)了,沒有來自集團(tuán)的高壓,減少了一些審批,希望能夠看到游戲的重新出發(fā),也祝福盛大游戲,祝福這個曾經(jīng)戰(zhàn)斗過的地方。
你要投訴客服? 如果是文字客服就你電話投訴 如果是語音客服你就文字投訴 他們不是一條杠上的 。
但是你是因為他不幫你解決 就是可能你罵了他 他們這些都有截圖或者錄音的 最好小心舉報之前看了Mahout官方示例 20news 的調(diào)用實現(xiàn);于是想根據(jù)示例的流程實現(xiàn)其他例子。網(wǎng)上看到了一個關(guān)于天氣適不適合打羽毛球的例子。
訓(xùn)練數(shù)據(jù):
Day Outlook Temperature Humidity Wind PlayTennis
D1 Sunny Hot High Weak No
D2 Sunny Hot High Strong No
D3 Overcast Hot High Weak Yes
D4 Rain Mild High Weak Yes
D5 Rain Cool Normal Weak Yes
D6 Rain Cool Normal Strong No
D7 Overcast Cool Normal Strong Yes
D8 Sunny Mild High Weak No
D9 Sunny Cool Normal Weak Yes
D10 Rain Mild Normal Weak Yes
D11 Sunny Mild Normal Strong Yes
D12 Overcast Mild High Strong Yes
D13 Overcast Hot Normal Weak Yes
D14 Rain Mild High Strong No
檢測數(shù)據(jù):
sunny,hot,high,weak
結(jié)果:
Yes=》 0.007039
No=》 0.027418
于是使用Java代碼調(diào)用Mahout的工具類實現(xiàn)分類。
基本思想:
1. 構(gòu)造分類數(shù)據(jù)。
2. 使用Mahout工具類進(jìn)行訓(xùn)練,得到訓(xùn)練模型。
3。將要檢測數(shù)據(jù)轉(zhuǎn)換成vector數(shù)據(jù)。
4. 分類器對vector數(shù)據(jù)進(jìn)行分類。
接下來貼下我的代碼實現(xiàn)=》
1. 構(gòu)造分類數(shù)據(jù):
在hdfs主要創(chuàng)建一個文件夾路徑 /zhoujainfeng/playtennis/input 并將分類文件夾 no 和 yes 的數(shù)據(jù)傳到hdfs上面。
數(shù)據(jù)文件格式,如D1文件內(nèi)容: Sunny Hot High Weak
2. 使用Mahout工具類進(jìn)行訓(xùn)練,得到訓(xùn)練模型。
3。將要檢測數(shù)據(jù)轉(zhuǎn)換成vector數(shù)據(jù)。
4. 分類器對vector數(shù)據(jù)進(jìn)行分類。
這三步,代碼我就一次全貼出來;主要是兩個類 PlayTennis1 和 BayesCheckData = =》
package myTesting.bayes;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.util.ToolRunner;
import org.apache.mahout.classifier.naivebayes.training.TrainNaiveBayesJob;
import org.apache.mahout.text.SequenceFilesFromDirectory;
import org.apache.mahout.vectorizer.SparseVectorsFromSequenceFiles;
public class PlayTennis1 {
private static final String WORK_DIR = "hdfs://192.168.9.72:9000/zhoujianfeng/playtennis";
/*
* 測試代碼
*/
public static void main(String[] args) {
//將訓(xùn)練數(shù)據(jù)轉(zhuǎn)換成 vector數(shù)據(jù)
makeTrainVector();
//產(chǎn)生訓(xùn)練模型
makeModel(false);
//測試檢測數(shù)據(jù)
BayesCheckData.printResult();
}
public static void makeCheckVector(){
//將測試數(shù)據(jù)轉(zhuǎn)換成序列化文件
try {
Configuration conf = new Configuration();
conf.addResource(new Path("/usr/local/hadoop/conf/core-site.xml"));
String input = WORK_DIR+Path.SEPARATOR+"testinput";
String output = WORK_DIR+Path.SEPARATOR+"tennis-test-seq";
Path in = new Path(input);
Path out = new Path(output);
FileSystem fs = FileSystem.get(conf);
if(fs.exists(in)){
if(fs.exists(out)){
//boolean參數(shù)是,是否遞歸刪除的意思
fs.delete(out, true);
}
SequenceFilesFromDirectory sffd = new SequenceFilesFromDirectory();
String[] params = new String[]{"-i",input,"-o",output,"-ow"};
ToolRunner.run(sffd, params);
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
System.out.println("文件序列化失??!");
System.exit(1);
}
//將序列化文件轉(zhuǎn)換成向量文件
try {
Configuration conf = new Configuration();
conf.addResource(new Path("/usr/local/hadoop/conf/core-site.xml"));
String input = WORK_DIR+Path.SEPARATOR+"tennis-test-seq";
String output = WORK_DIR+Path.SEPARATOR+"tennis-test-vectors";
Path in = new Path(input);
Path out = new Path(output);
FileSystem fs = FileSystem.get(conf);
if(fs.exists(in)){
if(fs.exists(out)){
//boolean參數(shù)是,是否遞歸刪除的意思
fs.delete(out, true);
}
SparseVectorsFromSequenceFiles svfsf = new SparseVectorsFromSequenceFiles();
String[] params = new String[]{"-i",input,"-o",output,"-lnorm","-nv","-wt","tfidf"};
ToolRunner.run(svfsf, params);
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
System.out.println("序列化文件轉(zhuǎn)換成向量失??!");
System.out.println(2);
}
}
public static void makeTrainVector(){
//將測試數(shù)據(jù)轉(zhuǎn)換成序列化文件
try {
Configuration conf = new Configuration();
conf.addResource(new Path("/usr/local/hadoop/conf/core-site.xml"));
String input = WORK_DIR+Path.SEPARATOR+"input";
String output = WORK_DIR+Path.SEPARATOR+"tennis-seq";
Path in = new Path(input);
Path out = new Path(output);
FileSystem fs = FileSystem.get(conf);
if(fs.exists(in)){
if(fs.exists(out)){
//boolean參數(shù)是,是否遞歸刪除的意思
fs.delete(out, true);
}
SequenceFilesFromDirectory sffd = new SequenceFilesFromDirectory();
String[] params = new String[]{"-i",input,"-o",output,"-ow"};
ToolRunner.run(sffd, params);
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
System.out.println("文件序列化失?。?#34;);
System.exit(1);
}
//將序列化文件轉(zhuǎn)換成向量文件
try {
Configuration conf = new Configuration();
conf.addResource(new Path("/usr/local/hadoop/conf/core-site.xml"));
String input = WORK_DIR+Path.SEPARATOR+"tennis-seq";
String output = WORK_DIR+Path.SEPARATOR+"tennis-vectors";
Path in = new Path(input);
Path out = new Path(output);
FileSystem fs = FileSystem.get(conf);
if(fs.exists(in)){
if(fs.exists(out)){
//boolean參數(shù)是,是否遞歸刪除的意思
fs.delete(out, true);
}
SparseVectorsFromSequenceFiles svfsf = new SparseVectorsFromSequenceFiles();
String[] params = new String[]{"-i",input,"-o",output,"-lnorm","-nv","-wt","tfidf"};
ToolRunner.run(svfsf, params);
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
System.out.println("序列化文件轉(zhuǎn)換成向量失敗!");
System.out.println(2);
}
}
public static void makeModel(boolean completelyNB){
try {
Configuration conf = new Configuration();
conf.addResource(new Path("/usr/local/hadoop/conf/core-site.xml"));
String input = WORK_DIR+Path.SEPARATOR+"tennis-vectors"+Path.SEPARATOR+"tfidf-vectors";
String model = WORK_DIR+Path.SEPARATOR+"model";
String labelindex = WORK_DIR+Path.SEPARATOR+"labelindex";
Path in = new Path(input);
Path out = new Path(model);
Path label = new Path(labelindex);
FileSystem fs = FileSystem.get(conf);
if(fs.exists(in)){
if(fs.exists(out)){
//boolean參數(shù)是,是否遞歸刪除的意思
fs.delete(out, true);
}
if(fs.exists(label)){
//boolean參數(shù)是,是否遞歸刪除的意思
fs.delete(label, true);
}
TrainNaiveBayesJob tnbj = new TrainNaiveBayesJob();
String[] params =null;
if(completelyNB){
params = new String[]{"-i",input,"-el","-o",model,"-li",labelindex,"-ow","-c"};
}else{
params = new String[]{"-i",input,"-el","-o",model,"-li",labelindex,"-ow"};
}
ToolRunner.run(tnbj, params);
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
System.out.println("生成訓(xùn)練模型失敗!");
System.exit(3);
}
}
}
package myTesting.bayes;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
import org.apache.commons.lang.StringUtils;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.fs.PathFilter;
import org.apache.hadoop.io.IntWritable;
import org.apache.hadoop.io.LongWritable;
import org.apache.hadoop.io.Text;
import org.apache.mahout.classifier.naivebayes.BayesUtils;
import org.apache.mahout.classifier.naivebayes.NaiveBayesModel;
import org.apache.mahout.classifier.naivebayes.StandardNaiveBayesClassifier;
import org.apache.mahout.common.Pair;
import org.apache.mahout.common.iterator.sequencefile.PathType;
import org.apache.mahout.common.iterator.sequencefile.SequenceFileDirIterable;
import org.apache.mahout.math.RandomAccessSparseVector;
import org.apache.mahout.math.Vector;
import org.apache.mahout.math.Vector.Element;
import org.apache.mahout.vectorizer.TFIDF;
import com.google.common.collect.ConcurrentHashMultiset;
import com.google.common.collect.Multiset;
public class BayesCheckData {
private static StandardNaiveBayesClassifier classifier;
private static Map<String, Integer> dictionary;
private static Map<Integer, Long> documentFrequency;
private static Map<Integer, String> labelIndex;
public void init(Configuration conf){
try {
String modelPath = "/zhoujianfeng/playtennis/model";
String dictionaryPath = "/zhoujianfeng/playtennis/tennis-vectors/dictionary.file-0";
String documentFrequencyPath = "/zhoujianfeng/playtennis/tennis-vectors/df-count";
String labelIndexPath = "/zhoujianfeng/playtennis/labelindex";
dictionary = readDictionnary(conf, new Path(dictionaryPath));
documentFrequency = readDocumentFrequency(conf, new Path(documentFrequencyPath));
labelIndex = BayesUtils.readLabelIndex(conf, new Path(labelIndexPath));
NaiveBayesModel model = NaiveBayesModel.materialize(new Path(modelPath), conf);
classifier = new StandardNaiveBayesClassifier(model);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
System.out.println("檢測數(shù)據(jù)構(gòu)造成vectors初始化時報錯。。。。");
System.exit(4);
}
}
/**
* 加載字典文件,Key: TermValue; Value:TermID
* @param conf
* @param dictionnaryDir
* @return
*/
private static Map<String, Integer> readDictionnary(Configuration conf, Path dictionnaryDir) {
Map<String, Integer> dictionnary = new HashMap<String, Integer>();
PathFilter filter = new PathFilter() {
@Override
public boolean accept(Path path) {
String name = path.getName();
return name.startsWith("dictionary.file");
}
};
for (Pair<Text, IntWritable> pair : new SequenceFileDirIterable<Text, IntWritable>(dictionnaryDir, PathType.LIST, filter, conf)) {
dictionnary.put(pair.getFirst().toString(), pair.getSecond().get());
}
return dictionnary;
}
/**
* 加載df-count目錄下TermDoc頻率文件,Key: TermID; Value:DocFreq
* @param conf
* @param dictionnaryDir
* @return
*/
private static Map<Integer, Long> readDocumentFrequency(Configuration conf, Path documentFrequencyDir) {
Map<Integer, Long> documentFrequency = new HashMap<Integer, Long>();
PathFilter filter = new PathFilter() {
@Override
public boolean accept(Path path) {
return path.getName().startsWith("part-r");
}
};
for (Pair<IntWritable, LongWritable> pair : new SequenceFileDirIterable<IntWritable, LongWritable>(documentFrequencyDir, PathType.LIST, filter, conf)) {
documentFrequency.put(pair.getFirst().get(), pair.getSecond().get());
}
return documentFrequency;
}
public static String getCheckResult(){
Configuration conf = new Configuration();
conf.addResource(new Path("/usr/local/hadoop/conf/core-site.xml"));
String classify = "NaN";
BayesCheckData cdv = new BayesCheckData();
cdv.init(conf);
System.out.println("init done...............");
Vector vector = new RandomAccessSparseVector(10000);
TFIDF tfidf = new TFIDF();
//sunny,hot,high,weak
Multiset<String> words = ConcurrentHashMultiset.create();
words.add("sunny",1);
words.add("hot",1);
words.add("high",1);
words.add("weak",1);
int documentCount = documentFrequency.get(-1).intValue(); // key=-1時表示總文檔數(shù)
for (Multiset.Entry<String> entry : words.entrySet()) {
String word = entry.getElement();
int count = entry.getCount();
Integer wordId = dictionary.get(word); // 需要從dictionary.file-0文件(tf-vector)下得到wordID,
if (StringUtils.isEmpty(wordId.toString())){
continue;
}
if (documentFrequency.get(wordId) == null){
continue;
}
Long freq = documentFrequency.get(wordId);
double tfIdfValue = tfidf.calculate(count, freq.intValue(), 1, documentCount);
vector.setQuick(wordId, tfIdfValue);
}
// 利用貝葉斯算法開始分類,并提取得分最好的分類label
Vector resultVector = classifier.classifyFull(vector);
double bestScore = -Double.MAX_VALUE;
int bestCategoryId = -1;
for(Element element: resultVector.all()) {
int categoryId = element.index();
double score = element.get();
System.out.println("categoryId:"+categoryId+" score:"+score);
if (score > bestScore) {
bestScore = score;
bestCategoryId = categoryId;
}
}
classify = labelIndex.get(bestCategoryId)+"(categoryId="+bestCategoryId+")";
return classify;
}
public static void printResult(){
System.out.println("檢測所屬類別是:"+getCheckResult());
}
}
1. 請介紹一下WebGIS的概念和作用,以及在實際應(yīng)用中的優(yōu)勢和挑戰(zhàn)。
WebGIS是一種基于Web技術(shù)的地理信息系統(tǒng),通過將地理數(shù)據(jù)和功能以可視化的方式呈現(xiàn)在Web瀏覽器中,實現(xiàn)地理空間數(shù)據(jù)的共享和分析。它可以用于地圖瀏覽、空間查詢、地理分析等多種應(yīng)用場景。WebGIS的優(yōu)勢包括易于訪問、跨平臺、實時更新、可定制性強(qiáng)等,但也面臨著數(shù)據(jù)安全性、性能優(yōu)化、用戶體驗等挑戰(zhàn)。
2. 請談?wù)勀赪ebGIS開發(fā)方面的經(jīng)驗和技能。
我在WebGIS開發(fā)方面有豐富的經(jīng)驗和技能。我熟悉常用的WebGIS開發(fā)框架和工具,如ArcGIS API for JavaScript、Leaflet、OpenLayers等。我能夠使用HTML、CSS和JavaScript等前端技術(shù)進(jìn)行地圖展示和交互設(shè)計,并能夠使用后端技術(shù)如Python、Java等進(jìn)行地理數(shù)據(jù)處理和分析。我還具備數(shù)據(jù)庫管理和地理空間數(shù)據(jù)建模的能力,能夠設(shè)計和優(yōu)化WebGIS系統(tǒng)的架構(gòu)。
3. 請描述一下您在以往項目中使用WebGIS解決的具體問題和取得的成果。
在以往的項目中,我使用WebGIS解決了許多具體問題并取得了顯著的成果。例如,在一次城市規(guī)劃項目中,我開發(fā)了一個基于WebGIS的交通流量分析系統(tǒng),幫助規(guī)劃師們評估不同交通方案的效果。另外,在一次環(huán)境監(jiān)測項目中,我使用WebGIS技術(shù)實現(xiàn)了實時的空氣質(zhì)量監(jiān)測和預(yù)警系統(tǒng),提供了準(zhǔn)確的空氣質(zhì)量數(shù)據(jù)和可視化的分析結(jié)果,幫助政府和公眾做出相應(yīng)的決策。
4. 請談?wù)勀鷮ebGIS未來發(fā)展的看法和期望。
我認(rèn)為WebGIS在未來會繼續(xù)發(fā)展壯大。隨著云計算、大數(shù)據(jù)和人工智能等技術(shù)的不斷進(jìn)步,WebGIS將能夠處理更大規(guī)模的地理數(shù)據(jù)、提供更豐富的地理分析功能,并與其他領(lǐng)域的技術(shù)進(jìn)行深度融合。我期望未來的WebGIS能夠更加智能化、個性化,為用戶提供更好的地理信息服務(wù),助力各行各業(yè)的決策和發(fā)展。
這塊您需要了解下stm32等單片機(jī)的基本編程和簡單的硬件設(shè)計,最好能夠了解模電和數(shù)電相關(guān)的知識更好,還有能夠會做操作系統(tǒng),簡單的有ucos,freeRTOS等等。最好能夠使用PCB畫圖軟件以及keil4等軟件。希望對您能夠有用。
1.負(fù)責(zé)區(qū)域大客戶/行業(yè)客戶管理系統(tǒng)銷售拓展工作,并完成銷售流程;
2.維護(hù)關(guān)鍵客戶關(guān)系,與客戶決策者保持良好的溝通;
3.管理并帶領(lǐng)團(tuán)隊完成完成年度銷售任務(wù)。