0

关于锅炉管的 ArticleExtractor 类的使用,我不太了解。虽然,我对 java 也很陌生,所以也许我对这个环境的基本知识有问题。

无论如何,我正在尝试使用锅炉管从我收集的一些原始 html 源中提取主要文章。html 源文本存储在具有网页原始 HTML 内容的 java.lang.String 变量(我们称之为 htmlstr)变量中。

我知道如何运行boilerpipe将提取的文本打印到输出窗口,如下所示:

java.lang.String htmlstr = "<!DOCTYPE.... ****html source**** ... </html>";

java.lang.String article = ArticleExtractor.INSTANCE.getText(htmlstr);
System.out.println(article);

但是,我不确定如何通过首先实例化 ArticleExtractor 类的实例,然后使用“TextDocument”输入数据类型调用它来运行 BP。TextDocument 数据类型本身是以某种方式从 BP 的“TextBlock”数据类型构建的,也许我没有正确执行此操作......

从我的 htmlstr 字符串变量构造 TextDocument 类型变量的正确方法是什么?

所以我的问题是除了按照上面的示例调用 ArticleExtractor getText 方法之外,使用 BP 的 Article Extractor 类的处理方法。换句话说,我不确定如何使用

ArticleExtractor.process(TextDocument doc);

方法。

据我了解,需要运行此 ArticleExtractor 流程方法,然后才能使用相同的“TextDocument doc”变量来获取文档统计信息,使用 BP 的

TextDocumentStatistics(TextDocument doc, boolean contentOnly) 

方法?我想使用统计数据来确定估计过滤的效果如何。

有人可以帮助我的任何代码示例吗?

4

1 回答 1

1

用 Jython 编写的代码(转换为 java 应该很容易)

1) 如何从 HTML 字符串中获取 TextDocument:

import org.xml.sax.InputSource as InputSource
import de.l3s.boilerpipe.sax.HTMLDocument as HTMLDocument
import de.l3s.boilerpipe.document.TextDocument as TextDocument
import de.l3s.boilerpipe.sax.BoilerpipeSAXInput as BoilerpipeSAXInput
import de.l3s.boilerpipe.extractors.ArticleExtractor as ArticleExtractor
import de.l3s.boilerpipe.estimators.SimpleEstimator as SimpleEstimator
import de.l3s.boilerpipe.document.TextDocumentStatistics as TextDocumentStatistics
import de.l3s.boilerpipe.document.TextBlock as TextBlock

htmlDoc = HTMLDocument(rawHtmlString)
inputSource = htmlDoc.toInputSource() 
boilerpipeSaxInput = BoilerpipeSAXInput(inputSource)
textDocument = boilerpipeSaxInput.getTextDocument()

2)如何使用文章提取器处理文本文档(接上)

content = ArticleExtractor.INSTANCE.getText(textDocument)  

3)如何获取TextDocumentStatistics(接上)

content_list = [] #replace python 'List' Object with ArrayList in java
content_list.append(TextBlock(content)) #replace with arrayList.add(TextBlock(content))
content_td = TextDocument(content_list)
content_stats = TextDocumentStatistics(content_td, True)#True for article content statistics only

注意:boilerpipe 1.2.jar 库附带的 java 文档应该对将来的参考有所帮助

于 2012-06-28T06:59:03.263 回答