0
Fixed

Некорректный код QC == 0 на недостоверных данных

Максим Месилов 5 years ago updated by Антон 5 years ago 3
Из документации:
Код качества 0 означает, что система уверена в результатах стандартизации, и проверка человеком не требуется. Код качества, отличный от 0, сигнализирует, что имеет смысл вручную убедиться в правильности обработанного значения.

Исходные данные: набор ФИО или ников, которые могут быть набраны как по русски, так и на латинице транслитом. Требуется отобрать людей с достоверным ФИО для дальнейшей обработки. Исходя из описания продукта, кажется, что проверка идёт по словарям, по крайней мере для имён. 

Вроде всё хорошо
4 | ru [ Dmitriy Zhidkikh ] -> М 0 [ Дмитрий - Жидких - ]
array(6) {
  ["source"] => string(16) "Dmitriy Zhidkikh"
  ["surname"] => string(12) "Жидких"
  ["name"] => string(14) "Дмитрий"
  ["patronymic"] => NULL
  ["gender"]=> string(2) "М"
  ["qc"] => int(0)
}

Почему для SynteZZZ QC == 0
5 | ru [ SynteZZZ ] -> НД 0 [ - Сынтеззз - ]
array(6) {
  ["source"] => string(8) "SynteZZZ"
  ["surname"] => string(16) "Сынтеззз"
  ["name"] => NULL
  ["patronymic"] => NULL
  ["gender"] => string(4) "НД"
  ["qc"] => int(0)
}

Answer

Answer
Fixed
Исправили, теперь в таких случаях qc = 1.
Запрос идёт на адрес https://dadata.ru/api/v2/clean
array(2) {
  ["structure"]=>
  array(1) {
    [0] => string(4) "NAME"
  }
  ["data"]=>
  array(1) {
    [0] =>
    array(1) {
      [0] => string(8) "SynteZZZ"
    }
  }
}

POST-запрос перед отправкой. Язык программирования - PHP
array(10) {
  [19913]=> int(1)
  [2]=> int(1)
  [41]=> int(1)
  [78]=> int(5)
  [13]=> int(5)
  [10018]=> string(26) "dadata\dadata-php-sdk/v1.0"
  [47]=> int(1)
  [10015]=> string(44) "{"structure":["NAME"],"data":[["SynteZZZ"]]}"
  [10002]=> string(30) "https://dadata.ru/api/v2/clean"
  [10023]=>  array(2) {
    [0]=> string(61) "Authorization: Token ТУТ БЫЛ ТОКЕН"
    [1]=> string(30) "Content-Type: application/json"
  }
}
Started
Совершенно верно, проверка имен идет по словарям. Фамилия по словарям не проверяется, допускается любая.

В вашем примере ник уходит в фамилию (и такая фамилия считается нормальной), но имя отсутствует, поэтому код качества должен быть 1, а не 0. Поправим это.
Answer
Fixed
Исправили, теперь в таких случаях qc = 1.