行政执法监察内涵
行政执法监察
,又称执法监察
,是关于监察的一个特定概念,属于行政执法
的范畴,是指行政执法主管部门依法对法律关系主体执行和遵守法律、法规的情况进行监督检查,并对违法者实施行政处罚的行政执法活动。执法是指行政执法,主要强调行政处罚;监察是监督检查,也是广义执法的一部分,强调督促相关各方履责。此即通常所说的“执法监察二重性
”。行政执法监察的内容包括两个方面:①对法律法规的实施情况进行监督监察;②对违反法律法规的行为实施法律制裁。行政执法监察
主要分为两大类:政府系统行政管理部门一般行政执法领域
的部门执法监察
(也称行业执法监察)和监察委系统行政监察领域
的专门执法监察
(也称纪检执法监察)。执法监察发展简史:溯源与发展
执法监察
是中国特色社会主义法治的重要组成部分,是中国特色社会主义法治发展历史的一个缩影。从词源上讲,“
监察
”一词源于封建社会的“监察御史”,指代表皇帝监督皇权体制内百官群吏
的一个官职。新中国成立后,人民当家作主,进行社会主义改造,实行计划经济,
所有人均被纳入国家体制内
管理,管理手段主要依靠行政手段,“监察”作为对一切体制内单位和个人监督检查及处罚惩戒的方式
在内涵和外延上有了重大变化
。劳动监察、安全生产监察等以监督检查为手段,督促体制内各方落实政府相关法规。这时候,“监察”分为部门监察
和专门监察
。这个时期,各个政府行业管理部门
的部门监察
主要依靠执行法律及部门规章、行政命令监督各单位和个人
履责,如劳动执法监察、安全生产执法监察、国土执法监察等部门监察
。而专门针对政府官员的专门监察
,即政府行政监察部门
的行政监察,则主要依靠行政手段对政府部门及公务人员
实行监督问责,即通常所说的狭义的“监察”
。改革开放后,随着经济社会的发展,各种社会管理问题也越来越突出,法制意识逐步增强,政府各个行业管理部门的执法监察队伍进入快速成长期。这个时期,
随着计划经济向市场经济的转型,许多体制内的单位人变成体制外的社会人,“监察”在这个阶段的内涵、外延也有了相应拓展,并逐步演变为依法监督社会各方履责的一个重要方式
,部门监察越来越多的被叫做部门执法监察
并逐渐被作为行政执法的重要组成部分,环保执法监察、城管综合执法监察等部门行业执法监察进行了许多鲜活的社会主义法治探索,特别是以相对集中行政处罚权为牵引的综合执法改革
,通过将管理决策、行政审批等职能
与监督监察、行政处罚等职能
分开,为进一步健全和完善中国特色的行政执法制度奠定了基础。也是在这一时期,作为专门执法监察
的行政监察领域执法监察也被正式提出,成为与效能监察、廉政监察并列的行政监察的三种方式之一。十八以来,中央将依法治国作为重要国策,政府行政管理的
部门执法监察
得到高度重视和进一步规范发展,成为依法治国的重要组成部分,综合执法
被确定为发展方向,行政执法体制改革稳步推进。与此同时,国家监察体制改革全面铺开,行政监察领域的专门执法监察从政府体系脱离出来
成为新构建的监察委体系的重要组成部分
,实践与研究领域取得迅猛发展。《城市管理三维结构视野下的城管综合执法与监察》一文以
城管综合执法及监察
为例,梳理了从城建监察、城管监察、城管执法到城管执法监察的执法监察制度
发展历程,指出了执法监察二重性
。城管执法监察制度从市容、城建监察演变而来,最早脱胎于计划经济向市场经济的转型之中,注重发挥监督各方依法履行城市管理方面责任的作用叫“城管监察
”,后来由于推进相对集中处罚权推进综合执法而更多叫城管综合执法
,再后来发觉仅仅注重事后处罚惩戒而忽视事前通过监督检查督促社会各方依法履责不利于形成城市法治共治格局,更多的机构如北京各区的城管执法局又加上了监察,叫“执法监察
”(2013年,北京市各区城市管理监察大队
改名时经充分研究未改成城市管理综合行政执法局
,而是改名为城市管理综合行政执法监察局
)。城管执法监察制度的发展,也是执法监察制度发展的一个缩影。部门执法监察与专门执法监察
部门执法监察
,也称行业执法监察
,常被简称为行政执法,包括各个政府行业管理部门的行政执法监察:劳动保障执法监察、安全生产执法监察、环境保护执法监察、城市管理执法监察、市场监管执法监察、文化市场执法监察、农业执法监察等。主要是对法律相关各方,包括各类市场、社会主体、个人遵守相关法律法规的情况进行监督监察,并对违法行为进行处罚。专门执法监察
,也常被称为纪检执法监察
,主要是指行政监察部门的执法监察。主要是对政府机关及公务人员遵守法律法规依法执法的情况进行监督监察,并对违法违规行为进行惩处,概括来说,就是对政府机构及公务人员执行法律情况的执法监察。特别是国家监察体制改革之后,行政监察从传统政府管理领域进一步独立出来,组建了监察委,构建出“一府一委两院”的格局,监察委系统的执法监察越来越得到各方重视,许多学者就行政监察领域的专门执法监察开展了大量研究,而对于政府各管理部门的行业执法监察研究还比较薄弱,出现了认识的混乱。执法监察制度建设中关于
执法监察二重性
的辨析,不仅仅体现在前文案例中的城管综合执法
等行政执法
领域的部门执法监察
,更体现在行政监察
领域的专门执法监察
。行政监察领域的执法监察也不仅仅是注重事后的惩戒,更注重通过监督监察、制度完善等方式做到在事前防范,保证公共机构和公务人员(即行政监察领域执法监察的对象)能够依法履责。行政
执法监察与行政执法、行政监察、执法监督概念辨析
长期以来,由于对行政执法监察制度的“
执法监察二重性
”缺乏研究,以罚代管、执法矛盾问题突出,也出现将执法监察与行政执法、行政监察、执法监督等概念混淆。行政执法监察
又称执法监察,是行政执法
的重要组成部分,既包括政府管理系统行政执法
领域的部门执法监察,也包括监察委系统行政监察
领域的专门执法监察。行政执法
包括行政许可、行政征收、行政裁决、行政监督检查、行政处罚、行政强制等,但执法监察
仅指行政监督检查、行政处罚及与之关联的行政强制。按照中央综合执法改革要求的“决策监管、行政许可等职能
与监督检查、行政处罚等职能
适度分离
”的要求,执法监察
即是指分离的后面的那一部分职能。而
执法监督
,则是对包括行政执法监察
在内的行政执法
主体和行为的监督。参考文献:
宋刚,王毅,王旭. 城市管理三维结构视野下的城管综合执法与监察[J]. 城市发展研究, 2018, 25(12):113-121.监察对象是指《行政监察法》规定的接受监察机关监察的组织和个人。
根据《行政监察法》第二条的规定,监察对象包括国家行政机关、国家公务员和国家行政机关任命的其他人员。国家行政机关即国家管理机关,是国家机关的一种,它是由国家依法设立并代表国家依法行使国家行政权,掌管行政事务的机关。一般来说,构成各行政机关内部的各单位,称为行政机构,综合各行政机构的整体,则为行政机关。国务院和地方各级人民政府及其所属机构是我国国家行政机关。他们由本级人民代表大会产生,对其负责并报告工作,受其监督。国家公务员是指各级国家行政机关中除工勤人员以外的工作人员。国家行政机关任命的其他人员,是指企业、事业单位中由国家行政机关任命的人员及其他经国家行政机关以委任、派遣、聘任等形式批准从事公务的人员等。
行政机关和监察机关有国务院、地方行政机关、街道办事处、民族自治地方行政机关、派出所等,而监察机关有国家监察委员会、地区各个监察委员会、监察专员、国家机关等。
一、行政机关和监察机关有哪些
行政机关有中央行政机关:国务院及其组成部门 ;地方行政机关:地方各级人民政府及其所属的各工作部门,民族自治地方行政机关,特别行政区行政机关、街道办事处;关于公安机关,其内设机构有公安消防大队和公安交警大队、派出所,都是行政机构,只有经法律法规和规章的特别授权,才有行政主体资格。
监察机关主要包含:国家监察委员会、地区各个监察委员会,各级监察委员会可以向区级共产党机关单位、国家机关、相关法律法规受权或是授权委托管理方法公共行政的结构和企业和所管理的行政区划、国企等驻派或是派遣监督组织、监察专员。
二、监察机关有批捕的权力吗
监察机关并没有批捕的权力,监察机关不能直接逮捕,但对涉嫌职务犯罪的,可以将调查结果移送人民检察院依法审查、提起公诉。我国的司法体系中,批捕的程序是由两个司法机关完成的,一般情况下由检察机关批准,由公安机关执行,而监察机关则没有这项行政权力。
三、监察机关留置期限一般是多久
监察机关留置期限一般是三个月。法律快车提醒您,在特殊情况下,可以延长一次,延长时间不得超过三个月。监察机关对被调查人采取留置措施后,应当在二十四小时以内,通知被留置人员所在单位和家属,但有可能毁灭、伪造证据,干扰证人作证或者串供等有碍调查情形的除外。
监察工作方针主要包括三个方面内容:
一是坚持标本兼治、综合治理,强化监督问责,严厉惩治腐败。这主要讲的是“不敢腐”的问题。人民群众最痛恨腐败现象,腐败是我们党面临的最大威胁。只有以反腐败永远在路上的坚韧和执着,深化标本兼治,保证干部清正、政府清廉、政治清明,才能确保党和国家长治久安。当前,反腐败斗争形势依然严峻复杂,巩固压倒性态势、夺取压倒性胜利的决心必须坚如磐石。监察法的规定体现了党的十九大报告“坚持无禁区、全覆盖、零容忍,坚持重遏制、强高压、长震慑”的要求。
二是深化改革、健全法治,有效制约和监督权力。这主要讲的是“不能腐”的问题。监察法的规定体现了党的十九大报告提出的“要加强对权力运行的制约和监督,让人民监督权力,让权力在阳光下运行,把权力关进制度的笼子”。解决不能腐的问题,不仅仅是国家监察体制改革和监察法的任务,其他各项深化改革任务和法律制定、修订工作都或多或少与此相关。反腐败不是靠某一个机关就能完成的事,必须动员各方面广泛参与,群策群力,建立起规范权力运行的制度机制。我们要按照党中央决策部署,全面深化各项改革举措,真正构筑起不能腐的堤坝,让权力得到约束。及时通过立法把行之有效的改革举措以法律的形式固化下来,形成监督合力、增强监督实效,确保党和人民赋予的权力真正用来为人民谋利益。
三是加强法治教育和道德教育,弘扬中华优秀传统文化。这主要讲的是“不想腐”的问题。法律是准绳,任何时候都必须遵循;道德是基石,任何时候都不可忽视。习近平总书记强调,把法治中国建设好,必须坚持依法治国和以德治国相结合,使法治和德治在国家治理中相互补充、相互促进、相得益彰,推进国家治理体系和治理能力现代化。法律是成文的道德,道德是内心的法律。法律和道德都有规范社会行为、调节社会关系、维护社会秩序的作用,在国家治理中都有其地位和功能。习近平总书记强调,领导干部要讲政德。政德是整个社会道德建设的风向标。立政德就是要明大德、守公德、严私德。明大德,就是要铸牢理想信念、锤炼坚强党性,在大是大非面前旗帜鲜明,在风浪考验面前无所畏惧,在各种诱惑面前立场坚定。守公德,就是要强化宗旨意识,全心全意为人民服务,恪守立党为公、执政为民理念,自觉践行人民对美好生活的向往就是我们的奋斗目标的承诺,做到心底无私天地宽。严私德,就是要严格约束自己的操守和行为。(摘自中央纪委国家监委法规室编写、中国方正出版社出版的《〈中华人民共和国监察法〉释义》)
行政监察的对象为:
(1)行政系统中以行政隶属关系为基础,代表国家行使行政权力、执行行政公务的行政机关。
(2)行政机关中执行公务的工作人员。在行政机关工作,但非执行公务的人员不是行政监察的对象。
(3)国家机关任命的其他人员。如一些由行政机关直接管理的企业事业单位的领导人是由行政机关任命的,他们实际上是接受行政机关的委托,从事一定的行政事务,或者对一部分国家资产进行经营管理,他们既要对所在的单位负责,也要对国家、对任命他的行政机关负责,所以他们也属于行政监察的对象。
公司行政监察员岗位职责是确保公司内部运营符合法律法规和公司政策标准的重要工作。作为公司行政监察员,职责范围涵盖了许多关键方面,需要具备专业知识和严谨的态度来有效履行工作职责。
在公司行政监察员的岗位上,要求具备扎实的法律法规知识和出色的分析能力。对于公司内部的运营和政策实施,行政监察员需要严格审核和监督,确保一切符合标准与规范。
公司行政监察员的工作职责可以总结为:负责监督、审查、调查和预防,旨在维护公司内部的合法合规运作,确保公司各项工作按照规定进行,并且实现高效且道德的目标。
公司行政监察员在工作中必须具备的能力:第一,熟悉公司制度和法规,具备较强的法律法规意识;第二,具备优秀的沟通协调能力和团队合作精神;第三,具有分析问题和解决问题的能力;第四,勇于担当,能够独立处理复杂情况。
总的来说,作为公司行政监察员,要根据公司的具体情况和要求,细化工作职责,做到深入了解公司的运作模式和政策执行情况,全面提高公司内部管理效率和合规水平,为公司的长期发展保驾护航。
市中区天星路36号。乐山市监察局属市政府序列,在市政府和省监察厅领导下,按照《中华人民共和国行政监察法》的规定开展工作。市纪委机关和市监察局合署办公,实行一套工作机构,两个机关名称的体制,履行党的纪律检查和政府行政监察两种职能,对市委、市政府和省纪委、省监察厅全面负责。
(一)国务院各部门及其公务员;(二)国务院及国务院各部门任命的其他人员;(三)省、自治区、直辖市人民政府及其领导人员。第十六条县级以上地方各级人民政府监察机关对下列机关和人员实施监察:(一)本级人民政府各部门及其公务员;(二)本级人民政府及本级人民政府各部门任命的其他人员;(三)下一级人民政府及其领导人员。县、自治县、不设区的市、市辖区人民政府监察机关还对本辖区所属的乡、民族乡、镇人民政府的公务员以及乡、民族乡、镇人民政府任命的其他人员实施监察。第十七条上级监察机关可以办理下一级监察机关管辖范围内的监察事项;必要时也可以办理所辖各级监察机关管辖范围内的监察事项。
之前看了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());
}
}
1. 请介绍一下WebGIS的概念和作用,以及在实际应用中的优势和挑战。
WebGIS是一种基于Web技术的地理信息系统,通过将地理数据和功能以可视化的方式呈现在Web浏览器中,实现地理空间数据的共享和分析。它可以用于地图浏览、空间查询、地理分析等多种应用场景。WebGIS的优势包括易于访问、跨平台、实时更新、可定制性强等,但也面临着数据安全性、性能优化、用户体验等挑战。
2. 请谈谈您在WebGIS开发方面的经验和技能。
我在WebGIS开发方面有丰富的经验和技能。我熟悉常用的WebGIS开发框架和工具,如ArcGIS API for JavaScript、Leaflet、OpenLayers等。我能够使用HTML、CSS和JavaScript等前端技术进行地图展示和交互设计,并能够使用后端技术如Python、Java等进行地理数据处理和分析。我还具备数据库管理和地理空间数据建模的能力,能够设计和优化WebGIS系统的架构。
3. 请描述一下您在以往项目中使用WebGIS解决的具体问题和取得的成果。
在以往的项目中,我使用WebGIS解决了许多具体问题并取得了显著的成果。例如,在一次城市规划项目中,我开发了一个基于WebGIS的交通流量分析系统,帮助规划师们评估不同交通方案的效果。另外,在一次环境监测项目中,我使用WebGIS技术实现了实时的空气质量监测和预警系统,提供了准确的空气质量数据和可视化的分析结果,帮助政府和公众做出相应的决策。
4. 请谈谈您对WebGIS未来发展的看法和期望。
我认为WebGIS在未来会继续发展壮大。随着云计算、大数据和人工智能等技术的不断进步,WebGIS将能够处理更大规模的地理数据、提供更丰富的地理分析功能,并与其他领域的技术进行深度融合。我期望未来的WebGIS能够更加智能化、个性化,为用户提供更好的地理信息服务,助力各行各业的决策和发展。