Question

Je souhaite savoir quel analyseur utiliser avec un index contenant des documents de plusieurs langues. Actuellement, j'utilise simpleanalyzer, car il semble traiter le plus grand nombre de langues. La plupart des documents à indexer seront en anglais, mais il y aura aussi occasionnellement une langue codée sur deux octets.

Y at-il d’autres suggestions ou devrais-je me contenter de l’analyseur simpleanalyzer.

Merci

Était-ce utile?

La solution

SimpleAnalyzer est vraiment simple, il ne fait que mettre les termes en minuscule. J'aurais pensé que StandardAnalyzer donnerait de meilleurs résultats que SimpleAnalyzer même avec des données en langue autre que l'anglais. Vous pourriez peut-être l'améliorer légèrement en fournissant une liste personnalisée de mots vides en plus des mots anglais par défaut.

Autres conseils

D'après votre description, je suppose que vous avez un document de plusieurs langues mais que chaque document ne contient du texte que dans une seule langue.

Dans ce cas, vous pouvez utiliser l'identification de langue de Nutch pour obtenir la langue du document. Ensuite, utilisez l’analyseur de langue respectif pour indexer. Pour obtenir les résultats appropriés pour la recherche, vous devez appliquer l'identification de la langue à la requête de recherche et utiliser cet analyseur.

L’avantage, c’est que vous pourrez utiliser des méthodes spécifiques à la langue. mots vides, rehaussant la qualité de la recherche. Les frais généraux supplémentaires lors de l'indexation devraient être acceptables. Les requêtes de recherche où l'identification de la langue ne parvient pas à identifier la langue correcte peuvent néanmoins en souffrir. J'ai utilisé ces deux dernières années et les résultats ont été meilleurs que prévu.

Pour CJK, vous pouvez appliquer une technique similaire, mais les outils peuvent être différents.

J'ai utilisé le StandardAnalyzer avec des mots non anglais et ça marche bien. Il traite même avec des caractères accentués. Si la langue est CJK (chinois, japonais, coréen), russe ou allemand, cela peut poser problème, mais je suppose que la plupart des problèmes seront liés à l’accrochage des mots. Si vous n'avez pas activé la technologie stemming, ce sera probablement suffisant.

Données purement anecdotiques, mais nous utilisons une version (personnalisée, mais non pertinente) de StandardAnalyzer pour notre système. Nos documents peuvent non seulement être dans des langues différentes les uns des autres, mais ils peuvent également contenir des fragments de langues différentes (imaginez par exemple un article rédigé en japonais avec des commentaires en anglais), ce qui rend difficile l’analyse linguistique.

La majorité de nos documents sont en anglais, mais un nombre important en chinois et en japonais, un nombre moins élevé en français, espagnol, portugais et coréen.

Résultat final? Nous utilisons StandardAnalyzer et très peu de plaintes de personnes utilisant le système en langues non romaines concernant le fonctionnement de nos recherches. Soit dit en passant, notre système est quelque peu "imposé" à ses utilisateurs. Ce n'est donc pas comme si les gens ne se plaignaient pas, mais déménageaient ailleurs; s'ils sont mécontents, nous le savons généralement.

Donc, étant donné que je ne suis pas submergé par les plaintes des utilisateurs (très occasionnelles, principalement sur le chinois, mais rien de grave et qui sont facilement explicables), cela semble être "assez bon" dans de nombreux cas.

La réponse correcte dépend de votre langue principale (le cas échéant).

Pour obtenir de meilleures performances IR multilingues, j’utiliserais un analyseur de 4/5 grammes, qui s’est avéré très efficace dans de nombreuses langues. Cela pourrait même mieux fonctionner que SimpleAnalyzer pour l'anglais. Voir http://www.eecs.qmul.ac. uk / ~ christof / html / publications / inrt142.pdf par exemple.

J'ai examiné cette question , mais depuis un autre angle. Il semble qu’il n’existe pas d’analyseur complet: chaque langue a besoin de sa propre approche pour obtenir les meilleurs résultats.

Tout d’abord, vous devriez trouver que vous parlez votre langue? Par exemple mes documents sont en anglais, japonais ou persan. vous pouvez trouver que votre langue de document par processus sur Caractères UTF-8.

Ensuite, lorsque vous trouvez que votre document est dans quelle langue, vous pouvez l’analyser avec analyseur spécifique.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top