파이썬에서 CRF 구현


답변:


13

CRF ++ 는 일반적으로 인기있는 선택이며 Python 바인딩이 있습니다. CRFSuite 에는 여기에 바인딩 된 문서가 있지만 CRF ++만큼 널리 사용되는 것으로 보이지는 않습니다. 이 글을 쓰는 시점에서 scikit-learn과 같은 고급 머신 러닝 프레임 워크에는 CRF 지원이 없습니다 ( 이 풀 요청 참조 ).


15

CRF ++는 이전 라이브러리이므로 더 많은 수신 링크가 있습니다.
CRFSuite 는 제 의견이 우수합니다.

파이썬 바인딩을 찾고 있다면 CRFSuite가 더 좋습니다. 파이썬에서 모델을 훈련시킬 수 있기 때문에 CRF ++에서는 파이썬으로 기존 모델 만 테스트 할 수 있습니다. CRFSuite에는 NER, Chunking 및 POS 태깅과 같은 Python의 예제 코드가 함께 제공됩니다.


3
CRFSuite에서 제공하는 NER 및 청킹 사용법에 대해 자세히 설명해 주시겠습니까? 다른 형식의 학습 데이터가 필요합니다. 어디서 찾을 수 있습니까?
Legend

14

다른 래퍼 / 구현은 다음과 같습니다.

  • https://github.com/adsva/python-wapiti - 파이썬 래퍼 http://wapiti.limsi.fr/ . 와피 티는 빠르다. wapiti가 L-BFGS 교육을 여러 CPU 코어로 병렬화 할 수 있기 때문에 crfsuite 벤치 마크는 wapiti에 공평하지 않으며,이 기능은 벤치 마크에서 사용되지 않았습니다. Wapiti의 문제점은 라이브러리로 작성되지 않았다는 것입니다. 래퍼는 그것을 극복하려고 노력하지만 여전히 잡을 수는 없으며 exit()훈련 중에 메모리 누수가 발생했습니다. 또한 wapiti는 표현할 수있는 기능 유형이 제한되어 있지만 CRFsuite도 (다른 방식으로) 제한됩니다. Wapiti는 래퍼에 번들로 제공되므로 별도로 설치할 필요가 없습니다.
  • https://github.com/jakevdp/pyCRFsuite-crfsuite 의 래퍼입니다. 래퍼는 상당히 고급이며 scipy sparse 행렬을 입력으로 사용할 수 있지만 해결되지 않은 문제가있는 것 같습니다. 경우에 따라 segfault를 얻을 수 있습니다.
  • https://github.com/tpeng/python-crfsuite- 또 다른 crfsuite 래퍼. 이것은 다소 간단합니다. 더 쉬운 설치를 위해 crfsuite를 번들로 제공하며 'pip install python-crfsuite'만으로 설치할 수 있습니다.
  • https://github.com/larsmans/seqlearn 은 많은 경우 CRF를 대체 할 수있는 Structured Perceptron을 제공합니다. 구조화 된 퍼셉트론 구현은 seqlearn에서 매우 빠릅니다. seqlearn에 CRF 지원을 추가하는 PR (작성시 병합되지 않음)이 있습니다. 견고 해 보입니다.
  • https://github.com/timvieira/crf- 매우 기본적이고 필수적인 기능은 없지만 숫자가 필요합니다.

가능한 경우 seqlearn을 사용하고 CRFsuite 교육 알고리즘 및 교육 속도가 필요한 경우 python-crfsuite, 고급 CRFsuite 통합이 필요하고 불편을 겪을 준비가되면 pyCRFsuite, Wapiti 교육 알고리즘 또는 기능이 필요한 경우 python-wapiti를 사용하는 것이 좋습니다 C / C ++ 컴파일러를 작동시킬 방법이 없지만 사전 빌드 된 numpy를 사용할 수있는 경우 CRFsuite (전환에 대한 개별 관측 조건 조정과 같은) 및 timvieira의 crf에서는 사용할 수 없습니다.


7

나는 당신이 찾고있는 것이 PyStruct 라고 생각합니다 .

PyStruct는 사용하기 쉬운 구조화 된 학습 및 예측 라이브러리가되는 것을 목표로합니다. 현재 max-margin 메소드와 perceptron 만 구현하지만 다른 알고리즘이 따를 수 있습니다.

PyStruct의 목표는 비전문가뿐만 아니라 연구원들에게 체계적인 예측 알고리즘을 활용할 수 있도록 잘 문서화 된 도구를 제공하는 것입니다. 디자인은 scikit-learn의 인터페이스 및 규칙에 최대한 가깝게 유지하려고합니다.

PyStruct좋은 문서 와 함께 제공되며 , github에서 활발히 개발되었습니다 .

아래 비교하는 테이블 PyStructCRFsuite와에서 추출한 다른 패키지, PyStruct - 파이썬에서 구조화 예측 :

구조화 된 예측 소프트웨어 패키지 비교

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.