Eliza 1.0.0

Eliza 1.0.0

SwiftArchitect维护。



Eliza 1.0.0

  • 作者
  • Xavier Schott

ELIZA

Build Status CocoaPods Carthage compatible MIT License

ELIZA是一个计算机程序,是原始自然语言处理的一个早期例子。ELIZA通过处理用户对脚本的反应来工作,其中最著名的是DOCTOR,一个罗杰斯派心理治疗师的模拟。几乎不使用关于人类思维或情感的信息,DOCTOR有时提供了惊人的类似于人类的互动。ELIZA由马萨诸塞理工学院(MIT)的约瑟夫·魏森鲍姆(Joseph Weizenbaum)于1964年至1966年间编写。当“病人”超越非常小的知识库时,DOCTOR可能会提供一种通用的回应,例如,用“我的头疼”来回应“你为什么说你头疼?”对于“我妈妈恨我”的可能回应是“还有谁在你家里恨你?”ELIZA使用简单的模式匹配技术实现,但有几个用户对此认真起来,甚至在他们弄清楚它是如何工作之后也是如此。它是最早的聊天机器人之一。

示例对话

Hi there.
-- so how are you doing today?
not bad, how about yourself?
-- why do you ask?
I am just curious!
-- how long have you been just curious?
etc.

高级使用方式

- (NSString *)talk:(NSString *)text

单个入口点!使用ChatBot包装器,您只需提供(项目提供的)BBSCHAT.txt

    // ChatBot * elisa;
    self.eliza = [[ChatBot alloc] init];

...然后与Eliza聊天看起来就像这样

    // NSSting * input = textField.text;
    NSString * output = [self.eliza talk:input];

ChatBot是为专门响应传入的消息而设计的,绝不发送未经请求的消息。因此,第一条传入的-talk:消息被忽略,仅触发问候。

就这么多。

低级使用

如果您更喜欢对Eliza Chatbot有更多控制,您可以直接使用它而不是wrapper类。

[[Eliza alloc] init]

创建Eliza的新实例。

- (void)read_script:(NSString *)filePath

使用您自己的脚本初始化Eliza。遵循原始ELIZA脚本格式。

; FORMAT:
; Sxxxxxxxxx - DEFINE SIGNON MESSAGE
; Txxxxx
; Txxxxx     - DEFINE PAIR OF WORDS TO TRANSPOSE
; Nxxxxx     - RESPONSE FOR NULL ENTRY
; Mxxxxx     - DEFINE RESPONSE FOR LATER USE OF "MY"
; Xxxxxxx    - DEFINE RESPONSE FOR NO KEYWORD FOUND
; Kxxxxxx    - DEFINE KEYWORD
; Rxxxxxx    - DEFINE RESPONSE FOR PREVIOUS KEYWORD
- (NSString *)greet_eliza

返回问候消息。

- (NSString *)chat_with_eliza:(NSString *)message

一次典型的对话。