本文目錄一覽:
- 1、JAVA語言的關鍵字提取問題
- 2、200分跪求JAVA高手幫做個提取關鍵字的程序
- 3、java 如何在一篇文章中取出某個關鍵字
- 4、java 如何對某個數據庫中所有數據進行關鍵詞搜索並統計搜索所得結果的總數
- 5、java word中提取關鍵字
JAVA語言的關鍵字提取問題
能力有限用個最笨的辦法了
public 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];
}
200分跪求JAVA高手幫做個提取關鍵字的程序
//直接粘貼就行。
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(length5)
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(length5)
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(){
ArrayListString set=new ArrayListString();
int length=input.getText().length();
for(int i=0,last=0;ilength;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.StringtoArray(new String[set.size()]);
}
public String getKeySentences(String[] key,String[] sentences){
String result=””;
A: for(int i=0;isentences.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 如何在一篇文章中取出某個關鍵字
這個方法是取出了含有keyword的那一行,你要去關鍵字,只要返回true,直接取就O了!!忘樓主採納!
public void selectKeyWord(String keyWord){
String filepath = “”;
try {
DataInputStream dis = new DataInputStream(new FileInputStream(filepath));
while(dis.read()!=-1){
String str = dis.readUTF();
if(str.contains(keyWord)){
System.out.println(str);
}
}
} catch (FileNotFoundException e) {
System.out.println(“文件不存在”);
System.exit(0);
} catch (IOException e) {
e.printStackTrace();
}
}
java 如何對某個數據庫中所有數據進行關鍵詞搜索並統計搜索所得結果的總數
select count(*) from tablename where 列 like ‘關鍵字1’ or 列 like ‘關鍵字2’;
意思就是查詢 tablename 表中的 列 內容包括 關鍵字1 或者包涵 關鍵字2 的 一共有多少數據。。 count 是查詢 受影響的 行數。 數據庫關鍵字。
java word中提取關鍵字
給個思路吧。
讀取word用doc4j,然後就是讀成字符串進行處理了。
提取關鍵字首先是中文分詞技術,就是把一段話劃分成多個組成的詞語,然後統計詞語的出現次數,這個是主要依據。這個是有實現的jar包的,可以去baidu搜,搜java 中文分詞就行。
分詞之後,記錄詞語出現位置,這個是輔助的依據,記錄詞語一句話中的位置,越靠前越像關鍵字,權重越高。
甚至可能需要建立一個權重體系,次數設置一個權重,整體位置設置一個權重,不同位置權重也不同。不了解權重可以理解成係數(百分比的,然後計算那個詞是關鍵詞)。
同時需要注意,可能需要排除一些常用詞,哪些次需要排除,這個需要根據程序反覆運行,讀取不同word文章的結果來定。
不明白的話在問吧。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/190831.html