精华内容
下载资源
问答
  • JAVA语言的关键字提取问题
    2021-02-28 15:14:18

    展开全部

    能力有限用个最笨的办法了62616964757a686964616fe59b9ee7ad9431333365653163public String matchName(String filePath){

    BufferedReader reader = new BufferedReader(new FileReader(filePath));

    // 读取文本

    StringBuffer sb = new StringBuffer();

    String str;

    while (null!=(str = reader.readLine())) {

    sb.append(str);

    sb.append("\r\n");

    }

    String rex = "项目名称";

    String totalStr = sb.toString();

    // 获取rex第一次出现的位置

    int first = totalStr.indexOf(rex);

    // 从该位置截取30长度的字符串

    String result = totalStr.substring(first, first+30);

    // 返回第一行

    return result.split("\r\n")[0];

    }

    更多相关内容
  • 提取Java关键字

    2021-02-27 22:41:25
    展开全部我写了个Keywords.java类,代62616964757a686964616fe78988e69d8331333262356132码如下:*************************************************************importjava.awt.BorderLayout;importjava.awt....

    展开全部

    我写了个Keywords.java类,代62616964757a686964616fe78988e69d8331333262356132码如下:

    *************************************************************

    import java.awt.BorderLayout;

    import java.awt.Dimension;

    import java.awt.FlowLayout;

    import java.awt.GridLayout;

    import java.awt.Toolkit;

    import java.awt.event.ActionEvent;

    import java.awt.event.ActionListener;

    import java.io.BufferedReader;

    import java.io.File;

    import java.io.FileNotFoundException;

    import java.io.FileReader;

    import java.io.IOException;

    import java.util.StringTokenizer;

    import javax.swing.BorderFactory;

    import javax.swing.JButton;

    import javax.swing.JFileChooser;

    import javax.swing.JFrame;

    import javax.swing.JPanel;

    import javax.swing.JScrollPane;

    import javax.swing.JTextArea;

    import javax.swing.UIManager;

    public class Keywords extends JFrame {

    String[] keywords = { "abstract", "boolean", "break", "byte", "case",

    "catch", "char", "class", "continue", "default", "do", "double",

    "else", "extends", "false", "final", "finally", "float", "for",

    "if", "implements", "import", "instanceof", "int", "interface",

    "long", "native", "new", "null", "package", "private", "protected",

    "public", "return", "short", "static", "super", "switch",

    "synchronized", "this", "throw", "throws", "transient", "true",

    "try", "void", "volatile", "while", "const", "goto" };

    JTextArea text;

    JTextArea result;

    public Keywords() {

    this.setTitle("计算关键字数");

    // 文本框

    text = new JTextArea(6, 50);

    text.setLineWrap(true);

    JScrollPane textScroll = new JScrollPane(text);

    text.setBorder(BorderFactory.createBevelBorder(1));

    JPanel textPanel = new JPanel(new BorderLayout());

    textPanel.setBorder(BorderFactory.createTitledBorder("导入的文本"));

    textPanel.add(textScroll);

    // 结果框

    result = new JTextArea(6, 50);

    result.setLineWrap(true);

    JScrollPane resultScroll = new JScrollPane(result);

    result.setBorder(BorderFactory.createBevelBorder(1));

    JPanel resultPanel = new JPanel(new BorderLayout());

    resultPanel.setBorder(BorderFactory.createTitledBorder("计算结果"));

    resultPanel.add(resultScroll);

    // 导入文本和结果框

    JPanel allPanel = new JPanel();

    allPanel.setLayout(new GridLayout(2, 1));

    allPanel.add(textPanel);

    allPanel.add(resultPanel);

    // 按钮

    JButton impButton = new JButton("导入文本");

    JButton calcButton = new JButton("计算关键字数");

    JPanel buttonPanel = new JPanel(new FlowLayout());

    buttonPanel.add(impButton);

    buttonPanel.add(calcButton);

    // 添加

    this.add(allPanel, BorderLayout.CENTER);

    this.add(buttonPanel, BorderLayout.SOUTH);

    // this.setSize(400, 300);

    this.pack();

    Toolkit tool = Toolkit.getDefaultToolkit();

    Dimension screen = tool.getScreenSize();

    this.setLocation(screen.width / 2 - this.getWidth() / 2, screen.height

    / 2 - this.getHeight() / 2);

    this.setVisible(true);

    this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

    // 导入文本

    impButton.addActionListener(new ActionListener() {

    public void actionPerformed(ActionEvent e) {

    writeText();

    }

    });

    // 计算关键字数

    calcButton.addActionListener(new ActionListener() {

    public void actionPerformed(ActionEvent e) {

    // for(String ss : s) {

    // System.out.println(ss);

    // }

    String[] start = text.getText().trim().split("\n");

    System.out.println("start: " + start.length);

    // String[] rets = new String[start.length];

    StringBuffer ret = new StringBuffer();

    for (int i = 0; i 

    StringTokenizer st = new StringTokenizer(start[i]);

    int n = 0;

    while (st.hasMoreTokens()) {

    String comp = st.nextToken();

    for (String s : keywords) {

    if (s.equals(comp)) {

    n++;

    if (n == 1) {

    ret.append(i + ": ");

    ret.append(s);

    } else {

    ret.append(", " + s);

    }

    }

    }

    }

    if (n != 0) {

    ret.append("\n");

    }

    }

    result.setText(ret.toString().trim());

    }

    });

    }

    // 导入文本

    public void writeText() {

    try {

    JFileChooser chooser = new JFileChooser();

    chooser.showOpenDialog(this);

    File file = chooser.getSelectedFile();

    BufferedReader br = new BufferedReader(new FileReader(file));

    String s;

    text.setText("");

    while ((s = br.readLine()) != null) {

    text.append(s + "\n");

    }

    text.setText(text.getText().trim());

    System.out.println(text.getText());

    } catch (FileNotFoundException e) {

    e.printStackTrace();

    } catch (IOException e2) {

    e2.printStackTrace();

    }

    }

    public static void main(String[] args) throws Exception {

    UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());

    new Keywords();

    }

    }

    *************************************************************

    运行结果如下:

    165ab52711eae8d5f789cada131c8b40.png

    展开全文
  • java提取文章关键字

    2017-11-24 13:31:49
    java提取文章关键字,可随意更改提取关键字的个数、规则,内置jar包,下载即可运行
  • 关键字提取

    2018-02-22 11:46:23
    java文章关键字提取 java文章关键字提取 java文章关键字提取 重要的事件说三遍
  • 主要介绍了Java编程实现提取文章中关键字的方法,较为详细的分析了Java提取文章关键字的原理与具体实现技巧,具有一定参考借鉴价值,需要的朋友可以参考下
  • 文本关键字提取

    2018-05-21 16:30:33
    文本关键字提取,需要自建知识库,采用文本处理等方式
  • 提取关键词(Java版)

    2015-08-18 14:58:06
    Java编写的提取一篇文章中的关键词的程序,使用TF-IDF算法提取文章中的关键词,使用Java原生sdk实现,可以运行。
  • 要求对一个 Java 程序进行简单的词法分析,找出其中用到的关键字、变量类型、变量名、方 法名以及操作运算符,并分别打印出来。 注意 考虑如果 (、{ 字符与关键字或变量名相连的情况下该怎么处理,尽可能将代码写...

    实验要求

    要求对一个 Java 程序进行简单的词法分析,找出其中用到的关键字、变量类型、变量名、方
    法名以及操作运算符,并分别打印出来。
    注意
    考虑如果 (、{ 字符与关键字或变量名相连的情况下该怎么处理,尽可能将代码写完善。

    挺简单的,用正则一下就出来了,直接放代码吧
    基本上都考虑到了吧qaq,方法的话默认大家都用public了,不考虑其他情况

    package exp03;
    import java.io.BufferedInputStream;
    import java.io.FileInputStream;
    import java.util.regex.Matcher;
    import java.util.regex.Pattern;
    
    public class CodeAnalysis {
        public static void main(String[] args) {
            String fileName = "C:\\Users\\CrazyBin\\IdeaProjects\\Exp03\\src\\exp03\\codeDemo";
            String regexKeyWords = "abstract|assert|boolean|break|case|catch|"
                    + "class|const|continue|default|do|double|else"
                    + "|extends|false|final|finally|for|goto|if|implements|"
                    + "import|instanceof|interface|native|new|null|"
                    + "package|privat|protected|public|return|static|"
                    + "strictfp|super|switch|synchronized|this|throw|throws|true|"
                    + "transient|try|void|volatile|while";
            String regexVariableType = "int|double|float|enum|long|byte|boolean|char|String|short";
            String regexMethod = "(public\\s+)?(static\\s+)?\\w+(\\[\\])?\\s+\\w+(\\s)?\\((\\w+(\\[\\])?\\s+\\w+(\\s+)?\\,)*(\\w+(\\[\\])?\\s+\\w+)?(\\s+)*\\)\\s{1}";
            String regexVariable = "(private\\s+)?(static\\s+)?(int|double|float|enum|long|byte|boolean|char|String|short)(\\[\\])?\\s+\\S";
            String regexOperator = "(\\+|\\-|\\*|\\/)";
            StringBuilder stringBuilder = new StringBuilder();
            try {
                FileInputStream inputStream = new FileInputStream(fileName);
                BufferedInputStream bufferedInputStream = new BufferedInputStream(inputStream);
                int temp = 0;
                while (temp != -1) {
                    temp = bufferedInputStream.read();
                    stringBuilder.append((char) temp);
                }
                System.err.println("程序的关键字,变量类型,方法,变量名,操作符统计如下:");
                bufferedInputStream.close();
                inputStream.close();
                search(regexKeyWords,stringBuilder);
                search(regexVariableType,stringBuilder);
                search(regexMethod,stringBuilder);
                search(regexVariable,stringBuilder);
                search(regexOperator,stringBuilder);
    
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
        public static void search(String regex,StringBuilder stringBuilder)
        {
            Pattern pattern=Pattern.compile(regex);
            Matcher matcher=pattern.matcher(stringBuilder);
            while(matcher.find())
            {
                System.out.println(matcher.group());
            }
        }
    }
    
    
    

    运行截图
    在这里插入图片描述

    截了一部分

    展开全文
  • java统计关键字个数

    2018-08-03 10:39:57
    通过args传参,读取文件,统计java代码中的关键字个数
  • 快速自动关键字提取 (RAKE) 算法的 Java 8 实现,如:Rose, S.、Engel, D.、Cramer, N. 和 Cowley, W. (2010) 中所述。 从单个文档中自动提取关键字。 在 MW Berry & J. Kogan(编辑),文本挖掘:理论和应用:John ...
  • 快速自动关键字提取(RAKE) RAKE是一种算法,用于从文档中提取与文档内容具有高度相关性或重要性的关键字(从技术上讲是短语,但我不质疑科学文献)。 例如,文本中的前五个重要关键字: 线性约束系统在自然数集...
  • 增加了关键字提取 Java API。 原来的只有命令行工具。 ##用法 ###Preparing Wikipedia Miner Maui 2.0 依赖于 ,这需要用户建立维基百科摘要数据库。 关于如何设置 Wikipedia Miner 1.2 的说明位于 。 如果您...
  • 中文分词+关键字提取

    2017-10-02 21:07:56
    1:中文分词 2:词频统计 3:罗列出要自动提取关键字 ---------------------------------------- 具有60 万字/秒的高速处理能力。
  • JAVA淘宝关键字提取

    2013-01-08 15:30:52
    淘宝关键字提取 from 天猫大全
  • TextRank算法提取关键词的Java实现

    千次阅读 2016-10-26 10:31:34
    TextRank算法提取关键词的Java实现

    http://www.hankcs.com/nlp/textrank-algorithm-to-extract-the-keywords-java-implementation.html

    谈起自动摘要算法,常见的并且最易实现的当属TF-IDF,但是感觉TF-IDF效果一般,不如TextRank好。

    TextRank是在Google的PageRank算法启发下,针对文本里的句子设计的权重算法,目标是自动摘要。它利用投票的原理,让每一个单词给它的邻居(术语称窗口)投赞成票,票的权重取决于自己的票数。这是一个“先有鸡还是先有蛋”的悖论,PageRank采用矩阵迭代收敛的方式解决了这个悖论。TextRank也不例外:

    PageRank的计算公式:

    正规的TextRank公式

    正规的TextRank公式在PageRank的公式的基础上,引入了边的权值的概念,代表两个句子的相似度。

    但是很明显我只想计算关键字,如果把一个单词视为一个句子的话,那么所有句子(单词)构成的边的权重都是0(没有交集,没有相似性),所以分子分母的权值w约掉了,算法退化为PageRank。所以说,这里称关键字提取算法为PageRank也不为过。

    另外,如果你想提取关键句(自动摘要)的话,请参考姊妹篇《TextRank算法自动摘要的Java实现》。

    TextRank的Java实现

    先看看测试数据:

    程序员(英文Programmer)是从事程序开发、维护的专业人员。一般将程序员分为程序设计人员和程序编码人员,但两者的界限并不非常清楚,特别是在中国。软件从业人员分为初级程序员、高级程序员、系统分析员和项目经理四大类。

    我取出了百度百科关于“程序员”的定义作为测试用例,很明显,这段定义的关键字应当是“程序员”并且“程序员”的得分应当最高。

    首先对这句话分词,这里可以借助各种分词项目,比如HanLP分词,得出分词结果:

    [程序员/n, (, 英文/nz, programmer/en, ), 是/v, 从事/v, 程序/n, 开发/v, 、/w, 维护/v, 的/uj, 专业/n, 人员/n, 。/w, 一般/a, 将/d, 程序员/n, 分为/v, 程序/n, 设计/vn, 人员/n, 和/c, 程序/n, 编码/n, 人员/n, ,/w, 但/c, 两者/r, 的/uj, 界限/n, 并/c, 不/d, 非常/d, 清楚/a, ,/w, 特别/d, 是/v, 在/p, 中国/ns, 。/w, 软件/n, 从业/b, 人员/n, 分为/v, 初级/b, 程序员/n, 、/w, 高级/a, 程序员/n, 、/w, 系统/n, 分析员/n, 和/c, 项目/n, 经理/n, 四/m, 大/a, 类/q, 。/w]

    然后去掉里面的停用词,这里我去掉了标点符号、常用词、以及“名词、动词、形容词、副词之外的词”。得出实际有用的词语:

    [程序员, 英文, 程序, 开发, 维护, 专业, 人员, 程序员, 分为, 程序, 设计, 人员, 程序, 编码, 人员, 界限, 特别, 中国, 软件, 人员, 分为, 程序员, 高级, 程序员, 系统, 分析员, 项目, 经理]

    之后建立两个大小为5的窗口,每个单词将票投给它身前身后距离5以内的单词:

    {开发=[专业, 程序员, 维护, 英文, 程序, 人员],

     软件=[程序员, 分为, 界限, 高级, 中国, 特别, 人员],

     程序员=[开发, 软件, 分析员, 维护, 系统, 项目, 经理, 分为, 英文, 程序, 专业, 设计, 高级, 人员, 中国],

     分析员=[程序员, 系统, 项目, 经理, 高级],

     维护=[专业, 开发, 程序员, 分为, 英文, 程序, 人员],

     系统=[程序员, 分析员, 项目, 经理, 分为, 高级],

     项目=[程序员, 分析员, 系统, 经理, 高级],

     经理=[程序员, 分析员, 系统, 项目],

     分为=[专业, 软件, 设计, 程序员, 维护, 系统, 高级, 程序, 中国, 特别, 人员],

     英文=[专业, 开发, 程序员, 维护, 程序],

     程序=[专业, 开发, 设计, 程序员, 编码, 维护, 界限, 分为, 英文, 特别, 人员],

     特别=[软件, 编码, 分为, 界限, 程序, 中国, 人员],

     专业=[开发, 程序员, 维护, 分为, 英文, 程序, 人员],

     设计=[程序员, 编码, 分为, 程序, 人员],

     编码=[设计, 界限, 程序, 中国, 特别, 人员],

     界限=[软件, 编码, 程序, 中国, 特别, 人员],

     高级=[程序员, 软件, 分析员, 系统, 项目, 分为, 人员],

     中国=[程序员, 软件, 编码, 分为, 界限, 特别, 人员],

     人员=[开发, 程序员, 软件, 维护, 分为, 程序, 特别, 专业, 设计, 编码, 界限, 高级, 中国]}

    然后开始迭代投票:

    
      
    1.         for (int i = 0; i < max_iter; ++i)
    2.         {
    3.             Map<String, Float> m = new HashMap<String, Float>();
    4.             float max_diff = 0;
    5.             for (Map.Entry<String, Set<String>> entry : words.entrySet())
    6.             {
    7.                 String key = entry.getKey();
    8.                 Set<String> value = entry.getValue();
    9.                 m.put(key, 1 - d);
    10.                 for (String other : value)
    11.                 {
    12.                     int size = words.get(other).size();
    13.                     if (key.equals(other) || size == 0) continue;
    14.                     m.put(key, m.get(key) + d / size * (score.get(other) == null ? 0 : score.get(other)));
    15.                 }
    16.                 max_diff = Math.max(max_diff, Math.abs(m.get(key) - (score.get(key) == null ? 0 : score.get(key))));
    17.             }
    18.             score = m;
    19.             if (max_diff <= min_diff) break;
    20.         }

    排序后的投票结果:

    [程序员=1.9249977,

    人员=1.6290349,

    分为=1.4027836,

    程序=1.4025855,

    高级=0.9747374,

    软件=0.93525416,

    中国=0.93414587,

    特别=0.93352026,

    维护=0.9321688,

    专业=0.9321688,

    系统=0.885048,

    编码=0.82671607,

    界限=0.82206935,

    开发=0.82074183,

    分析员=0.77101076,

    项目=0.77101076,

    英文=0.7098714,

    设计=0.6992446,

    经理=0.64640945]

    程序员果然荣登榜首,并且分数也有区分度,嗯,勉勉强强。

    开源项目地址

    本文代码已集成到HanLP中开源:http://www.hankcs.com/nlp/hanlp.html

    目前能够提供分词、词性标注、命名实体识别、关键字提取、短语提取、自动摘要、自动推荐,依存关系、句法树等功能。


    展开全文
  • 3种经典查找算法(Java)

    2021-04-22 18:09:55
    /*** 二分查找** @param arr 数组* @param key 待查找关键字* @return 返回折半下标, -1表示不存在该关键字*/public static int binarySearch(int[] arr, int key) {int left = 0, right = arr.length - 1, mid;...
  • 利用java实现爬虫功能,可以爬取新闻网站等,并可以进行敏感词的提取
  • DKPro关键字提取API DKPro密钥短语是基于Apache UIMA Framework和DKPro Core提取密钥短语的软件组件的集合。 该项目由德国达姆施塔特工业大学的无处不在的知识处理实验室(UKP)发起,由Iryna Gurevych博士主持。 ...
  • 从axis.apache.org起基本上,对关键字进行预排序并将其存储在一个数组中,并在关键字上使用Arrays.binarySearch以获得good’ol O(logn)复杂度import java.util.Arrays;public class MainDemo {static final String ...
  • Java关键字使用:private 关键字

    千次阅读 多人点赞 2020-03-16 10:17:43
    private关键字作用: 在这里不用官方的话来解释,说简单一点就是,当你设置了private 变量,你需要注意两点: 你可以对类中的属性进行更加精确、细化的限制 在类 → 对象实例化实现的时候要注意使用一对setter 和 ...
  • 文本关键词提取算法总结

    千次阅读 2021-03-13 00:29:44
    1.TF-IDF昨天给大家演示简单的文本聚类,但要给每个聚类再提取一两个关键词用于表示该聚类。我们还是用TFIDF算法来做,因为这是比较简单的提取特征算法,不过这里的TF是指某词在本聚类内所有文章的词频,而不是本...
  • java PDF关键字定位

    2017-12-14 16:11:47
    java PDF关键字定位,所用jar为itextpdf-5.5.6.jar,jar自己去下载,这里只提供定位方式
  • Jcseg是基于mmseg算法的一个轻量级中文分词器,同时集成了关键字提取,关键短语提取,关键句子提取和文章自动摘要等功能,并且提供了一个基于Jetty的web服务器,方便各大语言直接http调用,同时提供了最新版本的...
  • jieba分词器包含关键词提取java版,可以使用scala调用)
  • 一种使用斯坦福大学自然语言处理对数线性POS标记从任何句子中提取关键字的算法 我已经在Java中使用了Stanford的(自然语言处理)对数线性POS标记器来处理.xml文件并提取<title> ..... </ title>标记中...
  • import java.util.HashSet; import java.util.Iterator; import java.util.Map; import java.util.Set; public class SensitiveFilterService { private Map sensitiveWordMap = null; // 最小匹配规则 public...
  • PDF大文件按关键字分页提取功能,PDF大文件按关键字分页提取功能,PDF大文件按关键字分页提取功能PDF大文件按关键字分页提取功能
  • java关键字abstract

    千次阅读 2021-03-10 03:29:23
    java中我们中abstract关键字来表达抽象。举个例子:我们说车子都可以跑(run)。但有几个轮子,怎么跑,对于不同的车有不同的结果。自行车需要人踩着跑,汽车发动机推动跑等等,那么我们可以车表达为抽象类。/*** ...
  • java中的关键字和标识符、注释一、关键字1、定义2、常用的标识符二、关键字1、定义2、组成规则3、注意事项4、驼峰规则(业界建议使用命名规范)三、注释1. 注释的概念2. 注释的形式 一、关键字 1、定义 Java内置的、...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 57,786
精华内容 23,114
关键字:

java 关键字提取

java 订阅