问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501
你好,欢迎来到懂视!登录注册
当前位置: 首页 - 正文

求一个提取文章关键词的java程序

发布网友 发布时间:2022-05-12 19:56

我来回答

1个回答

热心网友 时间:2023-10-20 10:28

//直接粘贴就行。
import java.awt.BorderLayout;
import java.awt.EventQueue;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.Scanner;

import javax.swing.BorderFactory;
import javax.swing.JButton;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JSplitPane;
import javax.swing.JTextArea;
import javax.swing.border.EtchedBorder;
import javax.swing.filechooser.FileFilter;

public class Application2 extends JFrame implements Cloneable{

public Application2(){
this.setDefaultCloseOperation(EXIT_ON_CLOSE);
this.setSize(800,700);
this.setLayout(new BorderLayout());
keyWords1=new String[]{"那么","还是","sdf"};
keyWords2=new String[]{"所以","而且",};
input=new JTextArea();
JPanel ip=new JPanel();
ip.setLayout(new BorderLayout());
ip.add(input,BorderLayout.CENTER);
ip.setBorder(BorderFactory.createTitledBorder(BorderFactory.createEtchedBorder(EtchedBorder.LOWERED), "输入文本"));
output1=new JTextArea();
JPanel o1p=new JPanel();
o1p.setLayout(new BorderLayout());
o1p.add(output1,BorderLayout.CENTER);
o1p.setBorder(BorderFactory.createTitledBorder(BorderFactory.createEtchedBorder(EtchedBorder.LOWERED), "以下为"));
output2=new JTextArea();
JPanel o2p=new JPanel();
o2p.setLayout(new BorderLayout());
o2p.add(output2,BorderLayout.CENTER);
o2p.setBorder(BorderFactory.createTitledBorder(BorderFactory.createEtchedBorder(EtchedBorder.LOWERED), "以下为"));
JSplitPane split1=new JSplitPane(JSplitPane.HORIZONTAL_SPLIT,o1p,o2p);
split1.setDividerLocation(350);
JSplitPane split2=new JSplitPane(JSplitPane.VERTICAL_SPLIT,ip,split1);
split2.setDividerLocation(300);
this.add(split2,BorderLayout.CENTER);

open=new JButton("导入");
open.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
JFileChooser chooser=new JFileChooser(".");
chooser.setMultiSelectionEnabled(false);
chooser.addChoosableFileFilter(new FileFilter(){
@Override
public boolean accept(File file) {
if(file.isDirectory())
return true;
int length=file.getName().length();
if(length<5)
return false;
if(file.getName().substring(length-4).equals(".txt"))
return true;
return false;
}
@Override
public String getDescription() {
return "文本文件";
}
});
chooser.showOpenDialog(Application2.this);
File file=chooser.getSelectedFile();
if(file==null)
return;
try {
Scanner sc=new Scanner(file);
String text="";
while(sc.hasNextLine())
text+=sc.nextLine()+"\n";
input.setText(text);
String[] array=getSentences();
output1.setText(getKeySentences(keyWords1,array));
output2.setText(getKeySentences(keyWords2,array));
}catch (IOException e1) {
e1.printStackTrace();
}
}
});
save=new JButton("导出");
save.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
JFileChooser chooser=new JFileChooser(".");
chooser.setMultiSelectionEnabled(false);
chooser.addChoosableFileFilter(new FileFilter(){
@Override
public boolean accept(File file) {
if(file.isDirectory())
return true;
int length=file.getName().length();
if(length<5)
return false;
if(file.getName().substring(length-4).equals(".txt"))
return true;
return false;
}
@Override
public String getDescription() {
return "文本文件";
}
});
chooser.showSaveDialog(Application2.this);
File file=chooser.getSelectedFile();
if(file==null)
return;
try {
PrintWriter pw=new PrintWriter(file);
pw.print(output1.getText());
pw.flush();
pw.print(output2.getText());
pw.flush();
}catch (IOException e1) {
e1.printStackTrace();
}
}
});
JPanel buttonPane=new JPanel();
buttonPane.add(open);
buttonPane.add(save);
this.add(buttonPane,BorderLayout.SOUTH);
}

