반응형
반응형

[ChatScript] ChatScript - https://github.com/bwilcox-1234/ChatScript


Natural Language tool/dialog manager


ChatScript

Natural Language tool/dialog manager

ChatScript is the next generation chatbot engine that has won the Loebner's 4 times and is the basis for natural language company for a variety of tech startups.

ChatScript is a rule-based engine, where rules are created by humans writers in program scripts through a process called dialog flow scripting. These use a scripting metalanguage (simply called a "script") as their source code. Here what a ChatScript script file looks like:

#
# file: food.top
#
topic: ~food []

#! I like spinach
s: ( I like spinach ) Are you a fan of the Popeye cartoons?
	
	a: ( ~yes )  I used to watch him as a child. Did you lust after Olive Oyl?
    	    b: ( ~no ) Me neither. She was too skinny.
    	    b: ( yes ) You probably like skinny models.
	
	a: ( ~no ) What cartoons do you watch?
     		b: ( none ) You lead a deprived life.
     		b: ( Mickey Mouse ) The Disney icon.

#! I often eat chicken
u: ( ![ not never rarely ] I * ~ingest * ~meat ) You eat meat.

#! I really love chicken
u: ( !~negativeWords I * ~like * ~meat ) You like meat.

#! do you eat bacon?
?: ( do you eat _ [ ham eggs bacon] ) I eat '_0

#! do you like eggs or sushi?
?: ( do you like _* or _* ) I don't like '_0 so I guess that means I prefer '_1.

#! I adore kiwi.
s: ( ~like ~fruit ![~animal _bear] )  Vegan, you too...

#! do you eat steak?
?: ( do you eat _~meat ) No, I hate _0.

#! I eat fish.
s: ( I eat _*1 > ) 
  $food = '_0 
  I eat oysters.

Above example mentioned in article How to build your first chatbot using ChatScript.

Basic Features

  • Powerful pattern matching aimed at detecting meaning.
  • Simple rule layout combined with C-style general scripting.
  • Built-in WordNet dictionary for ontology and spell-checking.
  • Extensive extensible ontology of nouns, verbs, adjectives, adverbs.
  • Data as fact triples enables inferencing and supports JSON representation.
  • Rules can examine and alter engine and script behavior.
  • Planner capabilities allow a bot to act in real/virtual worlds.
  • Remembers user interactions across conversations.
  • Document mode allows you to scan documents for content.
  • Ability to control local machines via popen/tcpopen/jsonopen.
  • Ability to read structured JSON data from websites.
  • Postgres and Mongo databases support for big data or large-user-volume chatbots.

OS Features

  • Runs on Windows or Linux or Mac or iOS or Android
  • Fast server performance supports a thousand simultaneous users.
  • Multiple bots can cohabit on the same server.

Support Features

  • Mature technology in use by various parties around the world.
  • Integrated tools to support maintaining and testing large systems.
  • UTF8 support allows scripts written in any language
  • User support forum on chatbots.org
  • Issues or bugs on this repo

Getting started

Installation

Take this project and put it into some directory on your machine (typically we call the directory ChatScript, but you can name it whatever). That takes care of installation.

git clone https://github.com/bwilcox-1234/ChatScript

Standalone mode - run locally on a console (for developement/test)

From your ChatScript home directory, go to the BINARIES directory:

cd BINARIES

And run the ChatScript engine

Windows

ChatScript

Linux

./LinuxChatScript64 local

Note: to set the file executable: chmod a+x ./LinuxChatScript64

MacOS

./MacChatScript local

This will cause ChatScript to load and ask you for a username. Enter whatever you want. You are then talking to the default demo bot Harry.

Server Mode (for production)

From your ChatScript home directory, go to the BINARIES directory and run the ChatScript engine as server

Run the server on Windows

ChatScript port=1024

Run the server on Linux

./LinuxChatScript64

Run the server on MacOS

./MacChatScript

This will cause ChatScript to load as a server.
But you also need a client (to test client-server communication). You can run a separate command window and go to the BINARIES directory and type

Run a client (test) on Windows

ChatScript client=localhost:1024 

Run a client (test) on Linux

./LinuxChatScript64 client=localhost:1024

Run a client (test) on MacOS

./MacChatScript client=localhost:1024

This will cause ChatScript to load as a client and you can talk to the server.

How to build a bot

Run ChatScript locally. From the ChatScript command prompt, type

:build Harry

or whatever other preinstalled bot exists. If you have revised basic data, you can first:

:build 0

How to compile the engine.

On windows if you have Visual Studio installed, launch VS2010/chatscript.sln or VS2015/chatscript.sln and do a build. The result will go in the BINARIES directory.

On Linux, go stand in the SRC directory and type make server (assuming you have make and g++ installed). This creates BINARIES/ChatScript, which can run as a server or locally. There are other make choices for installing PostGres or Mongo.

Full Documentation

ChatScript Wiki (user guides, tutorials, papers)

Contributing

  1. Fork it
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Add some feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create new Pull Request

Last releases

changes.md

Author


