web-dev-qa-db-fra.com

Quels sont les principales différences et avantages des algorithmes Porter et Lancaster Stemming?

Je travaille sur des tâches de classification de documents en Java.

Les deux algorithmes sont fortement recommandés, quels sont les avantages et les inconvénients de chacun et lesquels sont plus couramment utilisés dans la littérature pour les tâches de traitement du langage naturel?

53
Adam Hess

À la base même de celui-ci, la principale différence entre les algorithmes de portage et de lancaster est que le stemmer lancaster est beaucoup plus agressif que le porter stemmer. Les trois principaux algorithmes de radicalisation utilisés aujourd'hui sont Porter, Snowball (Porter2) et Lancaster (Paice-Husk), le continuum d'agressivité suivant essentiellement ces mêmes principes. Porter est l'algorithme le moins agressif, les spécificités de chaque algorithme étant en fait assez longues et techniques. Voici une ventilation pour vous:

Porter: Le stemmer le plus utilisé sans aucun doute, également l'un des stemmers les plus doux. L'un des rares stemmers qui a réellement Java support qui est un plus, bien qu'il soit aussi le plus intensif en calcul des algorithmes (accordé non par une marge très significative). C'est aussi le plus ancien algorithme stemming par une grande marge.

Porter2: Presque universellement considéré comme une amélioration par rapport à Porter, et pour cause. Porter lui-même admet en fait que c'est mieux que son algorithme d'origine. Temps de calcul légèrement plus rapide que Porter, avec une communauté assez importante autour.

Lancaster: algorithme de stemming très agressif, parfois à un défaut. Avec Porter et Snowball, les représentations dérivées sont généralement assez intuitives pour un lecteur, pas avec Lancaster, car de nombreux mots plus courts seront totalement obscurcis. L'algorithme le plus rapide ici réduira considérablement votre ensemble de mots de travail, mais si vous voulez plus de distinction, pas l'outil que vous souhaitez.

Honnêtement, je pense que Snowball est généralement la voie à suivre. Il y a certaines circonstances dans lesquelles Lancaster réduira énormément votre jeu de travail, ce qui peut être très utile, mais l'augmentation de la vitesse marginale par rapport à Snowball ne vaut pas à mon avis le manque de précision. Porter a cependant la plupart des implémentations et est donc généralement l'algorithme par défaut, mais si vous le pouvez, utilisez Snowball.

109
Slater Victoroff