2012-01-28 4 views
5

Necesito un código de muestra para ayudarme a detectar las páginas web de idiomas farsi por apache tika toolkit.¿cómo puedo detectar páginas web de farsi por tika?

LanguageIdentifier identifier = new LanguageIdentifier("فارسی"); 
     String language = identifier.getLanguage(); 

Tengo los archivos jar de apache.tika y los agrego al classpath. pero este código da error para el lenguaje Farsi pero funciona para inglés. ¿cómo puedo agregar Farsi al paquete languageIdentifier de tika?

+0

¿Qué tipo de error? Por favor, publique stacktrace. – AlexR

+0

es sorprendente, pero no tengo ningún error ahora pero el problema es que detecta incorrectamente. devuelve "lt" que significa idioma lituano en lugar del idioma persa (farsi) – aliakbarian

+0

mi pregunta es ¿cómo tika detecta idiomas? con que archivos? por ejemplo, si usa palabras de finalización de cualquier idioma, ¿dónde puedo agregar las palabras de finalización del idioma farsi? – aliakbarian

Respuesta

9

Tika todavía no incluye el perfil del idioma Farsi. Como en la versión 1.0 27 languages are supported fuera de la caja:

languages=be,ca,da,de,eo,et,el,en,es,fi,fr,gl,hu,is,it,lt,nl,no,pl,pt,ro,ru,sk,sl,sv,th,uk 

En su ejemplo la entrada se configura de forma errónea como li (Lituania) con una distancia de 0,41, que está por encima del umbral de certeza de 0,022. Consulte el source code para obtener más información sobre los trabajos internos de LanguageIdentifier.

El idioma Farsi (Persian, ISO 639-1 2-letter code fa) no está reconocido por defecto. Si desea que Tika reconozca otro idioma, primero debe crear un perfil de idioma.

Para ello, los siguientes pasos son necesarios:

  1. Encuentra un corpus de texto para su idioma. Encontré el Hamshahri Collection. Esto debería ser suficiente. Descargue el corpus o partes del mismo y cree un archivo de texto sin formato del XML.

  2. Cree un archivo ngram para el identificador de idioma. Esto se puede hacer usando TikaCLI:

    java -jar tika-app-1.0.jar --create-profile=fa -eUTF-8 fa-corpus.txt Este será un archivo llamado fa.ngp que contiene los n-gramas.

  3. Configure Tika para que reconozca el nuevo idioma. Haga esto programáticamente usando LanguageIdentifier.initProfiles() o coloque un archivo de propiedad con el nombre tika.language.override.properties en classpath. Asegúrese de que el archivo ngram esté también en la ruta de clase.

Si ahora ejecuta Tika, debería detectar correctamente su idioma.

Actualización: Detalla los pasos necesarios para crear un perfil de idioma.

+0

Sigo el enlace pero no entiendo cómo puedo crear el perfil del idioma. ¿me puedes ayudar? – aliakbarian

+0

de hecho. Formulo mi pregunta sobre cómo crear un perfil de idioma en el siguiente enlace: http://stackoverflow.com/questions/6227565/adding-language-profile-to-apache-tika – aliakbarian

+0

después de encontrar suficiente corpus de texto, ¿qué debo hacer? – aliakbarian

Cuestiones relacionadas