반응형
반응형

[ChatScript] ChatScript start & stop


설치 디렉토리 에서  ./BINARIES/의 CHARSCRIPT 명령어 실행. 


>chatscript 


Enter user name : 이름


한참 대화 후 종료할때 명령어. 


:quit


>:quit  

Exiting ChatScript via Quit


D:\>  



반응형
반응형

챗봇 시작해보기   https://www.slideshare.net/ssusercf5d12/ss-69518853


Python 으로 Slackbot 개발하기   https://www.slideshare.net/ssusercf5d12/python-slackbot


20170227 파이썬으로 챗봇_만들기     https://www.slideshare.net/KimSungdong1/20170227-72644192


머신러닝의 자연어 처리기술(I)    https://www.slideshare.net/ssuser06e0c5/i-64267027


인공지능, 기계학습 그리고 딥러닝  https://www.slideshare.net/JinwonLee9/ss-70446412  


[F2]자연어처리를 위한 기계학습 소개   https://www.slideshare.net/deview/f2-14341235





.

반응형
반응형

챗봇 개발을 위한 네이버 랩스 api



챗봇 개발을 위한 네이버 랩스 api

1. NAVER LABS 김정희 (jeonghee.kim@navercorp.com) 챗봇 개발을 위한 네이버 랩스 API

2. 2

3. 3 Services Devices

4. 4 Services Devices Ambient Intelligence Service Platform

5. 5 Services Devices Natural Language Interface

6. 6 Why Natural Language Interface ?

7. 7

8. 8

9. 9 제한된 interface 환경 Complex UX

10. 10 인간에게 가장 자연스러운 interface “Speech, Dialogue”

11. 11

12. 12

13. 13 Service Platform 이 된 메신저

14. 14 메신저에서 가장 자연스러운 Service UX “Dialogue”

15. 15 Pizza Service in Messenger

16. 16

17. • Chatbot 으로 서비스 하려면 ? 17

18. • Chatbot 으로 서비스 하려면 ? • ”슈프림피자 4개 주세요” • 무엇을 해야 할까? 18

19. • Chatbot 으로 서비스 하려면 ? • ”슈프림피자 4개 주세요” • 메뉴 : 슈프림피자 • 수량 : 4개 • 의도 : 주문 19

20. • Chatbot 으로 서비스 하려면 ? • ”슈프림피자 4개 주세요” • 메뉴 : 슈프림피자 • 수량 : 4개 • 의도 : 주문 • Natural Language Understanding 20

21. • Chatbot 으로 서비스 하려면 ? • ”슈프림피자 4개 주세요” • 메뉴 : 슈프림피자 • 수량 : 4개 • 의도 : 주문 • Natural Language Understanding • Who? 21

22. • Chatbot 으로 서비스 하려면 ? • ”슈프림피자 4개 주세요” • 메뉴 : 슈프림피자 • 수량 : 4개 • 의도 : 주문 • Natural Language Understanding • Who? • 서비스 개발자 • 어렵다. 귀찮다 22

23. Natural Language Understanding Natural Language 23

24. 24

25. 25 한국어

26. • 한국어 • 교착어 • 조사, 어미, 어간 • 형태소 분석 • 아버지가방에 들어가신다

27. 27

28. • 대화형 인터페이스를 만들 수 있는 엔진 및 개발 툴 • Named entity recognition 및 intent analysis 를 통한 자연어 처리 • Chat bot, app, service, device 등에 자연어 대화 인터페이스

29. • 한국어 자연어 처리 • 한국어 형태소 분석, 자연어 이해 • 한국어를 시작으로 global language 로 확장

30. Natural Language 30

31. • Built - in • Service - defined

32. • “슈프림피자 4개 주세요” • “치즈 3개로 바꿔주세요” • “4개”, “3개” • 수량 정보 • 자주 사용 예상되는 정보 • 수량, 주소, 인명 등 • 알아서 분석 해 줬으면… 32

33. • Built-in entity • 대화 서비스에서 많이 사용될 것으로 예상되는 entity • 장소, 인명, 시간 등 25개 제공 • Built-in intent • 대화 서비스에서 많이 사용될 것으로 예상되는 intent • Yes, no, cancel 등 7개 제공

34. • “슈프림 피자”, “치즈” • Service 에 따라 unique 한 정보 • 서비스 개발자가 직접 • Entity name • Entity list • 피자 메뉴 • 슈프림 : 수프림 • 페퍼로니 : 페페로니 • 치즈 : 치이즈 34

35. • Service-defined entity • 특정 서비스에서 필요하다고 생각되는 unique 한 entity 를 서비스 개발 자가 설정할 수 있는 tool • Ex) 커피 종류, 피자 종류 등 • Service-defined intent • 특정 서비스에서 필요하다고 생각되는 unique 한 intent 를 서비스 개발 자가 설정할 수 있는 tool • Ex) 피자 주문, 날씨 확인 등

36. User Messenger Service AMICA.ai Text NLU Result Service Response

