当前位置: 主页 > 面试题 > 正文

庐山站怎么去庐山?

2025-06-09 14:28人气:0 编辑:招聘街

一、庐山站怎么去庐山?

之前没有修索道,现在修了,从庐山站下高铁,打出租到庐山索道的地方15分钟左右就到,原答案适合从九江火车站下车的朋友。

原答案是买车票不要买到庐山站的,庐山站比九江站离庐山景区远一些。在九江火车站下车后坐公交或者打车到九江汽车站,买票到庐山,司机会把大家送到景区北门,让大家去买门票,在二楼检完票以后,再去坐之前的那辆车。司机会把大家送到牯岭镇上。

在庐山站下车,一、沿着九江站出站口地下通道下去后,一路上都有庐山索道公交车地点的引导标识。

步行大概5分钟后,就来到了公交总站,图片上停了很多车的就是。九车温馨提示:一定要在小编拍摄的位置乘车,公交总站里是不让乘车的。

二、在火车站广场公交站台乘坐9/26/101/105/108路到达长虹立交桥站(3站路程)转乘63路直达三叠泉

三、在火车站广场公交站台乘坐15/27/36/66路到九江汽车总站转乘庐山风景区专线车

具体公交线路详见下表

想要饱览庐山上的美景至少需要两天,所以合理安排好自己的时间,(九车提示:乘车+游玩+吃住人均1000?左右)

返程依旧是乘索道缆车下山,然后乘坐57路公交返回九江站。

二、从庐山站到庐山如何坐车,坐到庐山哪里下呢?

准确来讲,庐山站更应该叫“九江西站”,和庐山景区的关系不大。庐山站分为老站楼和新站楼,新站楼于2022年5月建成,所以目前坐到庐山站下的话都是从新站楼出站,老站楼已经停止使用。

作为九江本地人,如果你不是自驾租车,那么其实是不建议前往庐山景区的游客在庐山站下车的,因为庐山站和庐山索道之间并无直接的公共交通连接,非常麻烦,最好在九江站下车。

但是,不论是在哪个火车站下车,都是建议打车前往庐山索道

为什么建议打车?

因为两个火车站离庐山景区的入口都很远,从九江站出来的话,虽说有57路公交直达索道下站,但这个公交属于中巴类型,一小时才发一班,旅游旺季等候57路公交的人会特别多,导致非常耗时。如果不赶时间或处于旅游淡季的话,当然也可以选择坐57路

如果处于旺季且赶时间可以优先选择打车前往庐山索道下站。火车站出站口会有很多拉客的,不建议坐他们的车,基本都是坑游客。建议在滴滴等平台上订车,直接到索道下站,价格一般在50元左右算比较正常(至少没坑太多)。如果在市内拦车去索道下站的话,司机一般不会打表,只是提前说好价钱,可以还价。

为什么选择坐索道上山而不是从北门换乘中心坐班车上山?

如果坐班车,你将会体验40多分钟的盘山路,易晕车者不要轻易尝试!

下面再继续说索道。

庐山大景区内其实有多条索道,比如庐山索道、三叠泉索道等,如果是单纯上山的话,那条索道就叫“庐山索道”,坐索道的地方叫“庐山索道下站”,下索道的地方叫“庐山索道上站”,这些地名在某德和某度地图上都可以搜得到,索道往返票一人120元,具体的优惠政策可以在某程上直接查。下索道的地方就在牯岭镇的镇上,步行10分钟左右即可到达牯岭街、街心公园的中心地带。

庐山推荐打卡地:牯岭街、街心公园、如琴湖、锦绣谷(个人认为是最精华的,险峰和仙人洞在锦绣谷内部)、花径、含鄱口(看日出和鄱阳湖)、植物园、五老峰、三叠泉、大口瀑布、美庐别墅、庐山会议旧址、庐山恋影院、名人旧居等。