public String[] getSentences(){
ArrayList<String> set=new ArrayList<String>();
int length=input.getText().length();
for(int i=0,last=0;i<length;i++){
String s=String.valueOf(input.getText().charAt(i));
if(s.equals("\n"))
last=i+1;
if(s.equals(".")||s.equals(",")||s.equals("。")||s.equals("。")||s.equals("!")||s.equals("?")||s.equals("?")||s.equals("!")||s.equals(",")){
set.add(input.getText().substring(last,i)+s);
last=i+1;
}
}
return set.<String>toArray(new String[set.size()]);
}

public String getKeySentences(String[] key,String[] sentences){
String result="";
A: for(int i=0;i<sentences.length;i++){
for (int k = 0; k < key.length; k++)
if (sentences[i].contains(key[k].subSequence(0, key[k].length()))) {
result += sentences[i] + "\n";
continue A;
}
}
return result;
}

private JTextArea input;
private JTextArea output1;
private JTextArea output2;
private JButton open;
private JButton save;
private String[] keyWords1;
private String[] keyWords2;

public static void main(String... args){
EventQueue.invokeLater(new Runnable(){
public void run(){
new Application2().setVisible(true);
}
});
}
}追问然后接下来怎么用,我刚接触java,具体不怎么会用。

声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。
E-MAIL:11247931@qq.com
瑞幸咖啡单糖半糖区别 我的华为P20pro 屏幕锁忘记密码了 我看到之前发的通过安全模式解锁是... 不锈钢给水管接头配件有哪些 不锈钢水管接头规格型号 不锈钢水管:规格型号全解析 东北师大赵玉龙教授课题组:2-异氰基苯甲醛的合成应用 对三氟甲氧基苯胺理化性质 儿童拼音学习小孩子学习拼音有什么好方法 如何拼音启蒙?怎样让孩子无痛学会拼音?掌握1个关键3个步骤 我家儿子快上小学了,想教他拼音,你们有好方法吗? 宝宝满月杯子刻字刻什么好宝宝满月杯子刻字刻哪些好呢 如何通过聚类或其他算法实现一组名词的抽象,也可以说是关键词的提取? 清明节怀念父母短文 与逝去亲人的故事作文600字 作文清明节怀念亲人400字 以悼念逝者,珍爱生命为主题的作文 不a不b式的词语 宫殿的柱子和围墙为什么用红色? 故宫的红墙是不断的补充颜色还是千百年来就是这个样子 故宫 墙 的是怎么建设的 坐下的做拼音怎么写?带音标 坐下的拼音怎么写 “不a不b”式的词语有哪些? 宫殿庙宇的墙为什么是红色的? 共坐 的 拼音 是 为什么故宫的墙壁晚上会显示古代宫女和太监的影子,有人说跟故宫墙的涂料有关。用化学知识回答 故宫红墙有没有什么非遗技术 中国政府开会领导后面的红旗是? 坐的拼音是什么 A不B式的词语有哪些 一声不吭(一a不b式) 关键字匹配算法 表达人的欲望永无止境的成语 第三个字是横的成语 含欲字的成语和解释 什么什么欲流成语 人流什么造成语 第二个字是欲的成语 形容风气的成语 求初中苏教版的全部成语及解释。 小乌龟好养吗?给它吃什么? 最经典的咏竹诗是? 14岁男孩膝盖会响怎么回事 14岁男孩深蹲,膝盖响是怎么回事 儿童练屈腿动作时膝盖叽哇叽哇的响,怎么回事?(13岁) 才14岁膝盖有响声什么原因 只不过膝盖不疼 孩子13岁了不爱吃菜,膝盖总是响怎么回事? 十四五岁少男膝盖响是怎么回事 合伙人退股折旧如何清算 为什么微信好友,可以聊天,但看对方朋友圈却显示“非朋友最多只能看十张照片”,十分疑惑,求解答! 保险丝接零线还是火线
  • 焦点

最新推荐

猜你喜欢

热门推荐