37. • Dialogue management (DM) 은 제공하지 않는다. • Service response 를 결정할 때 dialogue history 사용은 service logic 에서 • DM 및 서비스 시나리오는 서비스 개발자가 직접 • 향후 개발 방향 • DM 까지 편하게 설계할 수 있도록

38. 38 if (!사이즈) printf( ”어떤 사이즈를 원하시나요”);

39. 39

40. 40 Q&A

반응형
반응형






Botkit is a toolkit for making bot applications 


Botkit - Building Blocks for Building Bots


https://github.com/howdyai/botkit



Botkit은 메시징 플랫폼 내부에있는 유용하고 창조적 인 봇을 설계하고 실행하는 프로세스를 용이하게하기 위해 설계되었습니다. 봇은 메시지를 보내고받을 수있는 응용 프로그램으로, 대부분의 경우 사람과 함께 사용자로 표시됩니다.

일부 봇은 사람들처럼 말하고, 다른 봇들은 백그라운드에서 조용히 일하고, 다른 봇들은 현대 모바일 애플리케이션과 같은 인터페이스를 제공합니다. Botkit은 개발자에게 어떤 종류의 봇이라도 구축하는 데 필요한 도구를 제공합니다! 개발자가 API 엔드 포인트를 처리하는 대신 새로운 애플리케이션 및 경험을 개발하는 데 집중할 수 있도록 메시지를주고받는 인터페이스를 제공합니다.

Botkit을 사용하는 우리의 목표는 봇 건물을 쉽고 재미있게 만들고 말하기 기계로 가득차있는 미래를 창조하고자하는 욕구를 가진 누구나 쉽게 접근 할 수있게 만드는 것입니다! 우리는이 비전을 현실로 만들기위한 몇 가지 도구를 제공합니다.

Botkit은 다음을 비롯하여 널리 사용되는 메시징 플랫폼을 처리 할 수있는 포괄적 인 도구 세트를 제공합니다.



반응형
반응형

‘감성 지능 챗봇’ 나온다 


인간과 로봇이 감정적으로 상호작용하는 날이 머지않아 보인다. <가디언>은 5월5일(현지시간) 중국 칭화대의 연구팀이 ‘감성 지능’을 지닌 챗봇을 개발했다고 보도했다. 챗봇의 이름은 ‘ECM(Emotional Chatting Machine)’이다.

ECM이 인간의 감정을 공부한 배움터는 수많은 콘텐츠가 쏟아지는 소셜 미디어다. 연구팀은 중국 SNS인 웨이보에 올라온 포스팅 2만3천건을 분석해 행복, 슬픔, 분노 등 주요 감정 카테고리에 따라 분류했다. 이렇게 만들어진 데이터베이스를 바탕으로 ECM에 사용자의 감정을 이해하고 공감하며, 적절하게 답하는 방법을 학습시켰다.

ECM에는 사용자가 취향에 따라 선택할 수 있는 행복, 슬픔, 분노, 혐오감, 좋아함 등 5가지 모드가 있다. ECM은 각 모드에 따라 사용자의 감정에 공감한다.

예를 들어 감성 지능이 없는 챗봇에 “길이 막혀서 늦겠어. 오늘은 최악의 날이야”라고 말하면 “오늘 늦겠네”라고 답할 테지만, ECM은 모드에 따라 “인생은 때때로 엉망진창이야!”(혐오 모드), “나는 너를 지지하기 위해 언제나 이곳에 있어”(좋아함 모드) 등 답변을 내놓는다.

사용자와 완벽한 감정적 교류를 했다고 하기엔 무리이지만, 여러 전문가는 ECM이 높은 응용 가능성을 지니고 있다고 평가했다.

<MIT 테크놀로지 리뷰>는 공감 능력은 인간 의사소통에 있어 매우 중요한 요소라고 짚으며, ECM이 콜센터와 같은 곳에서 유용하게 쓰일 것이라고 예상했다.

임페리얼 칼리지 런던에서 컴퓨터공학을 연구하는 본 슐러 교수는 ECM이 감정적 교류가 가능한 개인 로봇 비서를 개발하는 데 “중요한 성과”라고 평가했다. ECM 기술을 바탕으로 로봇 비서가 단순히 기능적인 업무를 돕는 것에서 발전해 사용자의 정서적인 흐름을 파악하고 공감할 수 있는 수준으로 나아갈 수 있다는 것이다.

ECM이 악용될 가능성에 대한 우려도 있다. 가령 감성 지능을 장착한 로봇이 사용자를 꾀어 사용자의 민감한 개인 데이터를 빼돌릴 수 있다. 혹은 기업이 더 많은 상품을 팔기 위해 사용자의 심리를 조작할 가능성도 있다. 옥스퍼드 인터넷 연구소의 산드라 와쳐 컴퓨터 과학자는 “사람들이 슬프거나 지루할 때 더 많은 제품을 산다는 경향을 발견한다면 사용자의 감정 흐름을 읽을 수 있는 기술은 기업에 매우 흥미로운 도구가 될 것”이라고 말했다.


.


반응형

+ Recent posts