2013-02-06 3 views
0

Я попытался this библиотеку, предложил в одном из постов на переполнение стека,андроид автоматического обнаружения языка

Я добавил банку Либерал к моему наращиванием пути, но я не смог инициализировать класс DetectorFactory с профилями языков.

это класс обработки обнаружения, как это было предложено в одном из своих образцов:

class LanguageDetector { 
    public void init(String profileDirectory) throws LangDetectException { 
     DetectorFactory.loadProfile(profileDirectory); 
    } 
    public String detect(String text) throws LangDetectException { 
     Detector detector = DetectorFactory.create(); 
     detector.append(text); 
     return detector.detect(); 
    } 
    public ArrayList<Language> detectLangs(String text) throws LangDetectException { 
     Detector detector = DetectorFactory.create(); 
     detector.append(text); 
     return detector.getProbabilities(); 
    } 
} 

все языки профили хранятся под MyProject/профилей. пытается создать экземпляр класса разбивает мое приложение без каких-либо полезных сообщений в LogCat

вызова класса():

@Override 
    public void onActivityCreated(Bundle savedInstanceState) { 
     super.onActivityCreated(savedInstanceState); 
     context = this.getActivity().getApplicationContext(); 
/*  LanguageDetector detector = null; 
     try { 
      detector.init("/waggle/profiles"); 
     } catch (LangDetectException e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     }*/ 
     new GetDataTask().execute(context); 

    } 

ответ

0

изменить методы в LanguageDetector к статическим:

class LanguageDetector { 
    public static void init(String profileDirectory) throws LangDetectException { 
     DetectorFactory.loadProfile(profileDirectory); 
    } 
    public static String detect(String text) throws LangDetectException { 
     Detector detector = DetectorFactory.create(); 
     detector.append(text); 
     return detector.detect(); 
    } 
    public static ArrayList<Language> detectLangs(String text) throws LangDetectException { 
     Detector detector = DetectorFactory.create(); 
     detector.append(text); 
     return detector.getProbabilities(); 
    } 
} 

и использовать в качестве следует:

try { 
    LanguageDetector.init("/waggle/profiles"); // <-- Are you sure the profiles are at this location??? 
} catch (LangDetectException e) { 
    // TODO Auto-generated catch block 
    e.printStackTrace(); 
} 

String detectedLanguage = null; 
try { 
    detectedLanguage = LanguageDetector.detect("Dies ist ein Beispiel in Deutsch."); 
} catch (LangDetectException e) { 
    // TODO Auto-generated catch block 
    e.printStackTrace(); 
} 

if (detectedLanguage != null) { 
    // Implement your logic here 
} 
+0

Здравствуйте, я не знаю, какой путь пройти как p rofiile в 'LanguageDetector.init ("/waggle/profiles ")'. вы можете помочь ? – AndyN

+0

Я получаю 'FileNotFoundException' – AndyN

+0

Я скопировал папку профиля и вставил ее в папку res и установил ее путь, но теперь ее показать ошибку com.cybozu.labs.langdetect.LangDetectException: Не найдено профиля: –