gpt4 book ai didi

ios - 快速分离句子和问题的功能

转载 作者:可可西里 更新时间:2023-11-01 01:27:25 27 4
gpt4 key购买 nike

我希望下面的函数将句子分隔成一个数组,将问题分隔成一个数组,并在“.”的位置插入“,”。和 ”?”属于。目前它正在同一个数组中打印。关于如何解决此问题的任何想法?

func separateAllSentences() {

// needs to print just the sentences
func separateDeclarations() { // AKA Separate sentences that end in "."
if userInput.range(of: ".") != nil { // Notice how lowercased() wasn't used
numSentencesBefore = userInput.components(separatedBy: ".") // Hasn't subtracted 1 yet
numSentencesAfter = numSentencesBefore.count - 1
separateSentencesArray = Array(numSentencesBefore)
print("# Of Sentences = \(numSentencesAfter)")
print(separateSentencesArray)
} else {
print("There are no declarations found.")
}
}

// needs to print just the questions
func separateQuestions() { // Pretty Self Explanitory
if userInput.range(of: "?") != nil {
numQuestionsBefore = userInput.components(separatedBy: "?")
numQuestionsAfter = numQuestionsBefore.count - 1
separateQuestionsArray = Array(numQuestionsBefore)
print("# Of Questions = \(numQuestionsAfter)")
print(separateQuestionsArray)
} else {
print("There are no questions found. I have nothing to solve. Please rephrase the work to solve as a question.")
}
}

// TODO: - Separate Commas
func separateCommas() {

}

separateDeclarations()
separateQuestions()
}

控制台打印输出:

Ned 骑着自行车 7 英里去了图书馆。他在回家的路上走了一条只有 5 英里长的捷径。Ned 一共骑了多少英里?

[句子数 = 2]

["Ned 骑自行车 7 英里到图书馆", "\n他在回家的路上抄了一条只有 5 英里长的捷径", "\nNed 一共骑了多少英里?\n"]

[问题数 = 1]

["Ned 骑了 7 英里的自行车到图书馆。\n他在回家的路上抄了一条捷径,只有 5 英里长。\nNed 一共骑了多少英里", "\n"]

Ned 骑着自行车 7 英里去了图书馆。他在回家的路上走了一条只有 5 英里长的捷径。Ned 一共骑了多少英里?

它应该打印出来

[句子数 = 2]

[问题数 = 1]

句子:[“Ned 骑了 7 英里的自行车到图书馆。他在回家的路上抄了一条只有 5 英里长的捷径。”]

问题:[“Ned 一共骑了多少英里?”]

最佳答案

我建议不要根据字符的存在进行分隔,而是使用 .bySentences 选项进行枚举(它可以更优雅地处理不终止句子的标点符号)。然后迭代一次你的字符串,附加到适当的数组,例如在 Swift 3 中:

var questions  = [String]()
var statements = [String]()
var unknown = [String]()

let string = "Ned deployed version 1.0 of his app. He wrote very elegant code. How much money did Ned make?"

string.enumerateSubstrings(in: string.startIndex ..< string.endIndex, options: .bySentences) { string, _, _, _ in
if let sentence = string?.trimmingCharacters(in: .whitespacesAndNewlines), let lastCharacter = sentence.characters.last {
switch lastCharacter {
case ".":
statements.append(sentence)
case "?":
questions.append(sentence)
default:
unknown.append(sentence)
}
}
}

print("questions: \(questions)")
print("statements: \(statements)")
print("unknown: \(unknown)")

关于ios - 快速分离句子和问题的功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40769472/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com