@ibm-watson/natural-language-classifier-demo v1.2.0
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
apikeyvalue, or copy theusernameandpasswordvalues if your service instance doesn't provide anapikey. - Copy the
urlvalue.
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 haveusernameandpasswordcredentials, train a classifier by using the following command:curl -i -u "<username>":"<password>" \ -F training_data=@training/weather_data_train.csv \ -F training_metadata="{\"language\":\"en\",\"name\":\"TutorialClassifier\"}" \ "<url>/v1/classifiers"Make sure to replace
<username>,<password>and<url>.
If you haveapikeycredentials, use the word "apikey" as your username and yourapikeyas the password.
After running the command, copy the value forclassifier_id.In the application folder, copy the .env.example file and create a file called .env
cp .env.example .envOpen the .env file and add the service credentials that you obtained in the previous step.
Example .env file that configures the
apikeyandurlfor 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- If your service instance uses
usernameandpasswordcredentials, add theNATURAL_LANGUAGE_CLASSIFIER_USERNAMEandNATURAL_LANGUAGE_CLASSIFIER_PASSWORDvariables to the .env file.
Example .env file that configures the
username,password, andurlfor a Natural Language Classifier service instance hosted in the Sydney region:NATURAL_LANGUAGE_CLASSIFIER_USERNAME=522be-7b41-ab44-dec3-g1eab2ha73c6 NATURAL_LANGUAGE_CLASSIFIER_PASSWORD=A4Z5BdGENrwu8 NATURAL_LANGUAGE_CLASSIFIER_URL=https://gateway-syd.watsonplatform.net/natural-language-classifier/api- If your service instance uses
Add the
CLASSIFIER_IDto the previous propertiesCLASSIFIER_ID=522be-7b41-ab44-dec3-g1eab2ha73c6
Running locally
Install the dependencies
npm installRun the application
npm startView 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 loginTarget a Cloud Foundry organization and space.
ibmcloud target --cfEdit the manifest.yml file. Change the name field to something unique.
For example,- name: my-app-name.Deploy the application
ibmcloud app pushView 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 componentsLicense
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.