add interprete function
This commit is contained in:
parent
534edfc22d
commit
4b44ced155
27
asd.pl
27
asd.pl
@ -145,3 +145,30 @@ suggest(Symptoms, Answer) :-
|
|||||||
suggest(Symptoms, Answer) :-
|
suggest(Symptoms, Answer) :-
|
||||||
checkForDiseaseWeak(Symptoms, 'atrial fibrillation'),
|
checkForDiseaseWeak(Symptoms, 'atrial fibrillation'),
|
||||||
Answer = "The patients disease might be atrial fibrillation.".
|
Answer = "The patients disease might be atrial fibrillation.".
|
||||||
|
|
||||||
|
% interprete input
|
||||||
|
|
||||||
|
interpret(Input, Symptoms) :-
|
||||||
|
split_string(Input, ".", " ", Splited),
|
||||||
|
iterate(Splited,A),
|
||||||
|
flatten(A, Symptoms).
|
||||||
|
|
||||||
|
envelop([X], [Z]):-
|
||||||
|
Z=(X).
|
||||||
|
|
||||||
|
envelop([X|Xs], [Z|Zs]) :-
|
||||||
|
Z=(X),
|
||||||
|
envelop(Xs,Zs).
|
||||||
|
|
||||||
|
iterate([_], []).
|
||||||
|
|
||||||
|
|
||||||
|
iterate([X|Xs], [Z|WithoutLast]) :-
|
||||||
|
(sub_string(X,_,_,_,'Patient has ')->string_length(X,AA),L is AA-12, sub_string(X,12,L,_,AAA), split_string(AAA, ",", " ", AAAA),envelop(AAAA,Z);
|
||||||
|
(sub_string(X,_,_,_,'Patient ')->string_length(X,AA),L is AA-8, sub_string(X,8,L,_,AAA), split_string(AAA, ",", " ", AAAA),envelop(AAAA,Z);
|
||||||
|
(sub_string(X,_,_,_,'Patients erythrocyte level is ')->string_length(X,AA),L is AA-30, sub_string(X,30,L,_,AAA), re_replace(",",".",AAA,AAAA), number_string(VAL,AAAA), (VAL>4.2->(VAL>5.4->Z=('erythrocyte',1);Z=('erythrocyte',0));Z=[('erythrocyte',-1)]);
|
||||||
|
(sub_string(X,_,_,_,'Patients temperature is ')->string_length(X,AA), sub_string(X,24,4,_,AAA), re_replace(",",".",AAA,AAAA), number_string(VAL,AAAA), (VAL>37.0->(VAL>38.0->Z=('fever',2);Z=('fever',1));Z=[('fever',0)]);
|
||||||
|
(sub_string(X,_,_,_,'Patients ')->string_length(X,AA),L is AA-15, sub_string(X,9,L,_,AAA), split_string(AAA, ",", " ", AAAA), Z=[('pain',AAAA)];Z='cannot interprete'))))),
|
||||||
|
iterate(Xs, WithoutLast).
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user