0

我正在尝试使用锅炉管从非英文文本中提取新闻文章。我已经看到了这一点,它对我不起作用。我做了以下更改 1) 修改了 HTMLfetcher.java。在方法 fetch 结束之前附加以下行

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 જાન્યુઆરી

સલમાનખાનેનરેન્દ્રવખાણશુતેનીમુસીબતોમાંવધારોથઈછેછેછે。ફિલ્મફિલ્મહોનાપ્રમોશનઉત્તરાયણમાંઅમદાવાદઅમદાવાદહોવાથીઅનેતેસમયેનરેન્દ્રમોદીનાવખાણવખાણકર્યાકર્યાહોવાથીહોવાથીહોવાથીકોંગ્રેસફિલ્મફિલ્મફિલ્મફિલ્મફિલ્મફિલ્મફિલ્મહોહોહોહોહોહોહોનાજોવાનીજોવાનીકરવામાંકરવામાંકરવામાં છે。

请帮我。

4

2 回答 2

1

您显然已经能够让 ArticleExtractor 解析 utf-8 文本。(可能的)问题是样板的算法是专门为英语量身定制的,并且在古吉拉特语(?)文章中效果不佳。算法使用短语的详细程度(例如:每个短语的单词数)以及一些特定的短语(评论、发表意见等)来确定文章的障碍,以及文章中的哪些部分是内容或非内容内容。

查看boilerpipe/filters/english库的目录以获取有关算法的更多信息。不幸的是,要在非英语语言中获得相同水平的准确性,您需要重复他们对每种语言的研究,或者有一个翻译的停用词列表以及您使用的每种语言的详细程度的想法。

于 2014-02-07T14:53:55.293 回答
0

首先 - 接受的答案是正确的。Boilerpipe 的算法是专门为英语量身定做的。但是,这并不意味着它不能返回其他语言的粗略内容。请阅读完整接受的答案,下面可能是一个废话,你可能并不总是得到好的内容......

爪哇-

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-

单击 Run > Run Configurations > 并选择 Common Tab,然后选择 Encoding to Other(UTF-8),然后单击 Run,如下所示:

在此处输入图像描述

于 2014-07-27T19:21:08.710 回答