2012-06-08 3 views
0

Drools는 스테 밍 및/또는 POS 태깅을위한 규칙 작성에 적합합니까? 더 나은 규칙 언어에 대한 제안은 환영합니다. 이 분야에서 규칙 기반 접근법을 사용하는 많은 논문을 읽었지 만 규칙을 작성하는 데 사용 된 라이브러리 나 프레임 워크에 대해서는 언급하지 않았습니다.형태 분석을위한 드로어

내 규칙은 다음과 같다 : 등등

if (length = 3 & first_letter in group1 and second_letter in group2) then ... 
if (length = 3 & first_letter in group1 and second_letter not_in group2) then ... 
if (length = 3 & first_letter not_in group1 and second_letter in group2) then ... 
if (length = 3 & first_letter not_in group1 and second_letter not_in group2) then ... 
if (length = 4... 

... 그리고 있습니다.

문제는 이러한 규칙이 너무 많아서 처리 할 수 ​​없다는 것입니다. 10 개의 문자 그룹이 있고 각 그룹에 속한 각 문자에 대한 경우가 있다고 가정 해보십시오. 단어를 올바르게 분류하는 데 수천 가지의 규칙을 쉽게 사용할 수 있습니다. 그 규칙 중 30 개를 일반 C# 코드로 작성 했으므로이 방법이 얼마나 비효율적인지 알 수있을 정도로 충분했습니다. 나는 이미 종이에 나무로 조직 된 나의 규칙을 가지고있다. 그냥 삽입, 표현, 조정 및 테스트 할 수있는 올바른 프레임 워크가 필요합니다.

제 질문에 대한 답변을 드리겠습니다. 고맙습니다.

+0

Drools에 대한 1000 가지 규칙은 그리 많지 않습니다. 나는 당신보다 훨씬 복잡한 3000 가지 이상의 규칙을 가지고 있습니다. .drl 파일은 데이터베이스에서 생성됩니다. –

답변

1

확실히 Drools를 사용할 수 있습니다. Drools는 수천 가지 규칙 (30k + 규칙이있는 kbases를 보았습니다)을 처리 할 수 ​​있습니다. 위의 규칙보다 훨씬 복잡하며 땀을 내지 않아야합니다.

내가 보는 주된 문제는 런타임이 아니라 규칙을 유지 관리하는 것입니다. 유스 케이스로 인해 수동으로 작업하는 것은 많은 작업을하는 것처럼 보이며 언어/엔진을 선택하는 데 문제가되지 않습니다. 일반적으로 의사 결정 테이블을 사용하여 규칙을 정의 할 수 있습니다. 아니면 스크립트로 모든 규칙을 생성 할 수 있습니까? Drools는이 두 가지를 모두 지원합니다.