CRF'nin python'a uygulanması


Yanıtlar:



15

Daha eski bir kütüphane olduğu için CRF ++ daha fazla gelen bağlantıya sahiptir.
CRFSuite bence üstündür.

  • CRFSuite'nin yazarı, bir modeli eğitirken CRF ++ ' dan 20 kat daha hızlı olduğunu iddia ediyor .
  • Giriş verileri için daha az katı gereksinimler.

Python bağlamaları arıyorsanız, CRFSuite de daha iyidir çünkü Python'da bir model yetiştirebilirsiniz, CRF ++ da yalnızca Python'da mevcut modelleri test edebilirsiniz. (Bu benim için anlaşma kırıcı oldu.) CRFSuite, NER, Chunking ve POS etiketleme gibi Python'da da bir grup örnek kodla geliyor.


3
CRFSuite tarafından sağlanan NER ve Yığınlamanın nasıl kullanılacağını açıklayabilir misiniz? Farklı bir formatta eğitim verilerini bekliyor gibi görünüyor. bunu nereden bulabilirim?
Legend

14

İşte bazı diğer paketleyicileri / uygulamaları:

  • https://github.com/adsva/python-wapiti - http://wapiti.limsi.fr/ için Python sarıcı . Wapiti hızlı; crfsuite benchmarkları wapiti için adil değil çünkü wapiti L-BFGS eğitimini birden fazla CPU çekirdeğine paralel hale getirebilir ve bu özellik benchmarklarda kullanılmaz. Wapiti'nin sorunu, kütüphane olarak yazılmamasıdır. Sarıcı bunun üstesinden gelmek için çaba sarf eder, ancak yine de yakalanamaz hale gelebilir exit()ve egzersiz sırasında hafıza sızıntıları gördüm. Ayrıca, wapiti temsil edebileceği bir tür özellik ile sınırlıdır, ancak CRFsuite de sınırlıdır (farklı bir şekilde). Wapiti, bir paketleyicide paketlenmiştir, ayrı olarak kurulmasına gerek yoktur.
  • https://github.com/jakevdp/pyCRFsuite - crfsuite için bir sarıcı. Sarıcı oldukça ileri düzeydedir ve scipy seyrek matrislerin bir girdi olarak kullanılmasına izin verir, ancak çözülmemiş bazı sorunlar var gibi gözüküyor, bazı durumlarda segfault elde etmek mümkün.
  • https://github.com/tpeng/python-crfsuite - başka bir crfsuite sarıcısı. Bu oldukça basittir; Daha kolay kurulum için crfsuite içerir ve sadece 'pip install python-crfsuite' ile kurulabilir.
  • https://github.com/larsmans/seqlearn , çoğu durumda CRF'nin yerine geçebilecek Yapısal Perceptron'u sağlar. Yapılandırılmış Perceptron uygulaması seqlearn'de çok hızlıdır. Seqlearn'e CRF desteği ekleyen bir PR (yazı sırasında birleştirilmemiş) vardır; sağlam görünüyor.
  • https://github.com/timvieira/crf - oldukça basit ve bazı temel özelliklere sahip değil, ancak sadece numpy gerektiriyor.

Eğer mümkünse seqlearn kullanmanızı tavsiye ederim, eğer CRFsuite eğitim algoritmaları ve eğitim hızına ihtiyacınız varsa python-crfsuite, daha gelişmiş CRFsuite entegrasyonuna ihtiyacınız varsa ve bazı rahatsızlıklarla yüzleşmeye hazırsanız pyCRFsuite, Wapiti eğitim algoritmaları veya özelliklerine ihtiyacınız varsa python-wapiti CRFsuite'de (geçişler üzerine bireysel gözlemlerin koşullandırılması gibi) ve bir C / C ++ derleyici çalışmasının mümkün olmadığı durumlarda timvieira'nın crf'sinde bulunmaz, ancak önceden oluşturulmuş bir numpy kullanılabilir.


7

Bence aradığın şey PyStruct .

PyStruct, kullanımı kolay bir yapılandırılmış öğrenme ve tahmin kütüphanesi olmayı hedeflemektedir. Şu anda sadece maksimum kenar boşluğu metotlarını ve bir algılayıcısını uygular, ancak diğer algoritmalar da bunu takip edebilir.

PyStruct'ın amacı, araştırmacılar için olduğu kadar, uzman olmayan kişilerin de yapılandırılmış tahmin algoritmalarından yararlanmaları için iyi belgelenmiş bir araç sağlamaktır. Tasarım, scikit-learn arayüzüne ve konvansiyonlarına mümkün olduğunca yakın durmaya çalışır.

PyStructiyi bir dokümantasyon ile gelir ve aktif olarak github üzerinde geliştirilir .

Aşağıda karşılaştıran bir tablodur PyStructile CRFsuiteve çıkarılan diğer paketler, PyStruct - Python Structured öngörü :

Comparison of structured prediction software packages

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.