포럼
자연어 해석 모듈(Function)에 대해서 조언부탁드립니다.
2015.06.18 14:13
사람이 읽을 수 있는 자연어를 해석해서 기능을 쉽게 제작할 수 있는방법을 생각하다가 만들어봤습니다.
이전에 인터프리터 애드온을 만들었었는데 이건 모듈입니다
예를 들어
$logged_info = Context::get('logged_info'); echo $logged_info->user_id;
라면
$oFuncModel = getModel('functions'); $outputfunc = $oFuncModel->getNaturalLanguage('회원아이디를 출력해줘');
로 입력하면 됩니다.
사용자는
$oFuncModel = getModel('functions'); $outputfunc = $oFuncModel->getNaturalLanguage();
위의 부분만 알고있으면 됩니다.
1:1 대입이 아닌 파1싱입니다, 파1싱이므로 다중값을 얻어낼 수 있습니다.
$oFuncModel = getModel('functions'); $outputfunc = $oFuncModel->getNaturalLanguage('회원아이디와 모듈ID와 아이피를 출력해줘');
라고 입력하면 admin free 127.0.0.1로 출력됩니다.
$oFuncModel = getModel('functions'); $outputfunc = $oFuncModel->getNaturalLanguage('내가 작성한글의 개수를 출력해줘');
아이템의 카운트도 쉽게 출력가능합니다.
if문과 사용자가 임의로 지정할 수 있는 변수도 제공됩니다.
if문도 그냥 한글로 쓰면 됩니다.
해당모듈을 사용하면 소스코드 한줄만으로 베스트댓글/베스트글/인기글/태그삽입/Ajax 등을 사용할 수 있게됩니다.
그리고 해당기능을 애드온으로 출력하여 사용할 수 있도록 애드온변환기능도 포함됩니다.
중대형사이트가 아닌이상은 큰 속도하락은 없습니다.
제 생각으로는 초보자분들께 많은도움이 될걸로 생각하고 만들었는데 별로 쓸모가 없을지 조언부탁드립니다...
댓글 3
-
숭숭군
2015.06.18 14:50
-
CONORY
2015.06.18 15:09
주관적으로 해석이 가능한 조사같은 건 빼야 되지않을까요?
"회원아이디를 출력해줘"가 아니라 "회원아이디 출력"으로만 해도 객관적인 뜻이 통하지요.. 더 나아가 "출력"이라 단어가 모든 명령어에 중복된다면 그것도 빼버리는 것이 낫겠죠..
아무래도 제한적인 범위탓에 활용성은 떨어지겠지만, 재밌는 도전이 되겠네요.
-
kdp
2015.06.18 15:22
run_func라는 function에서 출력외에 여러가지를 포함합니다
원래는 과거에 무엇을 했는지 내 이름이 무엇인지 오늘 스케줄이 어떻게 되있는지 기타 등등을 모두 포함해서 능동적으로 처리할 수 있게 제작해두었던것을 PHP로 이전했습니다
여러가지를 포함해서 필요해서 넣어두었습니다
자연어 라는것을 '얼마나 융통성있게 해석할것인가' 이게 관건이겠네요.