2014-02-01 3 views
0

Я пытаюсь использовать boilerpipe для извлечения новостей из неанглийского текста. Я уже видел this и его не работает для меня. Я сделал следующие изменения: 1) Изменен HTMLfetcher.java. Добавив следующие строки до конца метода выборкиBoilerpipe для извлечения неанглийских статей новостей

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) Изменение кода в классе с использованием UTF-8 кодировку с Inuts

`URL url = new URL(urls); 
     InputSource is = new InputSource(); 
     is.setEncoding("ISO-8859-1"); 
     is.setByteStream(url.openStream()); 


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

Тем не менее он не работает Test URL: http://www.sandesh.com/article.aspx?newsid=2905443 Текст: મુંબઈ, 30 જાન્યુઆરી

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

Пожалуйста, помогите мне.

ответ

1

Вы, очевидно, смогли заставить ArticleExtractor проанализировать текст utf-8. (Вероятная) проблема заключается в том, что алгоритмы шаблона специально адаптированы к английскому языку и не работают так хорошо в статье Gujarati (?). Алгоритмы используют многословность фраз (например, количество слов на фразу), а также некоторые конкретные фразы (комментарии, высказывания и т. Д.) Для определения барьеров статьи, а также то, какие части статьи содержат контент или содержание.

Обратитесь к справочнику библиотеки boilerpipe/filters/english за дополнительной информацией по алгоритмам. К сожалению, чтобы получить тот же уровень точности на неанглийских языках, вам нужно будет повторить свое исследование на каждом языке или иметь список переведенных стоп-слов и идею о многословии для каждого используемого вами языка.

+0

Я полностью согласен с вами. Но мой вопрос был с кодировкой, где я получаю все ??????? вместо неанглийского текста. Хотя труба работает лучше всего для английского текста, но я также получаю хороший результат и для текста, не являющегося английским. –

+0

Где вы получаете ??????? Это не показано в вашем исходном вопросе. – Luke

+0

Откровенно говоря, его плохое намерение состоит в том, чтобы получить извлечение с помощью того же неанглийского языка вместо символов (вопросительных знаков или символов мусора) в качестве вывода. Проверьте мой вопрос в связанной теме [link] (http://stackoverflow.com/questions/9260010/using-boilerpipe-to-extract-non-english-articles) –

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-

Нажмите «Выполнить»> «Выполнить конфигурации»> и выберите «Общая вкладка», затем «Кодировка в другую» (UTF-8), затем нажмите «Выполнить» так:

enter image description here