java - 使用boilerpipe提取非英文文章

标签 java html text-extraction

我正在尝试使用 boilerpipe java 库,从一组网站中提取新闻文章。 它适用于英文文本,但对于带有特殊字符的文本,例如带有重音符号的单词 (história),这些特殊字符无法正确提取。我认为这是一个编码问题。

在 boilerpipe 常见问题解答中,它说“如果您提取非英语文本,您可能需要更改一些参数”,然后引用 paper .我在这篇论文中没有找到解决方案。

我的问题是,在使用 boilerpipe 时是否有任何参数可以指定编码?有什么办法可以绕过并正确获取文本吗?

我如何使用图书馆: (第一次尝试基于 URL):

URL url = new URL(link);
String article = ArticleExtractor.INSTANCE.getText(url);

(第二个在 HTLM 源代码上)

String article = ArticleExtractor.INSTANCE.getText(html_page_as_string);

最佳答案

您不必修改内部 Boilerpipe 类。

只需将 InputSource 对象传递给 ArticleExtractor.INSTANCE.getText() 方法并强制对该对象进行编码。例如:

URL url = new URL("http://some-page-with-utf8-encodeing.tld");

InputSource is = new InputSource();
is.setEncoding("UTF-8");
is.setByteStream(url.openStream());

String text = ArticleExtractor.INSTANCE.getText(is);

问候!

关于java - 使用boilerpipe提取非英文文章,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9260010/

相关文章:

java - 是否可以保存从字符串迭代中获取的各个字符值?

java - J3D081 全局平台个性化

html - HTML内容提取的最新技术是什么?

java.io.NotSerializedException : com. sun.faces.context.FacesContextImpl weblogic

java - Java中一系列数字的乘法

html - 给 parent 与 child 相同的宽度

javascript - 无法获取数据集数值

javascript - 播放和暂停播放声音

Python - 提取正则表达式匹配并一次性替换它?

java - 提取多个分隔符之间的文本