ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • dialogflow로 chatbot 만들기 - (1) entity 생성
    프로그래밍/자연어처리 2017. 12. 31. 16:50
    728x90
    반응형




    dialogflow로 chatbot만들기 


    (1) entity 생성 





    dialogflow(구 API.AI)로 챗봇을 만들어 보겠다. 


    dialogflow는 챗봇 개발 플랫폼 

    api.ai의 새로운 이름으로 

    다양한 기능을 제공하고 있다. 

    자세한 사항은 아래 링크에서 확인하자. 


    챗봇 개발 플랫폼 비교 링크 



    dialogflow  바로가기

     

    일단 계정을 먼저 만들고 create agent 버튼을 클릭해서 

    대화 에이전트를 생성하자. 


    dialogflow 는 알람, 호텔 예약 등의 다양한 챗봇 샘플들을 가지고 있어서 

    필요하면 에이전트에 포함할 수 있다. 





    경제 관련 챗봇을 만들거라 샘플 데이터는 선택하지 않고 

    언어는 한국어로 선택하여 에이전트를 생성하였다. 






    agent가 생성되고 옆의 메뉴를 보면 intents와 entities를 생성할 수 있게 되어있다. 

    여기서 intent는 대화의 의도를 의미하는 것으로 

    인사, 날씨 물어보기, 영화 예약하기 등을 intent로 할 수 있다. 


    entity는 범주화가 가능한 단어들의 단위로 

    음식 이름, 영화 이름 등의 예시가 있다. 


    그리고 이렇게 intent와 entity를 인식 후 

    chat bot이 해야할 행동을 action이라고 한다. 


    이 단어들은 앞으로 chatbot 개발을 하면서 계속 나올 것이다. 





    경제 관련 chatbot을 만들 예정이므로 관련된 entity들을 생성해보겠다. 


    어떤 entity를 생성하는 가에 대한 결정은 

     대화에서 어떤 단어를 알아야 

    내가 제공하고자 하는 기능을 제공 할 수 있을지에 대한 고민에서 시작된다. 


    예를 들어, 어떤 사용자가 아래와 같이 아파트 실거래가를 물었을 때 

    실거래가를 알려주고 싶다면 아래 문장에서 어떤 정보를 인식할 필요가 있는가? 


    상록 라이프 아파트 실거래가가 얼마야? 


    일단 실거래가 라는 가격 정보가 필요할 것이고 

    아파트 라는 부동산 타입 정보 

    그리고 아파트 이름에 대한 정보도 필요할 것이다.


    이것들을 각각 moneytype, realestatetype,  apartmentname이라는 entity로 생성해보겠다.  





    create entity 버튼을 눌러서  moneytype 이라는 엔티티를 생성한다. 

    부동산 관련 대화에서 매매가 나 전세금같은 부동산 관련 금전거래의 타입의 의미로 사용할 것이다. 


    entity는 리스트 형태로 직접 입력하거나 

    아니면 csv나 json 파일 형태로 올릴수도 있다. 





    아파트나 빌라 등의 부동산 타입을 의미하는 단어들은 

    realestatetype entity로 저장한다. 






    지금까지 직접 단어들을 입력하였다면 

    아파트 이름들은 개수가 많아 switch to raw mode 버튼을 클릭하여 

    csv 파일을 복사해서 붙이려고 한다. 








    참고로 csv 파일 포맷은 아래와 같다. 

    각각의 엔트리는 하나의 라인으로 적고 

    reference value(대표값)과 synonym(동의어)들을 , 로 연결한다. 

    여기서 주의해야 할 것은 synonym에 대표값도 포함되어 있어야한다는 것이다. 


    예를 들어 우면한라, 우면한라 이런식으로 대표값이 

    두 번 반복이 되도록 csv 파일을 작성한다. 



    하나의 단어들만 입력하니 아래와 같은 에러 화면이 나오니 주의하자. 






    그리고 이름들에 특수기호가 포함되어 있으면 아래와 같은 에러가 발생한다. 










    그 외 사항은 아래 csv format 문서를 참조한다. 







    이렇게 만들려고 한 엔트리들을 다 생성하였다. 

    다음에는 이 엔트리들로 intent를 생성하는 과정을 보여주겠다. 
















    ..


    728x90
    반응형
Designed by Tistory.