2014-03-03 3 views
0

규칙 분류기를 만들고 무게를 사용하여 아이템 분류 기계를 만들고 싶습니다. 항목을 정의하는 명확한 세부 사항은 없으며 높은 점수 만 정의 할 수 있습니다. 예.DROOLS를 사용하여 아이템 분류하기

If item A has x part then A.set(Category.A, 5) //weigth 5 
If item A has y part then A.set(Category.B,3) //weigth 3 
If item A has z part then A.set(Category.B,2) //weigth 2 
... 

모든 규칙이 실행 된 후에는 각 카테고리의 점수가 있으므로 항목 A는 카테고리가됩니다.

DROOLS를 사용하면 가능합니까? 이것의 어떤 예? 많은 감사. 내가 (예를 들어) 뉴스를 분류 할 : 필요에 따라 더 많은 정보를 추가


.

If NewsA has in title "won" then NewsA is likely SportNews as 20% 
If NewsA is writen by MisterX then NewsA is likely InternationalNews as 60% 
If NewsA has more than 2 times word "football" then NewsA is likely SportNews as 50% 

그래서, 그런 일 뉴스 :

바르셀로나 어제
어쩌구, 저쩌구 ... 축구, 즐 ... 축구, 어쩌구, 저쩌구을 수상했다. ..football ...


MisterX 쓴

20 + 50은 InternationalNews 카테고리 중 60 개가 넘기 때문에이 뉴스는 SportNews로 분류됩니다. 나는 여러 가지 규칙과 무게로 그 문을 구현하고 싶다.
다시 한번 감사드립니다.

답변

1

이 줄에있는 것이 사용자에게 도움이 될 것입니다. 더 자세한 예제를 보려면 더 많은 정보를 제공해야합니다.

rule "category for X part" 
when 
    $itemA: A(hasXPart()) 
then 
    modify(itemA){ category(Category.A, 5) }; 
end 
+1

itemA => $ itemA. 세미콜론은 필요하지 않습니다. – laune

1

이것은 규칙 디자인 패턴 모음에서 "분류 문제"라고 불리는 예입니다. 세부 사항은 다양하지만 첫 번째 문제는 정확히 하나의 규칙이 또는 더 복잡한 상황의 경우이 조사 할 규칙 집합이있는 방식으로 규칙을 디자인하도록 속성의 (일반적으로) 다차원 공간을 분리하는 것입니다. 하나의 관련 속성 그룹

규칙을 일부 순위에 따라 적용해야하는 경우주의해야합니다.

그러나 Andy가 쓴 것처럼 심각한 토론을하기에는이 게시물에 정보가 충분하지 않습니다.

나중에 실제로. 해당 섹션을 https://engage.redhat.com/forms/rule-design-patterns으로 읽는 것이 도움이됩니다.

이 시나리오에서는 규칙에 하드 코드하지 않고 트리거, 카테고리 및 백분율을 사실 (트리거)로 삽입하는 것이 좋습니다. 소수의 기술 규칙은 (1) Trigger 사실을 NewsItem과 연관시키고, (2) 최종 분류 (3) 정리를 위해 최대 범주를 결정해야합니다.

조건 평가 자체가 핵심 단어를 집계하기 위해 NewsItem의 텍스트를 조사하는 것은 좋지 않을 것이라고 생각합니다. 당신은 핵심 단어 세트 (세션 시작 후 한 번, 그것을 저장하고 보존)에 대한 트리거 사실을 평가할 수 있고 "흥미로운"핵심 단어의 빈도를 산출하는 텍스트를 분해하는 한 가지 기능을 가질 수 있습니다.그런 다음, 규칙은 NewsItem과 트리거를 매우 효율적으로 일치시킬 수 있습니다.

관련 문제