Search in sources :

Example 6 with Keyword

use of org.ansj.app.keyword.Keyword in project ansj_seg by NLPchina.

the class TagWordDemo method main.

public static void main(String[] args) {
    TagContent tw = new TagContent("<begin>", "<end>");
    String content = "台湾两岸共同市场基金会代表团12312   不断推动两岸关";
    List<Keyword> keyWords = new ArrayList<Keyword>();
    keyWords.add(new Keyword("两岸关系", 1.0));
    keyWords.add(new Keyword("两岸", 1.0));
    keyWords.add(new Keyword("李克强", 1.0));
    keyWords.add(new Keyword("博鳌", 1.0));
    keyWords.add(new Keyword("12", 1.0));
    System.out.println(tw.tagContent(keyWords, content));
    ;
}
Also used : Keyword(org.ansj.app.keyword.Keyword) ArrayList(java.util.ArrayList) TagContent(org.ansj.app.summary.TagContent)

Example 7 with Keyword

use of org.ansj.app.keyword.Keyword in project ansj_seg by NLPchina.

the class KeyWordCompuerDemo method main.

public static void main(String[] args) {
    KeyWordComputer kwc = new KeyWordComputer(20);
    String title = "中国海上搜救中心确定中国搜救船舶搜救方案";
    String content = " \n \n中新网北京3月10日电 10日上午,中国海上搜救中心组织召开马航失联客机海上搜救紧急会商会议,中国交通运输部副部长、中国海上搜救中心主任何建中对当前搜救工作做出部署:一要加强与马来西亚等多方搜救组织的沟通协调;二要根据搜救现场情况进一步完善搜救方案;三要加强信息交流共享,做好内外联动。 \n \n马航客机失联事件发生后,交通运输部启动一级应急响应,3月8日、9日4次召开马航失联客机应急反应领导小组工作会议,研判形势,部署搜寻工作。根据《国家海上搜救和重大海上溢油应急处置紧急会商工作制度》,交通运输部、国家海洋局、中国海警局、总参、海军等共同研究制定了中国船舶及航空器赴马航客机失联海域搜救方案,初步明确了“海巡31”、“南海救101”、“南海救115”、中国海警3411、海军528和999舰等6艘中国搜救船舶的海上搜救区域。 \n \n截至3月10日8时,中国海军528舰和中国海警3411舰已在相关区域开展搜救工作,预计交通运输部所属“南海救115”、“海巡31”轮、“南海救101”将先后于10日16时、11时17时、11日22时抵达马航客机疑似失联海域。中国海上搜救中心已将有关情况通报马来西亚海上搜救机构,并将与马来西亚、越南海上搜救机构保持密切联系,开展深度配合。同时,继续协调中国商船参与搜救。(完)(周音)";
    Collection<Keyword> result = kwc.computeArticleTfidf(title, content);
    System.out.println(result);
}
Also used : Keyword(org.ansj.app.keyword.Keyword) KeyWordComputer(org.ansj.app.keyword.KeyWordComputer)

Example 8 with Keyword

use of org.ansj.app.keyword.Keyword in project ansj_seg by NLPchina.

the class SummaryComputer method explan.

/**
	 * 计算摘要
	 * 
	 * @param keyword
	 * @param content
	 * @return
	 */
