Rename for merge

This commit is contained in:
ensan-hcl
2023-09-23 14:25:56 +09:00
parent b38e6b6fa4
commit 5a7bd0c149
5 changed files with 30 additions and 23 deletions

View File

@ -78,7 +78,7 @@ import SwiftUtils
///
/// - Parameters:
/// - candidate:
public func updateLearningData(_ candidate: Candidate, with predictionCandidate: PredictionCandidate) {
public func updateLearningData(_ candidate: Candidate, with predictionCandidate: PostCompositionPredictionCandidate) {
self.converter.dicdataStore.updateLearningData(candidate, with: predictionCandidate)
self.lastData = predictionCandidate.lastData
}
@ -130,8 +130,8 @@ import SwiftUtils
/// - candidates: unique
/// - Returns:
/// `candidates`
private func getUniquePredictionCandidate(_ candidates: some Sequence<PredictionCandidate>, seenCandidates: Set<String> = []) -> [PredictionCandidate] {
var result = [PredictionCandidate]()
private func getUniquePostCompositionPredictionCandidate(_ candidates: some Sequence<PostCompositionPredictionCandidate>, seenCandidates: Set<String> = []) -> [PostCompositionPredictionCandidate] {
var result = [PostCompositionPredictionCandidate]()
for candidate in candidates where !candidate.text.isEmpty && !seenCandidates.contains(candidate.text) {
if let index = result.firstIndex(where: {$0.text == candidate.text}) {
if result[index].value < candidate.value {
@ -623,9 +623,9 @@ import SwiftUtils
}
///
public func requestPredictionCandidates(leftSideCandidate: Candidate, options: ConvertRequestOptions) -> [PredictionCandidate] {
public func requestPostCompositionPredictionCandidates(leftSideCandidate: Candidate, options: ConvertRequestOptions) -> [PostCompositionPredictionCandidate] {
//
var zeroHintResults = self.getUniquePredictionCandidate(self.converter.getZeroHintPredictionCandidates(preparts: [leftSideCandidate], N_best: 15))
var zeroHintResults = self.getUniquePostCompositionPredictionCandidate(self.converter.getZeroHintPredictionCandidates(preparts: [leftSideCandidate], N_best: 15))
do {
// 3
var joshiCount = 0
@ -650,26 +650,28 @@ import SwiftUtils
let predictionResults = self.converter.getPredictionCandidates(prepart: leftSideCandidate, N_best: 15)
//
let replacer = TextReplacer()
var emojiCandidates: [PredictionCandidate] = []
var emojiCandidates: [PostCompositionPredictionCandidate] = []
for data in leftSideCandidate.data where DicdataStore.includeMMValueCalculation(data) {
let result = replacer.getSearchResult(query: data.word, target: [.emoji], ignoreNonBaseEmoji: true)
for emoji in result {
emojiCandidates.append(PredictionCandidate(text: emoji.text, value: -3, type: .additional(data: [.init(word: emoji.text, ruby: "エモジ", cid: CIDData..cid, mid: MIDData..mid, value: -3)])))
emojiCandidates.append(PostCompositionPredictionCandidate(text: emoji.text, value: -3, type: .additional(data: [.init(word: emoji.text, ruby: "エモジ", cid: CIDData..cid, mid: MIDData..mid, value: -3)])))
}
}
emojiCandidates = self.getUniquePredictionCandidate(emojiCandidates)
emojiCandidates = self.getUniquePostCompositionPredictionCandidate(emojiCandidates)
var results: [PredictionCandidate] = []
var results: [PostCompositionPredictionCandidate] = []
var seenCandidates: Set<String> = []
results.append(contentsOf: emojiCandidates.suffix(3))
seenCandidates.formUnion(emojiCandidates.suffix(3).map {$0.text})
let predictions = self.getUniquePredictionCandidate(predictionResults, seenCandidates: seenCandidates).min(count: (10 - results.count) / 2, sortedBy: {$0.value > $1.value})
// zeroHintResults10
let predictionsCount = max((10 - results.count) / 2, 10 - results.count - zeroHintResults.count)
let predictions = self.getUniquePostCompositionPredictionCandidate(predictionResults, seenCandidates: seenCandidates).min(count: predictionsCount, sortedBy: {$0.value > $1.value})
results.append(contentsOf: predictions)
seenCandidates.formUnion(predictions.map {$0.text})
let zeroHints = self.getUniquePredictionCandidate(zeroHintResults, seenCandidates: seenCandidates)
let zeroHints = self.getUniquePostCompositionPredictionCandidate(zeroHintResults, seenCandidates: seenCandidates)
results.append(contentsOf: zeroHints.min(count: 10 - results.count, sortedBy: {$0.value > $1.value}))
return results
}

View File

@ -616,7 +616,7 @@ public final class DicdataStore {
}
//
// TODO: previous
func updateLearningData(_ candidate: Candidate, with predictionCandidate: PredictionCandidate) {
func updateLearningData(_ candidate: Candidate, with predictionCandidate: PostCompositionPredictionCandidate) {
switch predictionCandidate.type {
case .additional(data: let data):
self.learningManager.update(data: candidate.data, updatePart: data)

View File

@ -1,6 +1,6 @@
//
// getPrediction.swift
// Keyboard
// mid_composition_prediction.swift
// AzooKeyKanaKanjiConverter
//
// Created by ensan on 2020/12/09.
// Copyright © 2020 ensan. All rights reserved.
@ -9,6 +9,7 @@
import Foundation
import SwiftUtils
//
extension Kana2Kanji {
/// CandidateData
/// - parameters:

View File

@ -1,12 +1,13 @@
//
// prediction.swift
//
// post_composition_prediction.swift
//
//
// Created by miwa on 2023/09/19.
//
import Foundation
//
extension Kana2Kanji {
func mergeCandidates(_ left: Candidate, _ right: Candidate) -> Candidate {
guard let leftLast = left.data.last, let rightFirst = right.data.first else {
@ -31,8 +32,8 @@ extension Kana2Kanji {
)
}
func getPredictionCandidates(prepart: Candidate, N_best: Int) -> [PredictionCandidate] {
var result: [PredictionCandidate] = []
func getPredictionCandidates(prepart: Candidate, N_best: Int) -> [PostCompositionPredictionCandidate] {
var result: [PostCompositionPredictionCandidate] = []
var count = 1
var prefixCandidate = prepart
prefixCandidate.actions = []
@ -97,8 +98,8 @@ extension Kana2Kanji {
///
/// - note:
/// --
func getZeroHintPredictionCandidates(preparts: some Collection<Candidate>, N_best: Int) -> [PredictionCandidate] {
var result: [PredictionCandidate] = []
func getZeroHintPredictionCandidates(preparts: some Collection<Candidate>, N_best: Int) -> [PostCompositionPredictionCandidate] {
var result: [PostCompositionPredictionCandidate] = []
for candidate in preparts {
if let last = candidate.data.last {
let dicdata = self.dicdataStore.getZeroHintPredictionDicdata(lastRcid: last.rcid)

View File

@ -1,5 +1,5 @@
//
// PredictionCandidate.swift
// PostCompositionPredictionCandidate.swift
//
//
// Created by miwa on 2023/09/19.
@ -7,8 +7,9 @@
import Foundation
public struct PredictionCandidate {
public init(text: String, value: PValue, type: PredictionCandidate.PredictionType) {
///
public struct PostCompositionPredictionCandidate {
public init(text: String, value: PValue, type: PostCompositionPredictionCandidate.PredictionType) {
self.text = text
self.value = value
self.type = type
@ -22,6 +23,8 @@ public struct PredictionCandidate {
public var text: String
public var value: PValue
public var type: PredictionType
///
public var isTerminal: Bool
public func join(to candidate: Candidate) -> Candidate {