Gibt es eine beliebte Implementierung von bedingten Zufallsfeldern in Python ?
Ich kann anscheinend keine finden, die weit verbreitet und beliebt ist!
Gibt es eine beliebte Implementierung von bedingten Zufallsfeldern in Python ?
Ich kann anscheinend keine finden, die weit verbreitet und beliebt ist!
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 ).
quelle
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.
quelle
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.
quelle
Ich denke, was Sie suchen, ist PyStruct .
PyStruct
kommt mit einer guten Dokumentation , und es wird aktiv auf Github entwickelt .Nachfolgend finden Sie eine Tabelle zum Vergleich
PyStruct
mitCRFsuite
und anderen Paketen, die aus PyStruct - Structured Prediction in Python extrahiert wurden :quelle