2017-01-19 11 views
0

CRF ++를 사용하여 제품 문자열을 다양한 특성 클래스로 구문 분석하여 this question과 유사한 제품 일치를 수행하려고합니다.CRF ++ 템플릿 파일 및 문장 구문

그러나 문제가 발생하는 곳에서는 제품 문자열의 단어 순서가 아직 훈련 파일에 표시되지 않은 경우 CRF가 태그를 정확하게 예측하지 못한다는 것입니다. 이 훈련을 사용하는 경우

panasonic NOUN B-BRAND 
digital ADJ B-PRODUCT 
monitor NOUN I-PRODUCT 
17 # B-SIZE 
inch # I-SIZE 

: 다음 예 훈련 데이터를 포함

#Unigrams 
U00:%x[-1,0] 
U00:%x[0,0] 
U00:%x[1,0] 

#Bigrams 
B 

그리고 crf_learn을 실행합니다 예를 들어

, 나는 단순히 백 - 중 - 단어 템플릿 파일을 사용하고 있습니다 데이터를 올바르게 모델화하면 테스트 문자열 "panasonic digital monitor 17 inch"가 올바른 출력 태그로 구문 분석됩니다. 그러나 "panasonic monitor digital 17 inch"와 같은 문자열에서 모델을 사용할 경우 모델에서 올바른 태그 지정을 인식하지 못하고 '디지털'및 '모니터'태그가 다음과 같이 변경됩니다.

panasonic NOUN B-BRAND 
monitor NOUN B-PRODUCT 
digital ADJ I-PRODUCT 
17 # B-SIZE 
inch # I-SIZE 

내가 무엇이 필요하지만, 않습니다 :

panasonic NOUN B-BRAND 
monitor NOUN I-PRODUCT 
digital ADJ B-PRODUCT 
17 # B-SIZE 
inch # I-SIZE 

이 내 템플릿 파일에 문제가, 또는 CRF는 본질적으로 구문 제한입니까? 또는 어떻게 든 템플릿 파일이나 교육 데이터 열을 수정하여 제품 문자열의 단어 순서를 캡처하거나 무시할 수 있습니까?

답변

0

먼저 템플릿 파일에서 기능 정의가 잘못되었습니다.

모든 기능 템플릿은 U00으로 식별됩니다. 이 성능 :

PS를 개선하는 데 도움이

#context of 3 words 
U00:%x[-1,0] 
U01:%x[0,0] 
U02:%x[1,0] 

#for POS Tag 
U03:%x[0,1] 

희망 : 그것은 당신이 더 많은 기능 템플릿, 예를 시도해야한다고 생각 만 한 기능을하지 3.

두 번째는 본질적 있다는 뜻 : CRF ++ 템플릿 파일에 대한 이해를 위해 https://youtu.be/GJHeTvDkIaE을 볼 수 있습니다.