Awesome
<h1 align="center" style="border-bottom: none;">Deprecated: this repo has been archived and will not receive further updates. It is being left in read-only mode for documentation purposes, but the code should not be considered current.</h1> <h1 align="center" style="border-bottom: none;">π Natural Language Classifier Sample Application</h1> <h3 align="center">This Node.js app demonstrates some of the Natural Language Classifier service features.</h3> <p align="center"> <a href="http://travis-ci.org/watson-developer-cloud/natural-language-classifier"> <img alt="Travis" src="https://travis-ci.org/watson-developer-cloud/natural-language-classifier.svg?branch=master"> </a> <a href="#badge"> <img alt="semantic-release" src="https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg"> </a> </p> </p>The IBM Watsonβ’ Natural Language Classifier service applies deep learning techniques to make predictions about the best predefined classes for short sentences or phrases. The classes can trigger a corresponding action in an application, such as directing a request to a location or person, or answering a question. After training, the service returns information for texts that it hasn't seen before. The response includes the name of the top classes and confidence values.
You can view a demo of this app.
Prerequisites
- Sign up for an IBM Cloud account.
- Download the IBM Cloud CLI.
- Create an instance of the Natural Language Classifier service and get your credentials:
- Go to the Natural Language Classifier page in the IBM Cloud Catalog.
- Log in to your IBM Cloud account.
- Click Create.
- Click Show to view the service credentials.
- Copy the
apikey
value. - Copy the
url
value.
Configuring the application
- The Natural Language Classifier service must be trained before you can successfully use this application. The training data is provided in the file
training/weather_data_train.csv
.
If you haveusername
andpassword
credentials, train a classifier by using the following command:
curl -i -u "apikey":"<apikey>" \
-F training_data=@training/weather_data_train.csv \
-F training_metadata="{\"language\":\"en\",\"name\":\"TutorialClassifier\"}" \
"<url>/v1/classifiers"
Make sure to replace <apikey>
and <url>
.
After running the command, copy the value for classifier_id
.
-
In the application folder, copy the .env.example file and create a file called .env
cp .env.example .env
-
Open the .env file and add the service credentials that you obtained in the previous step.
Example .env file that configures the
apikey
andurl
for a Natural Language Classifier service instance hosted in the US East region:NATURAL_LANGUAGE_CLASSIFIER_IAM_APIKEY=X4rbi8vwZmKpXfowaS3GAsA7vdy17Qh7km5D6EzKLHL2 NATURAL_LANGUAGE_CLASSIFIER_URL=https://gateway.watsonplatform.net/natural-language-classifier/api
-
Add the
CLASSIFIER_ID
to the previous propertiesCLASSIFIER_ID=522be-7b41-ab44-dec3-g1eab2ha73c6
Running locally
-
Install the dependencies
npm install
-
Run the application
npm start
-
View the application in a browser at
localhost:3000
Deploying to IBM Cloud as a Cloud Foundry Application
-
Login to IBM Cloud with the IBM Cloud CLI
ibmcloud login
-
Target a Cloud Foundry organization and space.
ibmcloud target --cf
-
Edit the manifest.yml file. Change the name field to something unique.
For example,- name: my-app-name
. -
Deploy the application
ibmcloud app push
-
View the application online at the app URL.
For example: https://my-app-name.mybluemix.net
Directory structure
.
βββ app.js // express routes
βββ config // express configuration
βΒ Β βββ error-handler.js
βΒ Β βββ express.js
βΒ Β βββ security.js
βββ manifest.yml
βββ package.json
βββ public // static resources
βββ server.js // entry point
βββ test // unit tests
βββ training
βΒ Β βββ weather_data_train.csv // training file
βββ views // react components
License
This sample code is licensed under Apache 2.0.
Full license text is available in LICENSE.
Contributing
See CONTRIBUTING.
Open Source @ IBM
Find more open source projects on the IBM Github Page.