在多个 pdf 文件中搜索一个词并根据字数为 pdf 编制索引
searching a word in multiple pdf files and indexing pdf based on the word count
谁能帮我在多个 pdf 文件中搜索一个词并计算字数?
我需要在每个文档中按字数降序显示 pdf,我应该在 java 中执行此操作。
获取数据:
下载iText(PDF工具),打开所有你想扫描的pdf,读取里面的文字,做一个HashMap来存储word -> count(word).
正在对您的哈希图进行排序:
这里的 Whosebug 已经解决了这个问题:Sort a Map<Key, Value> by values (Java)
您似乎在寻找一个起点或想法,而不是一个特定的解决方案 - 您在这里有几个选择。
首先您需要确保PDF的文本内容是可搜索的。这是 one way 例如,使用 Adobe Acrobat。
其次,您需要使用某种 API 来索引 PDF 文件,以便可以搜索它们。这是 Apache Lucene 站点上的 section,它可能会给您一些提示。
Apache Lucene is a high-performance, full-featured text search
engine library written entirely in Java.
请记住,您的问题中没有太多上下文,因此索引 PDF 或 Lucene 对您来说可能有点矫枉过正。
我建议使用谷歌搜索一些方法 - 尝试 "text search pdf files"、"reading pdf files java" 等
这里 another answer 也可以帮助您。
您可以使用 PDFBox 计算 PDF 文件中的字数:
public static int countWordInFile(String word, String filename, String fileEncoding) throws Exception {
int count=0;
PrintStream ps = null;
PrintStream originalSystemOut = System.out;
try {
ByteArrayOutputStream baos = new ByteArrayOutputStream();
ps = new PrintStream(baos);
System.setOut(ps);
// Extracting text from page
ExtractText.main(new String[] {//
//
"-encoding", fileEncoding, //
"-console", //
filename //
//
});
String content = baos.toString(fileEncoding);
// TODO: Find the word in content and count its occurences...
} finally {
IOUtils.closeQuietly(ps);
System.setOut(originalSystemOut);
}
return count;
}
谁能帮我在多个 pdf 文件中搜索一个词并计算字数?
我需要在每个文档中按字数降序显示 pdf,我应该在 java 中执行此操作。
获取数据:
下载iText(PDF工具),打开所有你想扫描的pdf,读取里面的文字,做一个HashMap来存储word -> count(word).
正在对您的哈希图进行排序:
这里的 Whosebug 已经解决了这个问题:Sort a Map<Key, Value> by values (Java)
您似乎在寻找一个起点或想法,而不是一个特定的解决方案 - 您在这里有几个选择。
首先您需要确保PDF的文本内容是可搜索的。这是 one way 例如,使用 Adobe Acrobat。
其次,您需要使用某种 API 来索引 PDF 文件,以便可以搜索它们。这是 Apache Lucene 站点上的 section,它可能会给您一些提示。
Apache Lucene is a high-performance, full-featured text search engine library written entirely in Java.
请记住,您的问题中没有太多上下文,因此索引 PDF 或 Lucene 对您来说可能有点矫枉过正。
我建议使用谷歌搜索一些方法 - 尝试 "text search pdf files"、"reading pdf files java" 等
这里 another answer 也可以帮助您。
您可以使用 PDFBox 计算 PDF 文件中的字数:
public static int countWordInFile(String word, String filename, String fileEncoding) throws Exception {
int count=0;
PrintStream ps = null;
PrintStream originalSystemOut = System.out;
try {
ByteArrayOutputStream baos = new ByteArrayOutputStream();
ps = new PrintStream(baos);
System.setOut(ps);
// Extracting text from page
ExtractText.main(new String[] {//
//
"-encoding", fileEncoding, //
"-console", //
filename //
//
});
String content = baos.toString(fileEncoding);
// TODO: Find the word in content and count its occurences...
} finally {
IOUtils.closeQuietly(ps);
System.setOut(originalSystemOut);
}
return count;
}