Melhor analisador entre linguagens para uso com índice lucene [fechado]

StackOverflow https://stackoverflow.com/questions/1001003

  •  05-07-2019
  •  | 
  •  

Pergunta

Estou à procura de feedback em que analisador para utilização com um índice que tem documentos de vários idiomas. Atualmente estou usando o simpleanalyzer, como parece lidar com a quantidade mais ampla de línguas. A maioria dos documentos a serem indexados será Inglês, mas não será o idioma de byte duplo ocasional indexados bem.

Existem outras sugestões ou devo ficar com o simpleanalyzer.

Graças

Foi útil?

Solução

SimpleAnalyzer realmente é simples, tudo que faz é em minúsculas os termos. Eu teria pensado que a StandardAnalyzer daria melhores resultados do que SimpleAnalyzer mesmo com dados de língua não-inglesa. Você poderia talvez melhorá-lo um pouco através do fornecimento de uma lista personalizada de palavras de parada em adição aos de língua Inglês padrão.

Outras dicas

De sua descrição, eu presumo que você tem documento de vários idiomas, mas cada documento possui texto em apenas um idioma.

Para este caso, você pode usar a identificação dos idiomas do Nutch para obter o idioma do documento. Em seguida, use respectiva analisador de linguagem para o índice. Para obter os resultados corretos para a pesquisa, você precisa aplicar identificação linguagem para a consulta de pesquisa e usar esse analisador.

A vantagem aqui é que você vai ser capaz de usar específico do idioma stemmer & stopwords, empurrando a qualidade da pesquisa para cima. A sobrecarga extra, enquanto a indexação deve ser aceitável. As consultas de pesquisa onde a identificação linguagem não consegue identificar idioma correto pode sofrer embora. Eu tenho usado este par de anos atrás e os resultados foram melhores do que o esperado.

Para CJK, você pode aplicar a técnica semelhante, mas as ferramentas podem ser diferentes.

Eu usei o StandardAnalyzer com palavras não-Inglês e funciona ok. Ele ainda lida com caracteres acentuados. Se a linguagem é CJK (chinês, japonês, coreano), russo ou alemão pode ter problemas, mas eu suspeito que a maioria dos problemas será relacionado com o decorrente das palavras. Se você não tem lematização habilitado, ele provavelmente será adequada.

evidência puramente anedótico, mas usamos uma versão (personalizado, mas não de qualquer maneira relevante) de StandardAnalyzer para o nosso sistema. Nossos documentos pode não ser apenas em idiomas diferentes entre si, mas os documentos podem conter pedaços de línguas diferentes (por exemplo, imaginar um artigo escrito em japonês com comentários em Inglês), então sniffing linguagem é difícil.

A maioria dos nossos documentos são em Inglês, mas um número significativo estão em chinês e japonês, com um número menor, em Francês, Espanhol, Português e coreano.

O resultado final? Usamos StandardAnalyzer, e têm muito poucas queixas de pessoas que usam o sistema em idiomas não-romanos sobre a forma como os nossos trabalhos de busca. Nosso sistema é um pouco 'forçada' em seus usuários, a propósito, então não é como se as pessoas não estão reclamando, mas se movendo em outro lugar; Se eles estão insatisfeitos, geralmente sabemos.

Assim, com base no fato de que eu não estou inundada com reclamações de usuários (os muito ocasionais, principalmente sobre chinês, mas nada sério e eles estão facilmente explicado) parece ser 'suficientemente bom' para muitos casos.

A resposta correta depende da sua língua principal (se houver).

Para um melhor desempenho IR cross-language eu iria com a / 5 gramas analisador 4, que tem se mostrado um grande trabalho em muitas línguas. Pode até funcionar melhor do que SimpleAnalyzer para Inglês também. Consulte http://www.eecs.qmul.ac. uk / ~ christof / html / publicações / inrt142.pdf por exemplo.

eu olhei para isso , mas a partir de um outro ângulo. Parece que não há um catch-all analisador -. Cada idioma precisa de sua própria abordagem para os melhores resultados

Primeiro, você deve achar que o que é o seu seu idioma? Por exemplo os meus documentos estão em Inglês, japanes ou persa. você pode achar que a linguagem do documento pelo processo no UTF-8 caracteres.

Então, quando você achar que o seu documento está em qual idioma, você pode analisá-lo com analisador específico.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top