如果你想去看李白笔下的庐山瀑布,那么得去秀峰景区。秀峰景区不属于庐山大景区管辖,属于独立出来的小景区,得单独购票前往。(秀峰景区的缆车稍微老旧了点,敞篷款)

庐山周边的东林寺、东林大佛、庐山西海、鄱阳湖、落星墩、白鹿洞书院、石钟山等景点以及九江市区也值得打卡。

美食的话,一定要尝尝本地的特色菜,推荐去一些小馆子,可能会有不一样的收获。

三、庐山攻略?

江西已经有2个多月没有下雨,鄱阳湖提前3个月进入枯水期,落星墩也比以往更早成为了网红景点。下高速时,等待扫码的小车排成了长龙,防疫工作人员指着几辆旅游大巴上乌泱泱的几波人说,都是来看落星墩的。

一到周末,庐山市到处都是游客,玩到中午,选择了这家排名靠前的星宴主题餐厅。餐厅位置,不错,离落星墩开车也就5、6分钟,不过店门口没有停车位,人行道停满后就只能到别处寻找停车位。

从找停车位开始,就已经暗示这里接待能力有缺陷。所幸的是,虽然来得晚,但还有一个空包厢,刚好适合我们一行8个人。

这家店装修复古、精致,中厅专门造了个水景,看上去很讲究的样子,有楼梯可以上二楼,总体面积挺大的。

虽然面积看上去可以容纳足够的客人,但服务和承载能力完全跟不上,比如服务员只有上菜的时候会来,其他时间是完全喊不到,因为他们忙得根本停不下来,很多时候你需要什么,只能靠自己动手;再拿厕所来说,女厕貌似只有1、2个隔间,所以门口一直是保持排队的状态,洗手池也只有2个,其中一个还被拿来洗碗,洗个手也需要排队的场景现在是很少见了。

说到菜,味道还是不错的,赣菜的风格非常明显。尤其是牛肉烧得不错,铺在下面的土豆有些微焦,吃起来特别香。

总得来说值得一吃,希望能好好提升服务接待能力,这样体验感才会更好。

地址:庐山市南康镇庐阳路6号星御国际旁边

四、庐山旅游攻略 | 庐山住宿推荐

庐山旅游攻略

庐山位于中国江西省,是中国著名的风景名胜区之一。庐山山势雄奇,风景秀丽,以山水相映、云雾缭绕而闻名于世。每年吸引着大批游客前来观光、登山和避暑。

庐山住宿推荐

庐山拥有丰富多样的住宿选择,从高档酒店到经济型客栈,应有尽有。以下是一些庐山住宿推荐:

1. 庐山大酒店

庐山大酒店位于庐山主峰脚下,环境优美,交通便利。酒店设施齐全,提供豪华客房、餐厅、会议室等服务。游客可以欣赏到庐山美丽的风景,尽情享受舒适的住宿体验。

2. 庐山宾馆

庐山宾馆是一家历史悠久的酒店,位于庐山主峰脚下的风景区内。酒店建筑典雅,环境清幽,提供各类客房和餐饮服务。在这里住宿可以感受到庐山的独特魅力。

3. 庐山青年旅舍

庐山青年旅舍是一个经济实惠的住宿选择。房间简洁舒适,价格亲民,适合背包客和预算有限的游客。旅舍地理位置优越,离各个景点都很近,方便游览。

除了以上推荐的住宿地点,庐山还有许多其他的酒店和客栈可供选择。游客可以根据自己的需求和预算,选择适合自己的住宿方式。

庐山旅游攻略住宿部分就介绍到这里。希望以上信息对计划前往庐山旅游的游客有所帮助。感谢您阅读本篇文章,祝您旅途愉快!

五、几级地震是有感地震?

2.5级以上地震能感觉到,地震等级分为九级,一般小于2.5级的地震人无感觉,2.5级以上人有感觉。 一般将小于1级的地震称为超微震。M≥1级,小于3级的称为弱震或微震,如果震源不是很浅,一般不易觉察。M≥3级,小于4.5级的称为有感地震,这种地震人们能够感觉到,但一般不会造成破坏。M≥4.5级,小于6级的称为中强震,属于可造成破坏的地震。M≥6级,小于7级的称为强震。M≥7级,小于8级的称为大地震。8级以及8级以上的称为巨大地震。