private Summary explan(List<Keyword> keywords, String content) {
    SmartForest<Double> sf = new SmartForest<Double>();
    for (Keyword keyword : keywords) {
        sf.add(keyword.getName(), keyword.getScore());
    }
    // 先断句
    List<Sentence> sentences = toSentenceList(content.toCharArray());
    for (Sentence sentence : sentences) {
        computeScore(sentence, sf);
    }
    double maxScore = 0;
    int maxIndex = 0;
    MapCount<String> mc = new MapCount<>();
    for (int i = 0; i < sentences.size(); i++) {
        double tempScore = sentences.get(i).score;
        int tempLength = sentences.get(i).value.length();
        mc.addAll(sentences.get(i).mc.get());
        if (tempLength >= len) {
            tempScore = tempScore * mc.get().size();
            if (maxScore < tempScore) {
                maxScore = tempScore;
                maxIndex = i;
                continue;
            }
            mc.get().clear();
        }
        for (int j = i + 1; j < sentences.size(); j++) {
            tempScore += sentences.get(j).score;
            tempLength += sentences.get(j).value.length();
            mc.addAll(sentences.get(j).mc.get());
            if (tempLength >= len) {
                tempScore = tempScore * mc.get().size();
                if (maxScore < tempScore) {
                    maxScore = tempScore;
                    maxIndex = i;
                }
                mc.get().clear();
                break;
            }
        }
        if (tempLength < len) {
            tempScore = tempScore * mc.get().size();
            if (maxScore < tempScore) {
                maxScore = tempScore;
                maxIndex = i;
                break;
            }
            mc.get().clear();
        }
    }
    StringBuilder sb = new StringBuilder();
    for (int i = maxIndex; i < sentences.size(); i++) {
        sb.append(sentences.get(i).value);
        if (sb.length() > len) {
            break;
        }
    }
    String summaryStr = sb.toString();
    if (isSplitSummary && sb.length() > len) {
        double value = len;
        StringBuilder newSummary = new StringBuilder();
        char c = 0;
        for (int i = 0; i < sb.length(); i++) {
            c = sb.charAt(i);
            if (c < 256) {
                value -= 0.5;
            } else {
                value -= 1;
            }
            if (value < 0) {
                break;
            }
            newSummary.append(c);
        }
        summaryStr = newSummary.toString();
    }
    return new Summary(keywords, summaryStr);
}
Also used : Keyword(org.ansj.app.keyword.Keyword) MapCount(org.nlpcn.commons.lang.util.MapCount) SmartForest(org.nlpcn.commons.lang.tire.domain.SmartForest) Summary(org.ansj.app.summary.pojo.Summary)

Example 9 with Keyword

use of org.ansj.app.keyword.Keyword in project ansj_seg by NLPchina.

the class TagContentTest method test.

