我正在尝试使用boilerpipe从非英语文本中提取新闻文章。我已经看过this并且它不适合我。我做了以下更改 1)修改HTMLfetcher.java。在方法提取结束之前附加以下行
byte[] utf8 = new String(data, cs.displayName()).getBytes("UTF-8"); //new one (convertion)
cs = Charset.forName("UTF-8"); //set the charset to UFT-8
或/然后 2)使用带有Inuts的UTF-8字符集来改变类中的代码
`URL url = new URL(urls);
InputSource is = new InputSource();
is.setEncoding("ISO-8859-1");
is.setByteStream(url.openStream());
text = ArticleExtractor.INSTANCE.getText(is);`
仍然没有用 测试网址:http://www.sandesh.com/article.aspx?newsid=2905443 文字:મુંબઈ,30જાન્યુઆરી
સલમાનખાનેગુજરાતમાંઆવીનેનરેન્દ્રવખાણશુકર્યાતેનીમુસીબતોમાંખૂબવધારોથઈછેછે。 સલમાનખાનજય'જયહોનાનામાટેઉત્તરાયણમાંઅમદાવાદહોવાથીઅનેતેતેણેનરેન્દ્રવખાણકર્યાહોવાથીકોંગ્રેસદ્વારામુસ્લિમોનેફિલ્મજયજયનાનાનાજોવાનીકરવામાંઆવીહતીઅનેહવેમુસ્લિમમૌલવીઓદ્વારાતેનાસામેફતવોજાહેરકરીદેવામાંદેવામાંદેવામાં છે。
请帮帮我。
答案 0 :(得分:1)
您显然能够使用ArticleExtractor来解析utf-8文本。 (可能)的问题是样板的算法是专门针对英语而定制的,并且在古吉拉特语(?)文章中效果不佳。算法使用短语的冗长(例如:每个短语的单词数量)以及一些特定的短语(评论,有你的发言等)来确定文章的障碍,以及文章中的内容是非内容或非内容内容。
有关算法的更多信息,请查看库的boilerpipe/filters/english
目录。不幸的是,为了在非英语语言中获得相同的准确度,您需要重复他们对每种语言的学习,或者有一个翻译的停用词列表以及关于您使用的每种语言的详细程度的想法。
答案 1 :(得分:0)
首先 - 接受的答案是正确的。 Boilerpipe的算法专为英语量身定制。但是,这并不意味着它无法返回其他语言的粗略内容。请阅读完整的接受答案,下面可能是一个crapshoot,你可能并不总是得到好的内容......
<强>爪哇 - 强>
import java.net.URL;
import org.xml.sax.InputSource;
import de.l3s.boilerpipe.extractors.ArticleExtractor;
public class BoilerpipeTest {
public static void main(String[] args) {
try{
//some wrestling match in Russian from Russian newspaper
URL url = new URL("http://www.azeri.ru/az/traditions/kuraj_pehlevanov/");
InputSource is = new InputSource();
is.setEncoding("UTF-8");
is.setByteStream(url.openStream());
String text = ArticleExtractor.INSTANCE.getText(is);
System.out.println(text);
}catch(Exception e){
e.printStackTrace();
}
}
}
接下来,如果您使用的是Eclipse -
点击“运行”&gt;运行配置&gt;然后选择Common选项卡,然后选择Encoding to Other(UTF-8),然后单击Run as like: