紫金科技创业是当今社会中备受关注的话题之一,许多年轻人和企业家都在努力创造出下一个独角兽公司。作为一名投资专员,我深知这背后的辛苦和挑战。在这篇博文中,我想分享一些关于紫金科技创业和投资的见解和经验。
当下,紫金科技创业迎来了前所未有的繁荣期。随着科技的迅猛发展和资金的不断涌入,许多创业者开始寻找机会在这个领域获得成功。从共享经济到人工智能,各种创新技术不断涌现,为紫金科技创业带来了无限可能。
作为投资专员,我负责对紫金科技创业项目进行审查和评估。我需要深入了解每个项目的商业模式、市场前景以及团队背景。只有通过深入的尽职调查,才能帮助投资者做出明智的决策,并为项目的成功提供支持和指导。
在紫金科技创业领域,投资策略和风险控制至关重要。我需要密切关注市场动向,及时调整投资组合,降低投资风险。同时,我还要识别和挖掘具有潜力的创业项目,为投资者创造更多的价值。
随着紫金科技创业的不断发展,未来的机会与挑战并存。创新技术的应用将不断提升人们的生活质量,同时也会带来一系列新的挑战与变革。作为一名投资专员,我将继续秉承专业精神,为紫金科技创业领域的发展贡献自己的力量。
华泰紫金证券投资基金是一家领先的投资管理机构,致力于为投资者提供专业、稳健的投资方案。作为华泰紫金证券旗下的基金子公司,该基金秉承着华泰紫金的优质资源和专业经验,为广大投资者提供全方位的资产配置服务。
华泰紫金证券投资基金根据市场情况和投资需求,采用多元化、差异化的投资策略。基金经理团队拥有丰富的投资经验和深厚的市场洞察力,能够迅速捕捉到市场机会并进行相应的调整。无论是价值投资、成长投资、还是主动投资、被动投资,华泰紫金证券投资基金始终以稳健的风险控制和长远的业绩为目标。
核心竞争力:
华泰紫金证券投资基金的投资范围涵盖了多个资产类别,包括股票、债券、货币市场工具等,具有较高的配置灵活性。投资风格上,该基金以价值投资为主导,注重研究企业基本面和估值水平,从而找到低估值的投资机会。同时,基金经理团队也充分考虑市场的短期波动和风险,灵活调整投资组合,以保障投资者的利益。
华泰紫金证券投资基金以其卓越的投资绩效赢得了广大投资者的认可。基金经理团队精准的买入和卖出时机、优异的风控能力以及深入的行业研究都为基金的业绩提供了坚实的支撑。根据历史数据,华泰紫金证券投资基金的回报率长期保持在行业前列,为投资者创造了丰厚的收益。
想要享受华泰紫金证券投资基金的专业投资服务?入驻华泰紫金证券投资基金非常简单。只需要登录华泰紫金证券官方网站,找到基金入驻申请界面,按照要求填写相关信息,通过审核后即可开始享受基金的投资服务。
作为一家实力领先的投资管理机构,华泰紫金证券投资基金以其专业的投资策略、出色的投资绩效和优质的客户服务赢得了广大投资者的信赖。通过入驻华泰紫金证券投资基金,您将能够享受到专业的资产配置服务,获取稳定的投资收益。
感谢您阅读完这篇文章,希望通过这篇文章的介绍,您能够了解华泰紫金证券投资基金的实力和优势,并在投资中做出明智的决策。
紫金所背后所依托的投资集团是南京紫金投资集团有限责任公司,而这家公司又是由南京市国资委全资控股,所以它的安全性,公正性是毋庸置疑的。
紫金矿业作为中国最大的黄金生产企业之一,其港股股价一直备受关注。近期,紫金矿业港股股价出现了一定的波动,这在一定程度上受到黄金价格、全球金融市场走势等多方面因素的影响。
黄金作为紫金矿业的主要产品之一,其国际市场价格波动直接影响着紫金矿业的盈利能力和港股股价。近期,全球金融市场不稳定,黄金作为避险资产的地位再次凸显,这也为紫金矿业港股股价提供了一定的支撑。
全球金融市场的不确定性因素,如中美贸易摩擦、地缘政治紧张局势等,也对紫金矿业港股股价造成了一定程度的波动。投资者对于避险资产的需求会受到这些因素的影响,进而影响紫金矿业的股价。
综合考虑黄金价格、全球金融市场走势以及紫金矿业自身发展情况,我们认为当前阶段紫金矿业港股具备较好的投资机会。长期来看,黄金作为避险资产的地位不会轻易动摇,加之紫金矿业在黄金行业的龙头地位,投资者可以逢低建仓,长期持有。
感谢您阅读本文,希望本文能为您对紫金矿业港股股价的分析提供一定的帮助。
紫金薰衣草是一种美丽的花卉,其迷人的紫色花朵和芳香的气味吸引了众多花卉爱好者。它是一种多年生植物,属于薰衣草科,原产于地中海地区。如今,在全球范围内种植和栽培,在花圃、庭院和花坛中可见到紫金薰衣草的身影。
紫金薰衣草以其独特的特点而受到赞赏。它具有以下特点:
紫金薰衣草的栽培并不困难,只需注意以下几个技巧:
紫金薰衣草不仅仅是一种观赏花卉,它还有许多用途:
紫金薰衣草是一种迷人的花卉,不仅具有美丽的花朵和芳香的气味,而且还具有许多用途。无论是观赏、室内装饰还是草药治疗,紫金薰衣草都展现出其独特的魅力。如果你是花卉爱好者或者对精油疗法感兴趣,不妨考虑在自己的花园中种植一些紫金薰衣草,你会被它们的美丽和多样化的用途所惊艳。
紫金驾校是一家领先的驾驶培训机构,致力于为学员提供高质量的驾驶课程和专业的教练团队。我们拥有多年的教学经验,深知每位学员的需求和特点,因此能够针对个体差异制定个性化的学习计划,帮助学员快速提升驾驶技能。
作为一家专业的驾驶培训机构,紫金驾校在教学过程中始终遵循以下原则:
在紫金驾校,学员不仅能够掌握驾驶的基本技能,还能够了解交通法规和安全知识,培养正确的驾驶态度与习惯。我们的教练团队经验丰富,具备扎实的教学功底和丰富的驾驶经验,能够耐心指导学员,帮助他们克服驾驶中的困难与挑战。
紫金驾校提供多种驾驶课程,包括机动车驾驶、客车驾驶、货车驾驶等多个类别。学员可以根据自身需求选择适合的课程,每个课程都经过精心设计,内容全面丰富,涵盖了驾驶技能、交通法规、车辆检修等多个方面。
我们还提供补习课程和模拟考试,帮助学员检验学习效果,发现不足之处,并及时进行弥补。紫金驾校的课程设置灵活多样,能够满足不同学员的需求,帮助他们快速通过驾驶考试,取得驾驶证书。
紫金驾校拥有先进的教学设备和良好的教学环境,为学员提供优质的学习条件。我们的教室宽敞明亮,配备了多媒体教学设备,能够有效地辅助教学,提高学习效果。
驾校的练车场地宽阔平整,符合交通标准,能够让学员充分练习各项驾驶技能,提高驾驶水平。教练团队严格遵守教学规范,确保教学过程安全有序,有效地保障学员的学习体验。
多年来,紫金驾校培养了大量优秀的驾驶员,赢得了学员们的好评与信赖。他们认为紫金驾校的教学质量高,教练团队专业,课程设置合理,教学环境优越。
学员们表示,在紫金驾校的学习经历让他们受益匪浅,不仅提升了驾驶技能,还培养了安全意识和责任感。他们纷纷推荐紫金驾校给身边的朋友和家人,希望更多的人能够通过紫金驾校获得优质的驾驶培训。
紫金驾校将继续秉承专业、严谨、负责的教学理念,努力为学员提供更优质的驾驶培训服务。我们相信,在紫金驾校的指导下,每位学员都能够成为一名安全、合格的驾驶员,为交通安全贡献自己的力量。
中國是一個有著悠久歷史和豐富文化的國家,同時也是培育和繁殖獨特品種的樂土。在中國的寵物犬種當中,紫金藏獒無疑是最引人注目的一種。這種古老的犬種在國內外享有盛譽,被譽為中國最優秀的護衛犬之一。
紫金藏獒的獨特之處在於它們的外貌和性格特點。這種犬種具有壯碩、肌肉發達的體型,體重通常超過100公斤,肩高可達75厘米。部呈現出方形,鼻子寬闊,下顎強壯,咬合力極大。
紫金藏獒的毛色多樣,有金色、黑色、灰色、銀色等,且毛質柔軟而密集,具有極強的保護性和適應力。它們的眼睛深邃而燦爛,充滿睿智之光。
除了外貌上的獨特之處,紫金藏獒還具有堅毅而忠誠的性格。它們擁有強大的保護和守護本能,對主人極為忠心耿耿,非常善於保護家人和財產。
紫金藏獒是中國最優秀的藏獒品種之一。從古老的塞北到喜馬拉雅山脈,藏獒一直與中國的歷史和文化息息相關。它們最早出現在中國北方的大草原地帶,隨著漢朝的興衰而逐漸發展壯大。
紫金藏獒被稱為"紫金",是因為它們優秀的品質和珍貴的身價,與"天子"的象徵-"紫金之尊"相映成趣。紫金藏獒的歷史可以追溯到數千年前,它們被譽為中國皇帝的守衛和尊榮象徵。
由於紫金藏獒具有強大的護衛能力和出色的適應力,它們在中國被廣泛使用於警察和軍方的護衛工作中。在現代社會,紫金藏獒也成為了許多富有人士和名人的寵物選擇。
紫金藏獒的護衛能力得益於其堅韌的體型和頑強的性格。它們具有出色的聽覺和嗅覺,能夠準確判斷威脅並做出反應。紫金藏獒在面對威脅時,會發出震耳欲聾的威嚇聲,嚇退侵入者。
紫金藏獒還可以在極端的氣候件下生存,具有耐寒、耐熱的特點。在高海拔地區,紫金藏獒是適應最好的犬種之一,能夠抵禦強風、低氧和恶劣氣候帶來的挑戰。
作為一種優秀的護衛犬品種,紫金藏獒需要專業的飼養和訓練。由於其體型和性格特點,紫金藏獒需要足夠的活動空間和運動量。飼主應該為它們提供足夠的運動和鍛煉,確保其體能和耐力。
在飼養紫金藏獒的過程中,注意良好的飲食和定期的健康檢查是至關重要的。紫金藏獒的飲食應該均衡而富有營養,以確保其身體健康和免疫力。定期的健康檢查可以及早發現和治療潛在的健康問題。
在訓練方面,紫金藏獒需要早期社交化和基礎服從訓練。早期社交化可以幫助紫金藏獒適應不同的環境和人群,減少對陌生人的敵對性。基礎服從訓練可以建立起犬主關係,以確保紫金藏獒遵從主人的指令和指引。
紫金藏獒作為中國最優秀的護衛犬品種之一,以其壯碩的體型和堅毅的性格贏得了無數人的喜愛和尊重。無論是在家庭、軍事還是警察領域,紫金藏獒都展現出出色的護衛能力和忠心耿耿的品質。
在飼養紫金藏獒的同時,我們應該給予它們適當的關愛和尊重。適當的飼養和訓練可以保證紫金藏獒的健康和快樂,同時讓我們感受到它們無私的愛和護衛。
紫金矿业是中国最大的黄金生产企业之一,也是全球知名的矿业公司之一。作为一家上市公司,紫金矿业股票在多个交易市场都有交易,其中包括港股市场。本文将着重探讨紫金矿业在港股市场的股票投资,分析其利与弊。
香港是亚洲最重要的金融中心之一,港股市场作为全球最大的股票市场之一,吸引着众多国内外投资者的关注。港股市场以其高度开放的特点和便捷的交易方式,为投资者提供了广泛的选择,同时也给投资者带来了不少利益。
作为中国最大的黄金生产企业之一,紫金矿业在港股市场具备一定的投资价值。当前全球金融市场的不确定性增加,黄金作为避险资产备受关注,投资紫金矿业股票可以获得黄金市场上的收益。此外,紫金矿业的业务规模庞大,良好的管理团队和稳定的发展趋势也为其带来了投资机会。
投资港股股票需要了解港股市场的交易规则和投资方式,选择合适的证券��司开通港股账户,并根据自身的风险承受能力和投资目标进行股票选择和买卖决策。
港股市场作为全球最大的股票市场之一,投资者可以通过购买紫金矿业股票来参与其中。投资港股股票有其优势,如国际化程度高、品种丰富等;同时也存在着一定的风险,如市场波动大、政策风险等。投资者在进行港股投资时需要认真研究并评估风险和收益,以做出相应的投资决策。
感谢您阅读本文,通过了解紫金矿业在港股市场的投资情况,希望能为您带来一定的帮助。
好
紫金鼠紫金皮原皮变色快,盘玩效果好。一般成熟度好的鼠,密度和油性都不错,所以上色包浆的效果就会快一些,一盘玩一周表皮会变色加深,两周会变得油润好看,一个月左右就会慢慢开始上浆。见效快是紫金鼠的一大特点。
紫金鼠最开始变色时,颜色又红又润,有点像包浆的凤眼,但是它包浆变色的效快多了。
之前看了Mahout官方示例 20news 的调用实现;于是想根据示例的流程实现其他例子。网上看到了一个关于天气适不适合打羽毛球的例子。
训练数据:
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
检测数据:
sunny,hot,high,weak
结果:
Yes=》 0.007039
No=》 0.027418
于是使用Java代码调用Mahout的工具类实现分类。
基本思想:
1. 构造分类数据。
2. 使用Mahout工具类进行训练,得到训练模型。
3。将要检测数据转换成vector数据。
4. 分类器对vector数据进行分类。
接下来贴下我的代码实现=》
1. 构造分类数据:
在hdfs主要创建一个文件夹路径 /zhoujainfeng/playtennis/input 并将分类文件夹 no 和 yes 的数据传到hdfs上面。
数据文件格式,如D1文件内容: Sunny Hot High Weak
2. 使用Mahout工具类进行训练,得到训练模型。
3。将要检测数据转换成vector数据。
4. 分类器对vector数据进行分类。
这三步,代码我就一次全贴出来;主要是两个类 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) {
//将训练数据转换成 vector数据
makeTrainVector();
//产生训练模型
makeModel(false);
//测试检测数据
BayesCheckData.printResult();
}
public static void makeCheckVector(){
//将测试数据转换成序列化文件
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参数是,是否递归删除的意思
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);
}
//将序列化文件转换成向量文件
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参数是,是否递归删除的意思
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("序列化文件转换成向量失败!");
System.out.println(2);
}
}
public static void makeTrainVector(){
//将测试数据转换成序列化文件
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参数是,是否递归删除的意思
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);
}
//将序列化文件转换成向量文件
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参数是,是否递归删除的意思
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("序列化文件转换成向量失败!");
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参数是,是否递归删除的意思
fs.delete(out, true);
}
if(fs.exists(label)){
//boolean参数是,是否递归删除的意思
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("生成训练模型失败!");
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("检测数据构造成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时表示总文档数
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());
}
}