Antworten:
CRF ++ ist im Allgemeinen eine beliebte Wahl und verfügt über Python-Bindungen . CRFSuite hat auch dokumentiert Bindungen hier , aber scheint nicht so viel weitverbreitete Verwendung als CRF ++ gesehen zu haben. Zum jetzigen Zeitpunkt fehlt den übergeordneten Frameworks für maschinelles Lernen wie Scikit-Learn die CRF-Unterstützung (siehe diese Pull-Anforderung ).
CRF ++ hat mehr eingehende Links, da es sich um eine ältere Bibliothek handelt.
CRFSuite ist meiner Meinung nach überlegen.
Wenn Sie nach Python-Bindungen suchen, ist CRFSuite auch besser, da Sie ein Modell in Python trainieren können, während Sie in CRF ++ nur vorhandene Modelle in Python testen können. (Das war der Deal Breaker für mich.) CRFSuite enthält auch eine Reihe von Beispielcode in Python, wie NER, Chunking und POS-Tagging.
Hier sind einige andere Wrapper / Implementierungen:
exit()
, und ich habe während des Trainings Speicherlecks gesehen. Außerdem ist Wapiti in einer Art von Funktionen eingeschränkt, die es darstellen kann, CRFsuite ist jedoch auch eingeschränkt (auf eine andere Art und Weise). Wapiti ist in einem Wrapper enthalten und muss nicht separat installiert werden.Ich würde empfehlen, nach Möglichkeit seqlearn zu verwenden, python-crfsuite, wenn Sie CRFsuite-Trainingsalgorithmen und Trainingsgeschwindigkeit benötigen, pyCRFsuite, wenn Sie eine erweiterte CRFsuite-Integration benötigen und bereit sind, einige Unannehmlichkeiten zu bewältigen, python-wapiti, wenn Sie Wapiti-Trainingsalgorithmen oder -Funktionen benötigen Nicht verfügbar in CRFsuite (wie das Konditionieren einzelner Beobachtungen auf Übergängen) und in timvieiras crf, wenn es keine Möglichkeit gibt, einen C / C ++ - Compiler zum Laufen zu bringen, aber eine vorgefertigte Zahl verfügbar ist.
Ich denke, was Sie suchen, ist PyStruct .
PyStruct zielt darauf ab, eine benutzerfreundliche strukturierte Lern- und Vorhersagebibliothek zu sein. Gegenwärtig werden nur Max-Margin-Methoden und ein Perzeptron implementiert, andere Algorithmen könnten jedoch folgen.
Das Ziel von PyStruct ist es, Forschern und Laien ein gut dokumentiertes Tool zur Verfügung zu stellen, mit dem sie strukturierte Vorhersagealgorithmen verwenden können. Das Design versucht so nah wie möglich an der Oberfläche und den Konventionen von scikit-learn zu bleiben.
PyStruct
kommt mit einer guten Dokumentation , und es wird aktiv auf Github entwickelt .
Nachfolgend finden Sie eine Tabelle zum Vergleich PyStruct
mit CRFsuite
und anderen Paketen, die aus PyStruct - Structured Prediction in Python extrahiert wurden :