holding 釋義:
1、用作名詞的意思:n.股份;私有財(cái)產(chǎn);(博物館、圖書館等的)館藏;租種的土地
2、用作動(dòng)詞的意思:v.拿著;抓住;抱住;托住;捂住,按住(受傷的身體部位等);使保持(在某位置)
3、holding是動(dòng)詞hold的現(xiàn)在分詞形式.
4、holding讀音:英 ['h??ld??] 美 ['ho?ld??]
5、詞匯搭配:(1)holding company 控、公司(2)holding time 占用時(shí)間(3)holding pond 存貯池
6.雙語例句:She has a 40% holding in the company.她持有公司 40%25 的股份。
舉辦
n.股份;私有財(cái)產(chǎn);(博物館、圖書館等的)館藏;租種的土地
v.拿著;抓住;抱住;托住;捂住,按住(受傷的身體部位等);使保持(在某位置)
hold的現(xiàn)在分詞
holding是名詞,動(dòng)詞詞性
n.
股份;私有財(cái)產(chǎn);(博物館、圖書館等的)館藏;租種的土地;
v.
拿著;抓住;抱住;托住;捂住,按住(受傷的身體部位等);使保持(在某位置);
詞典
hold的現(xiàn)在分詞;
例句
Gucci will be holding fashion shows to present their autumn collection
古奇將舉辦時(shí)裝發(fā)布會(huì)推出他們的秋裝系列。
變形
原型hold復(fù)數(shù)holdings
Holding back the tears ---By東方神起 變得模糊花白的圖畫 和完全被抹掉的我的香氣 在耀眼的云彩中被遮掉了... 什么話都沒有的我的心 慢慢地轉(zhuǎn)移了 手上只有從那之間逝去的時(shí)間 I'm holding back the tears 輕松地帶著我的心走著 在不近不遠(yuǎn)的地方 會(huì)有另一個(gè)我站著 我不哭了 又一次合上兩只手 在某個(gè)不一樣的地方 不是回憶 而是生活著現(xiàn)在 即使像傻瓜一樣也一直在一起 想逃離那痛苦 我的淚水從全身流過 干涸了 I'm living with my tears 輕松地帶著我的心走著 在不近不遠(yuǎn)的地方 會(huì)有另一個(gè)我站著 我不哭了 I'm holding back the tears 沉重地帶著我的信念跑著 在不高不低的地方 又有另一個(gè)我站著 我會(huì)用輕輕的聲音哭的 ???…(Holding Back The Tears) (????) ??? ??? ??? ????? ? ??? ??? ?? ?? ???? ?? ? ?? ? ??? ??? ?? ???? ? ??? ??? ??? ?? ??? ??? I'm holding back the tears ??? ?? ?? ??? ?? ??? ??? ?? ?? ?? ?? ?? ?? ??? ? ?? ??? ? ?? ? ?? ??? ??? ?? ? ?? ??? ?? ??? ? ???? ?? ??? ? ?? ??? ??? ?? ? ??? ???? ??? ? ??? ??? ?? I'm living with my tears ??? ?? ?? ??? ?? ??? ??? ?? ?? ?? ?? ?? ?? ??? ?? ??? ? I'm holding back the tears ??? ?? ?? ??? ?? ??? ??? ?? ?? ?? ?? ? ?? ?? ? ?? ?? ??? ? ?? ? ?? Hayake heuryeojin geurimgwa jiweojindeuthan nae hyanggiga nunbushin gureum soge garyeojyeoyo Amu mal eomneun nae gaseumi cheoncheonhi mameul omgyeobogo geu sa-iro seuchyeogan shiganman sone nohyeojyeo isseoyo I'm holding back the tears mugeopjji anke na-ui ma-eumeul maego georeoyo gakkapjjin anko meolji anheun gose dareun naega seo-itjjyo nan ulji anhayo Tto dashi du soneul mo-eujyo eodinga deullil geu gose chu-eogi anin jigeumeul nan saragayo Babo gatjjiman neul hamkke isseoyo bi-ugo shipeun geu apeumi onmomeuro heureuneun nae nunmureul mareuge hajyo I'm living with my tears mugeopjji anke na-ui ma-eumeul maego georeoyo gakkapjjin anko meolji anheun gose dareun naega seo-itjjyo ulji anhayo nan I'm holding back the tears gabyeopjji anke na-ui mideumeul maego ttwi-eoyo nopjjido anko natjji anheun gose tto dareun naega seo itjjyo jageun misoro nan euseul su itjjyo
ff top holding是法拉第未來公司,總部位于加州的電動(dòng)汽車初創(chuàng)公司,法拉第未來(NASDAQ:ff top holding)為其旗艦產(chǎn)品FF 91電動(dòng)轎車的推出籌集了1億美元,在創(chuàng)始人賈躍亭的領(lǐng)導(dǎo)下重組了公司董事會(huì)。
法拉第未來(ff top holding),也被稱為FF,是FF Global Partners LLC間接擁有的子公司,該公司由二十幾個(gè)FF全球合伙人和FF前高管所有,擁有法拉第未來超過20%的股份和大約36%的投票權(quán)。
cccg holding是央企,中交國際(香港)控股有限公司簡中交國際,是中國交通建設(shè)股份有限公司的境外子公司,公司總部位于香港。中交國際作為中國交建海外投資業(yè)務(wù)的責(zé)任主體和主要融資平臺(tái),負(fù)責(zé)中國交建境外資產(chǎn)的股權(quán)并購、重組,以及海外基礎(chǔ)設(shè)施投資、建設(shè)和資產(chǎn)管理等業(yè)務(wù)。
沒有,holding意思是保持、掌握,例如:
1.Gucci will be holding fashion shows to present their autumn collection
古奇將舉辦時(shí)裝發(fā)布會(huì)推出他們的秋裝系列。
2.The Foundation is holding a dinner in honour of something or other
基金會(huì)正舉辦某個(gè)紀(jì)念宴會(huì)。
holding company 英[?h??ld?? ?k?mp?ni] 美[?hold?? ?k?mp?ni] [釋義] 控股公司; [例句]Moody's said its higher rating was due to the way the holding company is structured.穆迪說,野村證券的評(píng)級(jí)高于野村控股原因在于野村控股的公司架構(gòu)。復(fù)數(shù):holding companies
holding英 ['h??ld??]美 ['hold??]n. 舉辦;支持v. 召開;擔(dān)任(hold的ing形式);握住n. (Holding)人名;(英)霍爾丁
之前看了Mahout官方示例 20news 的調(diào)用實(shí)現(xiàn);于是想根據(jù)示例的流程實(shí)現(xiàn)其他例子。網(wǎng)上看到了一個(gè)關(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
檢測(cè)數(shù)據(jù):
sunny,hot,high,weak
結(jié)果:
Yes=》 0.007039
No=》 0.027418
于是使用Java代碼調(diào)用Mahout的工具類實(shí)現(xiàn)分類。
基本思想:
1. 構(gòu)造分類數(shù)據(jù)。
2. 使用Mahout工具類進(jìn)行訓(xùn)練,得到訓(xùn)練模型。
3。將要檢測(cè)數(shù)據(jù)轉(zhuǎn)換成vector數(shù)據(jù)。
4. 分類器對(duì)vector數(shù)據(jù)進(jìn)行分類。
接下來貼下我的代碼實(shí)現(xiàn)=》
1. 構(gòu)造分類數(shù)據(jù):
在hdfs主要?jiǎng)?chuàng)建一個(gè)文件夾路徑 /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。將要檢測(cè)數(shù)據(jù)轉(zhuǎn)換成vector數(shù)據(jù)。
4. 分類器對(duì)vector數(shù)據(jù)進(jìn)行分類。
這三步,代碼我就一次全貼出來;主要是兩個(gè)類 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";
/*
* 測(cè)試代碼
*/
public static void main(String[] args) {
//將訓(xùn)練數(shù)據(jù)轉(zhuǎn)換成 vector數(shù)據(jù)
makeTrainVector();
//產(chǎn)生訓(xùn)練模型
makeModel(false);
//測(cè)試檢測(cè)數(shù)據(jù)
BayesCheckData.printResult();
}
public static void makeCheckVector(){
//將測(cè)試數(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(){
//將測(cè)試數(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("文件序列化失敗!");
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("檢測(cè)數(shù)據(jù)構(gòu)造成vectors初始化時(shí)報(bào)錯(cuò)。。。。");
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í)表示總文檔數(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("檢測(cè)所屬類別是:"+getCheckResult());
}
}