gpt4 book ai didi

java - 使用java应用提取信息

转载 作者:行者123 更新时间:2023-11-30 07:44:41 25 4
gpt4 key购买 nike

我尝试在文本(文本文件)上应用字典(单词文件):

我们测试该单词是否存在于文本的一行中,如果是,我们将打印它(该行)。我们测试每一行文本的字典中的所有单词。

我使用了 EXPREG 模式+匹配器,但问题是时间。操作耗时5H。

第2个文件有3330ko和55ko。我的问题是有没有另一种方法可以像 UNITEX 一样但是在 java 中做到这一点

public class Tratemant_Dic extends Thread {

Tratemant_Dic() {

}

public void run() {
try {

BufferedReader file_corpus = new BufferedReader(
new InputStreamReader(new FileInputStream(
"corpus-medical.TXT"), "UTF-16LE"));

PrintWriter ecrire = new PrintWriter("sort.html");
String line;
String nom = null;

ecrire.write("<mot><span style=\"color:red\">startsss</span></mot></br><ligne>start\n");
while ((line = file_corpus.readLine()) != null) {

BufferedReader file_nom = new BufferedReader(
new InputStreamReader(new FileInputStream(
"Fichie_sorte.DIC"), "UTF-16LE"));
while ((nom = file_nom.readLine()) != null) {
nom = nom.substring(0, nom.length() - 3);
Pattern p = Pattern.compile("(.*)\\W+" + nom + "\\b.*",
Pattern.CASE_INSENSITIVE);
Matcher m = p.matcher(line);

if (m.find()) {

System.out.println(nom + "==>" + line);
ecrire.write("<mot><span style=\"color:red\">" + nom
+ "</span></mot></br><ligne>" + line + "\n");

}

}

file_nom.close();

}
ecrire.close();
System.out.println("FIN");
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

}

}

最佳答案

如果我正确地理解你想要做什么,我就不会使用正则表达式来做到这一点。它们很慢,您不需要它们。

这确实是一个字符串匹配问题。您的字典可能应该存储在哈希表中,使用 hashCode() 方法获取字符串的键。然后,您可以在字典中搜索文本中阅读的每个单词(在阅读时计算适当的哈希码)。如果做得正确,应该尽可能快。

请记住,哈希码保证是唯一的,因此即使在表中找到哈希码,也始终确保实际字符串匹配。

关于java - 使用java应用提取信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34092696/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com