Réponses:
CRF ++ est un choix populaire en général et possède des liaisons Python . CRFSuite a également des liaisons documentées ici , mais ne semble pas avoir eu une utilisation aussi répandue que CRF ++. Au moment d'écrire ces lignes, les frameworks d'apprentissage automatique de niveau supérieur tels que scikit-learn ne prennent pas en charge le format CRF (voir cette demande d'extraction ).
CRF ++ a plus de liens entrants car il s'agit d'une bibliothèque plus ancienne.
CRFSuite est supérieur à mon avis.
Si vous recherchez des liaisons Python, CRFSuite est également préférable, car vous pouvez former un modèle en Python, tandis que dans CRF ++, vous ne pouvez tester que des modèles existants en Python. CRFSuite est également fourni avec un tas d'exemples de code en Python, tels que NER, Chunking et le marquage POS.
Voici quelques autres wrappers / implémentations:
exit()
, et j'ai constaté des fuites de mémoire au cours de la formation. En outre, wapiti est limité dans un type de fonctionnalités qu'il peut représenter, mais CRFsuite est également limité (d'une manière différente). Wapiti est fourni dans un emballage, inutile de l'installer séparément.Je vous recommande d'utiliser seqlearn si vous le pouvez, python-crfsuite si vous avez besoin d'algorithmes et de vitesse de formation CRFsuite, pyCRFsuite si vous avez besoin d'une intégration plus avancée de CRFsuite et prêt à faire face à certains inconvénients, python-wapiti si vous avez besoin d'algorithmes ou de fonctionnalités de formation Wapiti. non disponible dans CRFsuite (comme le conditionnement d'observations individuelles sur les transitions) et dans le fichier crf de timvieira s'il n'existe aucun moyen de faire fonctionner un compilateur C / C ++, mais un numpy pré-construit est disponible.
Je pense que ce que vous recherchez, c'est PyStruct .
PyStruct se veut une bibliothèque d’apprentissage et de prédiction structurée facile à utiliser. Actuellement, il implémente uniquement des méthodes à marge maximale et un perceptron, mais d'autres algorithmes pourraient suivre.
PyStruct a pour objectif de fournir aux chercheurs, ainsi qu’aux non-spécialistes, un outil bien documenté leur permettant d’utiliser des algorithmes de prédiction structurés. La conception tente de rester aussi proche que possible de l'interface et des conventions de scikit-learn.
PyStruct
vient avec une bonne documentation , et il est activement développé sur github .
Vous trouverez ci-dessous un tableau comparatif PyStruct
avec CRFsuite
et d'autres packages, extrait de PyStruct - Prédiction structurée en Python :