@Test
public void test() {
    String query = "信息公开 工作要点";
    String content = "国务院办公厅关于印发\n" + "2015年政府信息公开工作要点的通知\n" + "国办发〔2015〕22号\n" + "\n" + "各省、自治区、直辖市人民政府,国务院各部委、各直属机构:\n" + "  《2015年政府信息公开工作要点》已经国务院同意,现印发给你们,请结合实际认真贯彻落实。\n" + "\n" + "                             国务院办公厅\n" + "                             2015年4月3日\n" + "\n" + "  (此件公开发布)\n" + "\n" + " \n" + "\n" + "2015年政府信息公开工作要点\n" + "\n" + "  2015年是全面深化改革的关键之年,是全面推进依法治国的开局之年。做好今年政府信息公开工作的总体要求是:深入贯彻党的十八大和十八届二中、三中、四中全会精神,认真落实《中华人民共和国政府信息公开条例》(以下简称《条例》),紧紧围绕党和政府中心工作以及公众关切,推进重点领域信息公开,加强信息发布、解读和回应工作,强化制度机制和平台建设,不断增强政府信息公开实效,进一步提高政府公信力,使政府信息公开工作更好地服务于经济社会发展,促进法治政府、创新政府、廉洁政府和服务型政府建设。\n" + "  一、推进重点领域信息公开\n" + "  继续做好安全生产、就业、财政审计、科技管理和项目经费、价格和收费、信用等领域信息公开,进一步扩大公开范围,细化公开内容。同时,推进以下领域信息公开工作:\n" + "  (一)推进行政权力清单公开。进一步推进国务院部门行政审批项目取消、下放以及非行政许可审批事项清理等信息的公开。推行地方各级政府工作部门权力清单制度,依法向社会公开政府部门的行政职权及其法律依据、实施主体、运行流程、监督方式等信息。对于承担的行政审批事项,均要发布服务指南,列明设定依据、申请条件、申请材料、基本流程、审批时限、收费依据及标准、审批决定证件、年检要求、注意事项等内容。除涉及国家秘密、商业秘密或个人隐私外,所有行政审批事项的受理、进展情况、结果等信息均应公开。(国务院审改办牵头落实)\n" + "  (二)推进财政资金信息公开。及时公开经批准的预算、预算调整、决算、预算执行情况报告及报表,并对财政转移支付安排、执行情况以及举借债务情况等重要事项作出说明。做好中央和地方部门预决算公开,积极推进预算绩效信息和国有资产占用情况公开。细化预决算公开内容,各级政府及部门预决算在公开到支出功能分类项级科目的基础上,一般公共预算基本支出逐步公开到经济分类款级科目,对下专项转移支付预决算公开到具体项目,并公开分地区的税收返还、一般性转移支付和专项转移支付情况。“三公”经费决算公开应细化说明因公出国(境)团组数及人数,公务用车购置数及保有量,国内公务接待的批次、人数,以及“三公”经费增减变化原因等信息。及时完整公开政府采购项目信息、采购文件、中标或成交结果、采购合同、投诉处理结果等。按照地方政府债券发行有关规定,及时准确披露相关信息。(财政部牵头落实)\n" + "  (三)推进公共资源配置信息公开。一是做好城镇保障性安居工程特别是棚户区改造建设项目信息、保障性住房分配信息公开工作。定期公开住房公积金管理运行情况,及时公开推进工程质量治理行动的进展情况。(住房城乡建设部牵头落实)二是做好土地供应计划、出让公告、成交公示和供应结果公开工作,重点公开棚户区改造用地年度供应计划、供地时序、宗地规划条件和土地使用要求。推进全国范围的征地信息公开平台建设,及时公开征地政策和征地信息。(国土资源部牵头落实)三是全面做好国有土地上房屋征收决定、补助奖励政策和标准、初步评估结果、补偿方案、补偿标准、补偿结果等公开工作。(住房城乡建设部牵头落实)\n" + "  (四)推进重大建设项目信息公开。重点围绕铁路、城市基础设施、节能环保、农林水、土地整治等涉及公共利益和民生领域的政府投资项目,推进审批、核准、备案等项目信息的公开,做好项目基本信息和招投标、重大设计变更、施工管理、合同履约、质量安全检查、资金管理、验收等项目实施信息的公开工作。(国务院相关部门分别落实)\n" + "  (五)推进公共服务信息公开。一是做好社会保险信息公开。定期向社会公开各项社会保险参保情况、待遇支付情况和水平,社会保险基金收支、结余和收益情况等信息。及时发布基本医疗保险、工伤保险和生育保险药品目录,以及基本医疗保险、工伤保险诊疗项目范围、辅助器具目录等信息。(人力资源社会保障部、卫生计生委分别落实)二是推进社会救助信息公开。重点做好城乡低保、特困人员供养、医疗救助、临时救助等信息公开工作;实行救助实施过程公开,加大救助对象人数、救助标准、补助水平和资金支出等信息公开力度。(民政部牵头落实)三是推进教育领域信息公开。全面实施高校招生“阳光工程”,推动高校重点做好录取程序、咨询及申诉渠道、重大事件违规处理结果、录取新生复查结果等信息公开工作,及时公开高校自主招生办法、考核程序和录取结果,全面实行考试加分考生资格公示工作。推动高校制定财务公开制度,加大高校财务公开力度。(教育部牵头落实)四是深化医疗卫生领域信息公开。做好法定传染病和重大突发公共卫生事件的信息公开,推动各类医疗机构健全信息公开目录,全面公开医疗服务、价格、收费等信息。(卫生计生委牵头落实)\n" + "  (六)推进国有企业信息公开。做好国有企业主要财务指标、整体运行情况、业绩考核结果等信息公开工作,加大国有资产保值增值、改革重组、负责人职务变动及招聘等信息公开力度。参照有关监督机构及上市公司监事会信息披露的做法,公开监事会对中央企业监督检查情况。研究制定国有企业财务信息公开指导意见,明确公开范围、内容、程序、工作要求等,进一步推动国有企业公开财务信息,推动各级履行出资人职责机构公开国有企业财务汇总信息。研究制定推进中央企业信息公开工作指导意见。(国资委牵头落实)\n" + "  (七)推进环境保护信息公开。进一步推进空气质量、水环境质量、污染物排放、污染源、建设项目环评等信息公开,做好环境重点监管对象名录和区域环境质量状况公开工作。加大环境执法检查依据、内容、标准、程序和结果公开力度。公开群众举报投诉重点环境问题处理情况,违法违规单位及其法定代表人名单和处理、整改情况。加强突发环境事件信息公开,及时公布应对情况及调查结果。推进核与辐射安全信息公开,重点公开核电厂核与辐射安全审批信息和辐射环境质量信息。(环境保护部牵头落实)\n" + "  (八)推进食品药品安全信息公开。做好食品药品重大监管政策信息、产生重大影响的食品药品典型案件,以及食品安全监督抽检、药品监督抽验信息公开工作。及时发布网上非法售药整治等专项行动信息和保健食品消费警示信息。(食品药品监管总局牵头落实)\n" + "  (九)推进社会组织、中介机构信息公开。加大社会组织成立、变更、注销、评估、年检结果、查处结果等信息公开力度。制定社会团体和民办非企业单位信息公开管理办法,推动服务、收费等事项公开。建立行政审批前置服务项目信息公开制度,公开提供服务的社会组织和中介机构名称、经营地址、资质状况等基本信息,以及实行政府定价或政府指导价的收费标准,方便企业和公众选择。推动慈善组织信息公开。(民政部、国务院其他有关部门分别落实)\n" + "  二、全面加强主动公开工作\n" + "  (一)进一步拓展主动公开内容。对于行政决策、执行、管理、服务、结果方面的信息,坚持以公开为常态、不公开为例外原则,依法依规做好公开工作。要对本地区本部门政府信息进行梳理,进一步细化主动公开范围和公开目录,并动态更新。对制作形成或在履行职责中获取的政府信息,严格落实公开属性源头认定机制,依法依规明确公开属性,确定为依申请公开或不予公开的,应当说明理由。涉及公民、法人或其他组织权利和义务的规范性文件,都要按《条例》规定全面、准确、及时做好公开工作。积极稳妥推进政府数据公开,鼓励和推动企业、第三方机构、个人等对公共数据进行深入分析和应用。\n" + "  (二)加大政策解读回应力度。对涉及面广、社会关注度高或专业性较强的重要政策法规,要同步制定解读方案,加强议题设置,通过发布权威解读稿件、组织专家撰写解读文章等多种方式,及时做好科学解读,有效开展舆论引导。适应网络传播特点,更多运用图片、图表、图解、视频等可视化方式,增强政策解读效果。健全政务舆情收集、研判和回应机制,对涉及本地区本部门的重要政务舆情、重大突发事件等热点问题,要依法按程序第一时间通过网上发布信息、召开新闻发布会、接受媒体采访等方式予以回应,并根据工作进展持续发布动态信息。回应力求表达准确、亲切、自然,为群众提供客观、可感、可信的信息,发挥正面引导作用。\n" + "  (三)发挥各类信息公开平台和渠道作用。统筹运用新闻发言人、政府网站、政府公报、政务微博微信发布信息,充分发挥广播电视、报刊、新闻网站、商业网站和政务服务中心的作用,扩大发布信息的受众面、提高影响力。特别要适应传播对象化分众化趋势以及新兴媒体平等交流、互动传播的特点,更好地运用新技术、新手段,注重用户体验和信息需求,扩大政府信息传播范围,提高信息到达率。加强不同平台和渠道发布信息的衔接协调,确保公开内容准确、一致。\n" + "  三、强化依申请公开管理和服务\n" + "  建立健全政府信息公开申请接收、登记、办理、审核、答复、归档等环节的制度规范。进一步拓展依申请公开受理渠道,更好地发挥互联网和各级政务服务中心的作用,为申请人提供便捷服务。强化政府信息公开场所的管理和服务,明确工作标准,做好现场解疑释惑工作。严格按照法定时限履行答复程序,制定统一规范的答复格式,推行申请答复文书的标准化文本,依法依规做好答复工作。探索建立依申请公开促进依法行政的机制,及时总结依申请公开工作中发现的依法行政方面的问题,加强跟踪调研,提出工作建议。及时梳理本单位本系统信息公开申请情况,按照申请内容、答复情况等进行分类管理,加强研究分析,促进工作水平不断提升。\n" + "  四、建立健全制度机制\n" + "  完善政府信息公开指南,各级行政机关年内要对本行政机关的公开指南进行复查,内容缺失或者更新不及时的,及时完善相关内容。做好信息公开统计工作,加强统计数据分析和运用。加强信息公开年度报告编制和发布工作,在《条例》规定基础上,进一步充实重点领域信息公开、政策解读回应、依申请公开工作详细情况、政府信息公开统计数据、建议提案办理结果公开等内容,并采用公众喜闻乐见的形式予以展现。加强信息公开保密审查制度建设,对拟公开的政府信息,要依法依规做好保密审查。建立健全政府信息公开工作考核评议制度,强化问责制度,定期开展社会调查评议,了解社情民意,不断改进公开工作。建立政府信息公开举报办理工作制度,强化信息公开工作主管部门的监督职责,对经举报查实的有关问题,要严格依据《条例》规定进行处理。地方和部门可根据工作需要在信息公开领域建立政府法律顾问制度,发挥法律顾问专业优势,提高信息公开专业化、法制化水平。\n" + "  五、加强组织领导和机构队伍建设\n" + "  各地区各部门要把政府信息公开工作纳入重要议事日程,与经济社会管理工作紧密结合,同步研究、同步部署、同步推进,主要负责同志要主动听取公开工作情况汇报,研究解决突出问题,同时明确一位负责同志分管公开工作。要理顺工作关系,减少职能交叉,加强专门机构建设和人员配备,统筹做好信息公开、政策解读、舆情处置、政府网站、政务微博微信和政府公报等工作,并在经费、设备等方面提供必要保障。把信息公开列入公务员培训科目,加大各级政府尤其是市、县级政府相关工作人员培训力度,不断提升工作能力和水平。\n" + "  各地区各部门要制定本工作要点分解细化方案,明确分工,加强督导,确保各项任务落实到位。落实情况要纳入政府信息公开工作年度报告并向社会公布,接受公众监督。国务院办公厅适时对本工作要点落实情况进行督查,并组织开展第三方评估。";
    SummaryComputer sc = new SummaryComputer(300, true, null, content);
    TagContent tc = new TagContent("<begin>", "<end>");
    String[] split = query.split(" ");
    List<Keyword> keywords = new ArrayList<Keyword>();
    for (String kw : split) {
        if (!StringUtil.isBlank(kw)) {
            keywords.add(new Keyword(kw, 100.0d * kw.length()));
        }
    }
    String tagContent = tc.tagContent(sc.toSummary(keywords));
    System.out.println(tagContent);
}
Also used : Keyword(org.ansj.app.keyword.Keyword) ArrayList(java.util.ArrayList) Test(org.junit.Test)

