# Алгоязык и состязательные текстовые манипуляции

Tisane использует специальный тип встроенного модуля проверки орфографии для обработки текста как с непреднамеренными ошибками (опечатками), так и с противоречащими манипуляциями текстом (например, algospeak).

Проверка орфографии использует несколько различных методов для обработки различных типов манипуляций (маскировка символов, замены и т. д.). Эти исправления не ограничиваются ненормативной лексикой или оскорблениями и учитывают контекст. Одно и то же слово с ошибкой может быть истолковано по-разному в разных предложениях.

Если исправления в предложении были признаны необходимыми, предложение получает атрибут `corrected_text`, в котором регистрируется исправленный текст. (Установите для `words` значение `true`, чтобы вывести свдеения о преждложениях)

## Ограничения

Проверка орфографии не является [инструментом «вы имели в виду»](https://stackoverflow.com/questions/307291/how-does-the-google-did-you-mean-algorithm-work) , как многие люди, похоже, считают:

- Если слово является допустимым, неважно, употребляется ли оно неправильно или является эзотерическим, Tisane не исправит его. Например, если *noun* неправильно написано как *nun*  или *home* как *horse*, Tisane не поможет (если только это не часть известной, часто запутанной концепции, например, *corn star* в английском).
- Основная цель проверки орфографии — расшифровка запутанных текстов. Поэтому проверка орфографии смещена в сторону более непристойных, предосудительных или часто используемых понятий.


## Исключение эзотерических чувств и слов для получения лучших результатов

Чтобы обойти эту проблему, вы можете использовать` мин_ общий_ частота` параметр.

Это позволяет исключить наиболее эзотерические смыслы и слова.

Частота оценивается по шкале от 0 до 10, где 10 соответствует наибольшей частоте.

Некоторые эзотерические чувства также оцениваются в -10.

Мы рекомендуем вам изначально установить для параметра `min_generic_ ` значение `1` или `2`, чтобы увидеть, сработает ли оно в вашей ситуации.

## Исключая потенциальные имена собственные

Если вам нужно избежать проверки орфографии потенциальных имен собственных, установите для параметра `lowercase_spellcheck_only` значение `true`.

## Пример

Запрос:


```json
{
  "language":"en",
  "content":"I will br*k his neck and kll him",
  "settings": 
  {
    "words":true,"topics":false,"sentiment":false,"snippets":true
  }
}
```

Ответ:


```json

	"text": "I will br*k his neck and kll him",
	"abuse": [
		{
			"sentence_index": 0,
			"offset": 0,
			"length": 32,
			"text": "I will br*k his neck and kll him",
			"type": "criminal_activity",
			"severity": "medium",
			"tags": [
				"threat",
				"violence",
				"death"
			]
		}
	],
	"sentence_list": [
		{
			"offset": 0,
			"text": "I will br*k his neck and kll him",
			"words": [
				{
					"type": "word",
					"offset": 0,
					"text": "I",
					"lettercase": "capitalized",
					"role": "agent",
					"lexeme": 63061,
					"family": 301,
					"grammar": [
						"PRON"
					],
					"stopword": true
				},
				{
					"type": "word",
					"offset": 2,
					"text": "will",
					"lexeme": 146938,
					"family": 316,
					"grammar": [
						"VERB"
					],
					"stopword": true
				},
				{
					"type": "word",
					"offset": 7,
					"text": "br*k",
					"role": "verb",
					"lexeme": 20996,
					"family": 107846,
					"grammar": [
						"VERB"
					]
				},
				{
					"type": "word",
					"offset": 12,
					"text": "his",
					"lexeme": 63064,
					"family": 303,
					"grammar": [
						"DET"
					],
					"stopword": true
				},
				{
					"type": "word",
					"offset": 16,
					"text": "neck",
					"lexeme": 93293,
					"family": 40510,
					"wikidata": "Q9633",
					"grammar": [
						"NOUN"
					]
				},
				{
					"type": "word",
					"offset": 21,
					"text": "and",
					"lexeme": 4096,
					"family": 322,
					"grammar": [
						"CCONJ"
					],
					"stopword": true
				},
				{
					"type": "word",
					"offset": 25,
					"text": "kll",
					"role": "verb",
					"lexeme": 77380,
					"family": 113102,
					"grammar": [
						"VERB"
					]
				},
				{
					"type": "word",
					"offset": 29,
					"text": "him",
					"role": "patient",
					"lexeme": 63062,
					"family": 303,
					"grammar": [
						"PRON"
					],
					"stopword": true
				}
			],
			"corrected_text": "I will break his neck and kill him"
		}
	]
}
```