# Инструмент Text Analysis
Инструмент `text_analysis` предназначен для анализа текста и извлечения различных статистических данных и свойств из текстового содержимого. Он может быть использован для подсчета слов, анализа тональности (sentiment analysis) и создания кратких резюме текста.
## Режимы работы
Инструмент поддерживает три режима анализа текста:
1. **Basic** - базовый анализ текста, включающий подсчет слов, предложений и другие основные статистические данные
2. **Sentiment** - анализ тональности текста (позитивный, негативный или нейтральный)
3. **Summary** - создание краткого резюме текста
## Параметры
| Параметр | Тип | Обязательный | По умолчанию | Описание |
|----------|-----|------------|------------|----------|
| `text` | string | Да | - | Текст для анализа |
| `analysis_type` | string | Нет | "basic" | Тип анализа. Допустимые значения: `basic`, `sentiment`, `summary` |
## Базовый анализ текста (basic)
Режим базового анализа подсчитывает следующие характеристики текста:
- Количество слов
- Количество предложений
- Среднее количество слов в предложении
- Наиболее часто встречающиеся слова (топ-10)
- Общее количество символов
- Количество символов без пробелов
### Пример запроса
```bash
curl -X POST "http://localhost:8000/tools/text_analysis" \
-H "Content-Type: application/json" \
-d '{
"text": "Это пример текста для анализа. Он содержит два предложения.",
"analysis_type": "basic"
}'
```
### Пример ответа
```json
{
"content": [
{
"type": "text",
"text": "{
\"word_count\": 9,
\"sentence_count\": 2,
\"average_words_per_sentence\": 4.5,
\"top_words\": {
\"это\": 1,
\"пример\": 1,
\"текста\": 1,
\"для\": 1,
\"анализа\": 1,
\"он\": 1,
\"содержит\": 1,
\"два\": 1,
\"предложения\": 1
},
\"character_count\": 56,
\"character_count_no_spaces\": 48
}"
}
]
}
```
## Анализ тональности (sentiment)
Режим анализа тональности определяет эмоциональную окраску текста, основываясь на количестве позитивных и негативных слов. Он возвращает:
- Общую тональность текста (`positive`, `negative` или `neutral`)
- Количество позитивных слов
- Количество негативных слов
- Количество нейтральных слов
- Коэффициент позитивности (отношение позитивных слов к общему числу позитивных и негативных слов)
### Пример запроса
```bash
curl -X POST "http://localhost:8000/tools/text_analysis" \
-H "Content-Type: application/json" \
-d '{
"text": "Это отличный инструмент для анализа текста! Он работает хорошо и я очень доволен.",
"analysis_type": "sentiment"
}'
```
### Пример ответа
```json
{
"content": [
{
"type": "text",
"text": "{
\"sentiment\": \"positive\",
\"positive_word_count\": 3,
\"negative_word_count\": 0,
\"neutral_word_count\": 11,
\"positivity_ratio\": 1.0
}"
}
]
}
```
## Резюмирование текста (summary)
Режим резюмирования создает краткую версию текста, выделяя наиболее важные предложения. Для простоты, текущая реализация выбирает первое и последнее предложение текста.
### Пример запроса
```bash
curl -X POST "http://localhost:8000/tools/text_analysis" \
-H "Content-Type: application/json" \
-d '{
"text": "Искусственный интеллект - это область компьютерных наук, занимающаяся созданием систем, способных выполнять задачи, требующие человеческого интеллекта. Это включает обучение и распознавание образов, понимание естественного языка, принятие решений. Современные системы ИИ используют глубокое обучение и нейронные сети для обработки больших объемов данных.",
"analysis_type": "summary"
}'
```
### Пример ответа
```json
{
"content": [
{
"type": "text",
"text": "{
\"summary\": \"Искусственный интеллект - это область компьютерных наук, занимающаяся созданием систем, способных выполнять задачи, требующие человеческого интеллекта ... Современные системы ИИ используют глубокое обучение и нейронные сети для обработки больших объемов данных.\",
\"original_length\": 282,
\"summary_length\": 221,
\"compression_ratio\": 0.7836879432624113
}"
}
]
}
```
## Обработка ошибок
В случае ошибки инструмент вернет ответ с флагом `isError: true` и сообщением об ошибке:
```json
{
"content": [
{
"type": "text",
"text": "Error: Unknown analysis type: invalid_type"
}
],
"isError": true
}
```
## Ограничения
- Анализ тональности использует простой словарный подход и может не учитывать контекст и нюансы
- Резюмирование текста использует базовый алгоритм и не учитывает семантику текста
- Инструмент оптимизирован для текстов среднего размера и может работать медленнее на очень больших текстах
## Языковая поддержка
Инструмент поддерживает как русский, так и английский языки для анализа тональности, но для более точных результатов рекомендуется использовать его с языком, соответствующим списку ключевых слов.