npm package: @qrvey/text-analytics
Description: A powerful text analytics library that provides easy integration with AWS Comprehend and Azure Text Analytics for language detection, sentiment analysis, entity recognition, and key phrase extraction.
Latest version: 1.0.1-551

# @qrvey/text-analytics

A powerful text analytics library that provides easy integration with AWS Comprehend and Azure Text Analytics for language detection, sentiment analysis, entity recognition, and key phrase extraction.

## Require environment variables

```javascript

AWS_DEFAULT_REGION; //AWS Region for SQS service
AWS_ACCESS_KEY_ID; //AWS Access key for Event Bridge service
AWS_SECRET_ACCESS_KEY; //AWS Secret key for Event Bridge service
PLATFORM_TYPE; //Platform type (possible value CONTAINER)
CLOUD_PROVIDER; // Cloud service. Possible values azure, aws
```

## Table of Contents

- [Installation](#installation)
- [Usage](#usage)
- [API Reference](#api-reference)
    - [TextAnalyticsService](#textAnalyticsService)
        - [detectLanguage](#detectLanguage)
        - [detectEntities](#detectEntities)
        - [detectSentiment](#detectSentiment)
        - [detectKeyPhrases](#detectKeyphrases)
        - [textAnalysisComplete](#textAnalysisComplete)
        - [detectLanguageBatch](#detectLanguageBatch)
        - [detectEntitiesBatch](#detectEntitiesBatch)
        - [detectSentimentBatch](#detectSentimentBatch)
        - [detectKeyPhrasesBatch](#detectKeyPhrasesBatch)
        - [textAnalysisCompleteBatch](#textanalysiscompletebatch)
- [Examples](#examples)


## Installation

You can install the **@qrvey/text-analytics** package via npm. Run the following command in your terminal:

```bash
npm install @qrvey/text-analytics
```

## Usage
```javascript
import TextAnalyticsServiceFactory from '@qrvey/text-analytics';

async function main() {
    const textAnalyticsService = await TextAnalyticsServiceFactory.createTextAnalyticsService();
    const language = await textAnalyticsService.detectLanguage('This is a sample text.');
    console.log(language);
}
```

## API Documentation

# textAnalyticsService
The TextAnalyticsService provides methods for text analysis.

# detectLanguage
Detects the dominant language of the provided text.


### Parameters:
text: A string containing the text to analyze.

### Returns
A promise that resolves to an object implementing IDetectDominantLanguageOutput.

```javascript
detectLanguage(text: string): Promise<IDetectEntityOutput>

interface IDetectDominantLanguageOutput {
    code: string;
    score: number;
}
```

# detectEntities
Detects entities in the provided text.

### Parameters:

text: A string containing the text to analyze.

### Returns

A promise that resolves to an object implementing IDetectEntityOutput.

```javascript
detectEntities(text: string): Promise<IDetectEntityOutput>;

interface IDetectEntityOutput {
    entities: Entity[];
}
```
# detectSentiment
Analyzes the sentiment of the provided text.

### Parameters:

text: A string containing the text to analyze.

### Returns:
A promise that resolves to an object implementing IDetectSentimentOutput.

```javascript
detectSentiment(text: string): Promise<IDetectSentimentOutput>;

interface IDetectSentimentOutput {
    sentiment: string;
    score: {
        negative: number;
        positive: number;
        neutral: number;
        mixed: number;
    };
}
```

# detectKeyPhrases
Detects key phrases in the provided text.

### Parameters:

text: A string containing the text to analyze.
### Returns
A promise that resolves to an object implementing IKeyPhraseOutput.

```javascript
detectKeyPhrases(text: string): Promise<IDetectKeyPhraseOutput>;

interface IDetectKeyPhraseOutput {
    keyPhrases: {
        text: string;
        score: number;
    }[]
}
```

# textAnalysisComplete
Completes a full analysis of the provided text, including language detection, entity detection, sentiment analysis, and key phrase extraction.


### Parameters:

text: A string containing the text to analyze.
### Returns:

A promise that resolves to an object implementing ICompleteTextAnalysisOutput.

```javascript
 textAnalysisComplete(text: string): Promise<ICompleteTextAnalysisOutput>;

interface ICompleteTextAnalysisOutput {
    language: IDetectDominantLanguageOutput;
    entities: IDetectEntityOutput;
    sentiment: IDetectSentimentOutput;
    keyPhrases: IKeyPhrase[];
}
```