Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/parmentf/node-ector

ECTOR is a learning chatterbot. This is its Node.js version.
https://github.com/parmentf/node-ector

Last synced: 7 days ago
JSON representation

ECTOR is a learning chatterbot. This is its Node.js version.

Awesome Lists containing this project

README

        

# ector

ECTOR is a learning chatterbot. This is its Node.js version.
[![Build Status](https://secure.travis-ci.org/parmentf/node-ector.png)](http://travis-ci.org/parmentf/node-ector)
[![NPM version](https://badge.fury.io/js/ector.png)](http://badge.fury.io/js/ector)
[![NPM](https://nodei.co/npm/ector.png)](https://nodei.co/npm/ector/)

## Getting Started
Install the module with: `npm install ector`

```javascript
var Ector = require('ector');
var ector = new Ector();
ector.addEntry("Hello ECTOR!");
var response = ector.generateResponse();
console.log(response.sentence);
```

## Documentation

### Class Ector
Use it to instanciate one bot.

Warning: username and botname should be at least 3 characters long.

## Constructor
### botname
_string_ name of the bot (default: `ECTOR`)
### username
_string_ name of the user (default: `Guy`)

## setUser
### username
_string_ new user's name

return the user's name or an Error.

## setName
### botname
_string_ new bot's name

return _string|Error_ the name of the bot, or an Error.

## addEntry
Add an entry into the ECTOR's Concept Network
### entry
_string_ One or several sentences.
### cns
_conceptNetworkState_ see [ConceptNetworkState].

return _Array|Error_ array of token nodes used in the entry.

## generateResponse
Generate a response from the Concept Network and a network state.

return _Object_ { response, nodes } The _response_ is a string, and _nodes_ is an array of nodes (see [linkNodesToLastSentence]).

## linkNodesToLastSentence

Link nodes to the previous sentence node id (this is automatically set by
[addEntry](https://github.com/parmentf/node-ector#addentry), it is the node id
of the first sentence of the entry).

Used with the nodes returned by [addEntry](https://github.com/parmentf/node-ector#addentry).

### nodes

_Array_ Array of nodes ids.

## injectConceptNetwork
Inject a new [ConceptNetwork] constructor.
Useful when one wants to use specialized ConceptNetwork (e.g.
[FileConceptNetwork](https://github.com/parmentf/node-file-concept-network)).

WARNING: reinitialize `this.cn` and `this.cn[this.username].cns`

### NewConceptNetwok
_ConceptNetwork_ derivated class of [ConceptNetwork](https://github.com/parmentf/node-concept-network).

_(Coming soon)_

## Examples
The [browser-ector](https://github.com/parmentf/browser-ector) is an example of how this library can be used.

You can talk to ECTOR in the browser. [Take a chat](http://parmentf.github.com/browser-ector/ector.html).

Or you add the [hubot-ector script](https://github.com/parmentf/hubot-ector)
to a [Hubot](https://github.com/github/hubot).

## Contributing
In lieu of a formal styleguide, take care to maintain the existing coding style. Add unit tests for any new or changed functionality. Lint and test your code using [mocha](http://mochajs.org/).

## Release History

* 2014/08/07: version 0.1.7: fix bug: injector did not always work.
* 2013/01/27: version 0.1.6: add a ConceptNetwork injector.
* 2013/01/25: version 0.1.5: fix bug: replace all names in a response.
* 2013/01/17: version 0.1.4: fix bug: beg value for second sentence.
* 2013/01/17: version 0.1.3: fix bug: create node for second sentence.
* 2013/01/06: version 0.1.2: add linkNodesToLastSentence()
* 2013/01/05: version 0.1.1: fix github URL (to install)
* 2013/01/05: version 0.1.0: first release

Warning: this is a work in progress.

## License
Copyright (c) 2012 François Parmentier
Licensed under the MIT license.