-
當(dāng)前位置:首頁(yè) > 創(chuàng)意學(xué)院 > 技術(shù) > 專題列表 > 正文
keyword提取(提取word文檔中的一些文字)
大家好!今天讓創(chuàng)意嶺的小編來大家介紹下關(guān)于keyword提取的問題,以下是小編對(duì)此問題的歸納整理,讓我們一起來看看吧。
開始之前先推薦一個(gè)非常厲害的Ai人工智能工具,一鍵生成原創(chuàng)文章、方案、文案、工作計(jì)劃、工作報(bào)告、論文、代碼、作文、做題和對(duì)話答疑等等
只需要輸入關(guān)鍵詞,就能返回你想要的內(nèi)容,越精準(zhǔn),寫出的就越詳細(xì),有微信小程序端、在線網(wǎng)頁(yè)版、PC客戶端
官網(wǎng):https://ai.de1919.com。
創(chuàng)意嶺作為行業(yè)內(nèi)優(yōu)秀的企業(yè),服務(wù)客戶遍布全球各地,如需了解SEO相關(guān)業(yè)務(wù)請(qǐng)撥打電話175-8598-2043,或添加微信:1454722008
本文目錄:
一、提取Java關(guān)鍵字
我寫了個(gè)Keywords.java類,代碼如下:
*************************************************************
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("計(jì)算關(guān)鍵字?jǐn)?shù)");
// 文本框
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("導(dǎo)入的文本"));
textPanel.add(textScroll);
// 結(jié)果框
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("計(jì)算結(jié)果"));
resultPanel.add(resultScroll);
// 導(dǎo)入文本和結(jié)果框
JPanel allPanel = new JPanel();
allPanel.setLayout(new GridLayout(2, 1));
allPanel.add(textPanel);
allPanel.add(resultPanel);
// 按鈕
JButton impButton = new JButton("導(dǎo)入文本");
JButton calcButton = new JButton("計(jì)算關(guān)鍵字?jǐn)?shù)");
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);
// 導(dǎo)入文本
impButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
writeText();
}
});
// 計(jì)算關(guān)鍵字?jǐn)?shù)
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 < start.length; 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());
}
});
}
// 導(dǎo)入文本
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();
}
}
*************************************************************
運(yùn)行結(jié)果如下:
二、excel如何提取所需關(guān)鍵字所在行?
如果是2020版office,提供一個(gè)篩選函數(shù),如果包含多條記錄都可篩選出,公式只需放在左上角,只要注意可能需要占用的其他單元格是空白即可,否則會(huì)顯示#SPILL! 錯(cuò)誤
假設(shè)需要的數(shù)據(jù)C-H列(作為查詢表,不要用合并單元格,否則只顯示第一行,因?yàn)楸缓喜⒌男袛?shù)據(jù)內(nèi)容是空白,不會(huì)被查到),另外如果跨表不要忘了引用前面的表名(例如“表!D:D”)
=FILTER(C:H,D:D="止動(dòng)螺栓","未找到")
三、Excel怎么通過關(guān)鍵字,把備注信息里面的關(guān)鍵字提取出來??
=MID(A6,FIND("(",A6,1)+1,FIND(",",A6,1)-FIND("(",A6,1)-1)
這是公式 是這個(gè)效果吧
四、java word中提取關(guān)鍵字
給個(gè)思路吧。
讀取word用doc4j,然后就是讀成字符串進(jìn)行處理了。
提取關(guān)鍵字首先是中文分詞技術(shù),就是把一段話劃分成多個(gè)組成的詞語(yǔ),然后統(tǒng)計(jì)詞語(yǔ)的出現(xiàn)次數(shù),這個(gè)是主要依據(jù)。這個(gè)是有實(shí)現(xiàn)的jar包的,可以去baidu搜,搜java 中文分詞就行。
分詞之后,記錄詞語(yǔ)出現(xiàn)位置,這個(gè)是輔助的依據(jù),記錄詞語(yǔ)一句話中的位置,越靠前越像關(guān)鍵字,權(quán)重越高。
甚至可能需要建立一個(gè)權(quán)重體系,次數(shù)設(shè)置一個(gè)權(quán)重,整體位置設(shè)置一個(gè)權(quán)重,不同位置權(quán)重也不同。不了解權(quán)重可以理解成系數(shù)(百分比的,然后計(jì)算那個(gè)詞是關(guān)鍵詞)。
同時(shí)需要注意,可能需要排除一些常用詞,哪些次需要排除,這個(gè)需要根據(jù)程序反復(fù)運(yùn)行,讀取不同word文章的結(jié)果來定。
不明白的話在問吧。
以上就是關(guān)于keyword提取相關(guān)問題的回答。希望能幫到你,如有更多相關(guān)問題,您也可以聯(lián)系我們的客服進(jìn)行咨詢,客服也會(huì)為您講解更多精彩的知識(shí)和內(nèi)容。
推薦閱讀:
在線logo免費(fèi)設(shè)計(jì)(在線設(shè)計(jì)logo商標(biāo)免費(fèi))_2
住房室內(nèi)設(shè)計(jì)效果圖(住房室內(nèi)設(shè)計(jì)效果圖大全)