六、地震自救的地震口诀?

高层楼撤下,电梯不可搭,万一断电力,欲速则不达。

平房避震有讲究,是跑是留两可求,因地制宜做决断,错过时机诸事休。

七、游庐山:我眼中的庐山之旅

庐山之美

庐山位于中国江西省九江市,是中国著名的风景名胜区之一。它以奇峻的山峰、清澈的湖水和秀丽的自然风光而闻名于世。在我眼中,庐山是一片神奇的仙境。

登山之旅

我难以抑制内心的激动,和同学们一同踏上了庐山的山峰。山路崎岖,但是四周的景色却让人陶醉其中。我们看到了蓝天白云下连绵的山峰,听到了鸟儿歌唱的声音,感受到了大自然的力量。登上山顶,我们俯瞰着下方的云海,仿佛来到了仙界。

湖水之美

庐山的湖水是如此清澈,宛如一面镜子。我们乘坐游船漫游在湖上,欣赏着湖水周围的美景。湖面上漂浮着白莲花,倒映着远处的山峰。湖水清澈见底,我们还能看到水中游动的鱼儿。这样的美景使我们心旷神怡,忘却了一切烦恼。

名胜古迹

庐山还有许多著名的名胜古迹,其中最有名的就是莲花峰。莲花峰犹如一朵盛开的莲花,层层叠叠,美不胜收。还有一座古老的寺庙——归元寺,庙内古色古香,寺庙周围群山围绕,景色壮观。我们顶礼膜拜,感受到了庄严肃穆的氛围。

庐山之行的感受

庐山之行给我留下了深刻的印象。这片美丽的土地教会了我如何欣赏大自然的美景,让我感受到了大自然的力量和恩赐。登上山峰,俯瞰云海,我仿佛置身于仙境;漫游湖水,欣赏湖光山色,我忘却了尘世间的烦恼。这次庐山之旅,不仅让我近距离感受了自然的壮丽之美,还让我明白了保护自然环境的重要性。

通过这次庐山之行,我学到了很多知识,也增加了对自然的敬畏之心。我将牢记这次难忘的经历,并将它融入到我的作文之中。

感谢您阅读我关于庐山之旅的作文,希望通过这篇文章,能让您感受到庐山之美,激发对大自然的热爱,并有更深入的了解庐山这个美丽的地方。

八、庐山秋天

庐山秋天:自然美景的天堂

庐山素有“天下第一奇山”之称,它位于中国江西省,是中国著名的风景名胜区之一。而在秋天的庐山,更是一片美不胜收的景象。庐山秋天以其壮丽的自然景观和绚丽多彩的秋色,吸引着众多游客前来欣赏。

庐山的秋天是一个绚丽多彩的季节,充满了浓厚的诗意和艺术氛围。山上的树木在秋风的吹拂下,变换出各种明亮的色彩。红叶、黄叶、橙叶交相辉映,在阳光的照射下,闪烁着如黄金般的光芒。整个山坡都被五彩斑斓的秋叶装点得如同一幅绘画,给人一种奇幻美好的感觉。

登上庐山,可以远眺山下的美景。秋天的庐山,云雾缭绕,仿佛进入了童话世界。山川起伏,山峰在云海之间若隐若现。远处的村庄、湖泊、河流隐约可见,与山景融为一体,构成了一幅壮观的画卷。

在庐山的山巅,有许多著名的景点和步道,供游客观赏和游览。其中,著名的三大奇观包括花岗岩峰林、云海和温泉。庐山的花岗岩峰林是其独特的自然景观之一,峰峦叠嶂,形状各异。庐山的云海更是令人惊叹,云雾弥漫山间,如同一片白色的海洋,美不胜收。而庐山温泉更是让人身心舒畅,它有着丰富的矿物质和疗效,在秋天泡温泉,舒缓疲劳,放松身心,是一种绝佳的享受。

