我正在尝试使用 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/