Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/358.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在使用PDFBox提取后,如何在粗体和斜体文本周围添加标记?_Java_Regex_Pdfbox_Text Extraction - Fatal编程技术网

Java 在使用PDFBox提取后,如何在粗体和斜体文本周围添加标记?

Java 在使用PDFBox提取后,如何在粗体和斜体文本周围添加标记?,java,regex,pdfbox,text-extraction,Java,Regex,Pdfbox,Text Extraction,我想从字典里找到数据 这个:。我使用PDFBox从这个pdf文件中提取文本 为了做到这一点,我创建了一个类文章来存储每个单词,它的类型adj,名词等等,所有的定义和例子 我使用正则表达式查找每篇文章的开头和结尾 以下是我使用PHNTC添加的模式,用于替换语音符号: Pattern pattern = Pattern.compile("(((\\w|\\–|\\-|&|,|’|/|â|é|è|ê|à|ô| )*)(\\s)+(PHNTC( )+)?(abbr|adj|adv|article

我想从字典里找到数据 这个:。我使用PDFBox从这个pdf文件中提取文本

为了做到这一点,我创建了一个类文章来存储每个单词,它的类型adj,名词等等,所有的定义和例子

我使用正则表达式查找每篇文章的开头和结尾

以下是我使用PHNTC添加的模式,用于替换语音符号:

Pattern pattern = Pattern.compile("(((\\w|\\–|\\-|&|,|’|/|â|é|è|ê|à|ô| )*)(\\s)+(PHNTC( )+)?(abbr|adj|adv|article|conj|interj|modal verb|noun|plural noun|prefix|prep|pron|phrase|suffix|(?<!((forming|making part of) a ))verb|expr)(, (abbr|adj|adv|article|conj|interj|modal verb|noun|plural noun|prefix|prep|pron|phrase|suffix|(?<!((forming|making part of) a ))verb|expr)\\s)?[^a-z]|((\\w|\\–|\\-|&|,|’|/|â|é|è|ê|à|ô| )*)(\\s)+(PHNTC( )+))");
正如你所看到的,这是相当复杂的,即使它足以容纳99%的文章,我在29000篇文章中有大约100篇错误的文章,我仍然有一些问题。例如,如果名词写在定义的某个地方,我的程序可能会认为它是一篇新文章的开头!你可以在上面的代码中看到我试图用动词来解决一些歧义

我认为解决这些问题的唯一办法是在粗体文本和斜体文本周围做一些标记。我想用这样的方式:

Pattern pattern = Pattern.compile("<b>.*</b>(\\s)+(PHNTC( )+)?<i>.*</i>(, <i>.*</i>)?");
现在,我的问题是:我如何使用PDFBox进行标记

我找到了一个关于通过重写该方法提取粗体文本的主题 processTextPosition文本从PDFTextStripper定位文本

我试过了,但是:

1我找不到粗体文本

2我不想只提取粗体文本,我仍然想提取所有内容


有什么想法吗?

我想你写应答器时是指标记,所以你可能想编辑这个问题。看见如果是你的问题,我怀疑你链接到的另一个问题的答案确实提到了你面临的问题,即难以确定什么是大胆的。PDF中没有粗体的概念谢谢你的回答,我编辑了我的问题,我以为这个词存在于英语中。确实提到了它,但另一个问题的想法是识别粗体文本,并仅对该文本执行提取。这不是我真正想要做的,因为我想在提取过程中用标记包围粗体文本,以便最终结果包含和。。此外,我试图用我链接的问题中使用的技巧来识别粗体文本,但没有任何效果。@GuillaumeCOTER来自may的代码可能会有所帮助。它展示了如何检查字体变化并插入提示。非常感谢您的回答,我会看一看并尝试。