庐山还有许多名胜古迹,可以让游客感受到悠久的历史文化。比如庐山瀑布群,这里有着众多壮丽的瀑布,激起了无尽的美丽和浩然之气。还有八百里庐山画廊,这是一条蜿蜒曲折的山间小路,两旁是高耸入云的山峰和茂密的树林,每走一步都能感受到大自然的鬼斧神工。

而在庐山的秋天,还有一个让人难以忘怀的美景,那就是日出和日落。登上庐山的山巅,站在高处,远眺日出和日落的美景,是一种无与伦比的体验。一轮红日冉冉升起,映照着整个山脉,温暖了人的心灵。而夕阳西下时,整个庐山都被余晖染红,如同一个幻境般令人陶醉。

庐山的宜人气候和独特的自然环境,使得它成为了众多摄影爱好者的圣地。在庐山秋天,不仅可以欣赏到绚丽的景色,还可以品味到大自然的纯真和美好。无论是专业摄影师还是普通游客,都可以在这里找到属于自己的美。

总之,庐山的秋天是一个充满魅力和诗意的季节。它以其绚丽多彩的景色,吸引了无数游客前来游览和欣赏。在庐山,你可以感受到大自然的美妙和力量,体验到人与自然的和谐共生。如果你还没有来过庐山,不妨在下一个秋天,来一场与大自然的约会,感受庐山秋天的魅力。

九、庐山特产

庐山特产:山货丰饶的美食天堂

庐山,这座位于江西省北部、鄱阳湖畔的美丽山峰,以其丰富的自然资源,独特的气候条件,孕育出了独具特色的庐山特产。这些特产不仅代表着庐山地区的文化底蕴,也成为了游客们必尝的美食。今天,我们就来一起探寻庐山特产的魅力。

庐山云雾茶

庐山云雾茶,被誉为“茶中瑰宝”,生长在海拔千米以上的高峰,吸取山水之精华,具有独特的兰花香味。庐山茶园分布在各个山谷、溪涧、坡地,以白鹿洞、大林山、小林山等地的品质最佳。庐山云雾茶具有祛暑、解毒、消食、去脂之功效,是庐山特产中的明星产品。

庐山石鸡

庐山石鸡,是一种生长在岩石缝隙中的珍稀蛙类。其肉质鲜美,营养丰富,是庐山特产中的又一美味。庐山石鸡主要分布在山区的溪流、水沟、石洞等地,以黄沙潭、汗流等地的石鸡品质最佳。在品尝庐山石鸡时,其独特的口感和营养价值定会让你回味无穷。

庐山竹筒饭

庐山竹筒饭是庐山地区的另一特色美食。将米饭和配料装入竹筒,文火慢炖,竹香浓郁,美味可口。庐山地区的竹子品质优良,适合制作竹筒饭。此外,庐山地区的美食文化源远流长,因此也衍生出了许多以竹筒为材料的特色菜肴。

庐山其他特产

除了以上介绍的几种特产,庐山地区还有许多其他独具特色的美食和手工艺品。如庐山酥饼、庐山桂花糕、庐山野生猕猴桃等,都深受游客们的喜爱。此外,庐山的传统手工艺品如竹编、木雕、石雕等,也是极具地方特色的纪念品。

总的来说,庐山特产是庐山地区文化底蕴和自然资源的完美结合。无论是品尝美食,还是购买纪念品,庐山特产都是游客们不容错过的选择。在庐山的旅行中,让我们一起品味这些独具特色的美食,感受这片美食天堂的魅力吧!

十、mahout面试题?

之前看了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());

}

}

显示全部

收起

相关文章
热门频道
  • 招聘信息
  • 待遇资讯
  • 工资资讯
  • 笔试题
  • 面试题

访问电脑版 | 返回首页 | 招聘街