Example 10 with Keyword

use of org.ansj.app.keyword.Keyword in project ansj_seg by NLPchina.

the class TagContentTest method englishWordTest.

@Test
public void englishWordTest() {
    String query = "plasma";
    String content = "Aerodynamic Control of High Performance Aircraft Using Pulsed Plasma Actuators";
    SummaryComputer sc = new SummaryComputer(200, true, null, content);
    TagContent tc = new TagContent("<begin>", "<end>");
    String[] split = query.split(" ");
    List<Keyword> keywords = new ArrayList<Keyword>();
    for (String kw : split) {
        if (!StringUtil.isBlank(kw)) {
            keywords.add(new Keyword(kw, 100.0d * kw.length()));
        }
    }
    String tagContent = tc.tagContent(sc.toSummary(keywords));
    System.out.println(tagContent);
}
Also used : Keyword(org.ansj.app.keyword.Keyword) ArrayList(java.util.ArrayList) Test(org.junit.Test)

Aggregations

Keyword (org.ansj.app.keyword.Keyword)11 ArrayList (java.util.ArrayList)7 Test (org.junit.Test)5 KeyWordComputer (org.ansj.app.keyword.KeyWordComputer)2 TagContent (org.ansj.app.summary.TagContent)2 SmartForest (org.nlpcn.commons.lang.tire.domain.SmartForest)2 Summary (org.ansj.app.summary.pojo.Summary)1 Term (org.ansj.domain.Term)1 SmartGetWord (org.nlpcn.commons.lang.tire.SmartGetWord)1 MapCount (org.nlpcn.commons.lang.util.MapCount)1