Заменить текст строки на определенный текст в строке массива с помощью ios swift - PullRequest
0 голосов
/ 24 мая 2019

entities = ({confidence = "<null>"; end = 113; entity = DATE; extractor = "ner_spacy";start = 103;value = "five years"; }, {confidence = "<null>"; end = 177;entity = ORG; extractor = "ner_spacy";start = 163; value = "xyz Company"; } );

Это внутренние данные, которые мне нужно отобразить в строке с помощью remove и добавить новые значения в текст строки:

Пример: "В вашем {{years_of_experience"}} опыта в {{ORG}}, какие улучшения процессов или установки стандартов? "

Ответ: Массив 0 ---> пяти лет и Массив 1 ---> xyz Company вместоОткрытые и закрытые фигурные скобки, мне нужно показать этот текст массивов 0 и 1.

За пять лет работы в компании xyz, какие улучшения процессов или установки стандартов?

Ответы [ 2 ]

0 голосов
/ 04 июня 2019

Это не работает для динамических данных, в некоторых текстах нет никаких ключевых значений и {{}}, в таком случае, как мы это напишем.

Мне нужно отобразить таблицу с данными этого типа и воспроизвести голосовое сообщение.

Пример: q1) Можете ли вы объяснить мне о себе, указав количество лет опыта, относящегося к менеджеру проектов и различным доменам, над которыми вы работали

Ответ: Пользователь говорит ответ, отправляетбэкэнд и сохранил ответ в словаре.

Q2) Какой у вас {{years_of_experience}} опыт работы в {{ORG}}, какие улучшения процессов или настройки стандартов?Примечание: 1) Мне нужно заменить текстовое значение внутри {{}} 2) Для некоторого текста вопроса нет ключа и значения сущности.3) Нам нужно сохранить значение {{ORG}} и всякий раз, когда текст вопроса находится внутри {{ORG}}, мы должны заменить значение объекта.

Q3) Не могли бы вы рассказать мне несколько методологий разработки программного обеспечения и что выпривыкли и довольны?

q4) Отлично.Можете ли вы назвать несколько клиентов, которых вы поддерживали, в {{industry}} домене и {{years_of_experience}}? *

------------ и в ближайшее время.

Я сохранял ключ сущности и значение ответа всякий раз, когда говорится ответы с соответствующим текстом

0 голосов
/ 24 мая 2019

Я пытался найти решение вашей проблемы,

Это JSON response, которое я использовал в качестве примера,

[
    {
        "confidence": "<null>",
        "end": 113,
        "entity": "DATE",
        "extractor": "ner_spacy",
        "start": 103,
        "value": "five years"
    },
    {
        "confidence": "<null>",
        "end": 177,
        "entity": "ORG",
        "extractor": "ner_spacy",
        "start": 163,
        "value": "xyz Company"
    }
]

Разбор JSON responseиспользуя Codable в array of Entity объектах, т.е.

struct Entity: Codable {
    var confidence: String?
    var end: Int?
    var entity: String?
    var extractor: String?
    var start: Int?
    var value: String?
}

Я использовал entity key в ответе, чтобы определить, какое значение заменить, т.е.

if let data = str.data(using: .utf8) { //You'll get this data from API response
    let entities = try? JSONDecoder().decode([Entity].self, from: data)

    var sentence = "In your {{DATE}} of experience at {{ORG}}, what kind of process improvements or standards setup?"
    entities?.forEach({
        if let entity = $0.entity, let value = $0.value {
            sentence = sentence.replacingOccurrences(of: "{{\(entity)}}", with: value)
        }
    })
    print(sentence) //In your five years of experience at xyz Company, what kind of process improvements or standards setup?
}

ВПриведенный выше код я обошел entities array и заменил каждое вхождение {{entity}} на соответствующее value, то есть

"{{DATE}}" is replaced with "five years"
"{{ORG}}" is replaced with "xyz Company"

Дайте мне знать, если у вас все еще есть какие-либо проблемы или если яплохо поняла формулировку проблемы.

...