¿Existe una implementación popular de los campos aleatorios condicionales en Python ?
¡Parece que no puedo encontrar ninguno que sea ampliamente utilizado y popular!
¿Existe una implementación popular de los campos aleatorios condicionales en Python ?
¡Parece que no puedo encontrar ninguno que sea ampliamente utilizado y popular!
Respuestas:
CRF ++ es una opción popular en general, y tiene enlaces de Python . CRFSuite también tiene enlaces documentados aquí , pero no parece haber visto un uso tan extendido como CRF ++. Al momento de escribir este artículo, los marcos de aprendizaje automático de nivel superior como scikit-learn carecen de soporte CRF (consulte esta solicitud de extracción ).
CRF ++ tiene más enlaces entrantes porque es una biblioteca más antigua.
CRFSuite es superior en mi opinión.
Si está buscando enlaces de Python, CRFSuite también es mejor porque puede entrenar un modelo en Python, mientras que en CRF ++ solo puede probar modelos existentes en Python. (Ese fue el factor decisivo para mí). CRFSuite también viene con un montón de código de ejemplo en Python, como NER, Chunking y etiquetado POS.
Estas son algunas otras envolturas / implementaciones:
exit()
, y he visto pérdidas de memoria durante el entrenamiento. Además, wapiti está limitado en un tipo de características que puede representar, pero CRFsuite también está limitado (de una manera diferente). Wapiti está incluido en un contenedor, no es necesario instalarlo por separado.Recomiendo usar seqlearn si puede, python-crfsuite si necesita algoritmos de entrenamiento CRFsuite y velocidad de entrenamiento, pyCRFsuite si necesita una integración CRFsuite más avanzada y listo para enfrentar algunos inconvenientes, python-wapiti si necesita algoritmos o características de entrenamiento Wapiti no está disponible en CRFsuite (como condicionar las observaciones individuales en las transiciones) y el crf de Timvieira si no hay forma de hacer que funcione un compilador C / C ++, pero hay un numpy preconstruido disponible.
Creo que lo que estás buscando es PyStruct .
PyStruct pretende ser una biblioteca de aprendizaje estructurado y predicción fácil de usar. Actualmente implementa solo métodos de margen máximo y un perceptrón, pero podrían seguir otros algoritmos.
El objetivo de PyStruct es proporcionar una herramienta bien documentada para que los investigadores y los no expertos utilicen algoritmos de predicción estructurados. El diseño trata de mantenerse lo más cerca posible de la interfaz y las convenciones de scikit-learn.
PyStruct
viene con buena documentación y se desarrolla activamente en github .
A continuación se muestra una tabla que compara PyStruct
con CRFsuite
y otros paquetes, extraídos de PyStruct - predicción estructurado en Python :