Quit using weightChildNode for ADDITIONAL_PROXIMITY and SUBSTITUTION.
[Category diff] +1 0 -1 1 +2 0 -2 0 +3 0 -3 0 +4 1 -4 1 +5 8 -5 7 +6 0 -6 1 +7 1 -7 0 [Weighted category diff] +1 0 -1 1 +2 0 -2 0 +3 0 -3 0 +4 1 -4 1 +5 8 -5 7 +6 0 -6 1 +7 1 -7 0 Bug: 13756409 Change-Id: I6ac3567545676bbefbee3e87dda54bc083c15fb6main
parent
d1471ee053
commit
d8ccb9093b
|
@ -110,10 +110,14 @@ static inline void profile(const CorrectionType correctionType, DicNode *const n
|
||||||
return weighting->getOmissionCost(parentDicNode, dicNode);
|
return weighting->getOmissionCost(parentDicNode, dicNode);
|
||||||
case CT_ADDITIONAL_PROXIMITY:
|
case CT_ADDITIONAL_PROXIMITY:
|
||||||
// only used for typing
|
// only used for typing
|
||||||
return weighting->getAdditionalProximityCost();
|
// TODO: Quit calling getMatchedCost().
|
||||||
|
return weighting->getAdditionalProximityCost()
|
||||||
|
+ weighting->getMatchedCost(traverseSession, dicNode, inputStateG);
|
||||||
case CT_SUBSTITUTION:
|
case CT_SUBSTITUTION:
|
||||||
// only used for typing
|
// only used for typing
|
||||||
return weighting->getSubstitutionCost();
|
// TODO: Quit calling getMatchedCost().
|
||||||
|
return weighting->getSubstitutionCost()
|
||||||
|
+ weighting->getMatchedCost(traverseSession, dicNode, inputStateG);
|
||||||
case CT_NEW_WORD_SPACE_OMISSION:
|
case CT_NEW_WORD_SPACE_OMISSION:
|
||||||
return weighting->getNewWordSpatialCost(traverseSession, dicNode, inputStateG);
|
return weighting->getNewWordSpatialCost(traverseSession, dicNode, inputStateG);
|
||||||
case CT_MATCH:
|
case CT_MATCH:
|
||||||
|
@ -176,9 +180,9 @@ static inline void profile(const CorrectionType correctionType, DicNode *const n
|
||||||
case CT_OMISSION:
|
case CT_OMISSION:
|
||||||
return 0;
|
return 0;
|
||||||
case CT_ADDITIONAL_PROXIMITY:
|
case CT_ADDITIONAL_PROXIMITY:
|
||||||
return 0; /* 0 because CT_MATCH will be called */
|
return 1;
|
||||||
case CT_SUBSTITUTION:
|
case CT_SUBSTITUTION:
|
||||||
return 0; /* 0 because CT_MATCH will be called */
|
return 1;
|
||||||
case CT_NEW_WORD_SPACE_OMISSION:
|
case CT_NEW_WORD_SPACE_OMISSION:
|
||||||
return 0;
|
return 0;
|
||||||
case CT_MATCH:
|
case CT_MATCH:
|
||||||
|
|
|
@ -284,7 +284,6 @@ void Suggest::processDicNodeAsAdditionalProximityChar(DicTraverseSession *traver
|
||||||
// not treat the node as a terminal. There is no need to pass the bigram map in these cases.
|
// not treat the node as a terminal. There is no need to pass the bigram map in these cases.
|
||||||
Weighting::addCostAndForwardInputIndex(WEIGHTING, CT_ADDITIONAL_PROXIMITY,
|
Weighting::addCostAndForwardInputIndex(WEIGHTING, CT_ADDITIONAL_PROXIMITY,
|
||||||
traverseSession, dicNode, childDicNode, 0 /* multiBigramMap */);
|
traverseSession, dicNode, childDicNode, 0 /* multiBigramMap */);
|
||||||
weightChildNode(traverseSession, childDicNode);
|
|
||||||
processExpandedDicNode(traverseSession, childDicNode);
|
processExpandedDicNode(traverseSession, childDicNode);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -292,7 +291,6 @@ void Suggest::processDicNodeAsSubstitution(DicTraverseSession *traverseSession,
|
||||||
DicNode *dicNode, DicNode *childDicNode) const {
|
DicNode *dicNode, DicNode *childDicNode) const {
|
||||||
Weighting::addCostAndForwardInputIndex(WEIGHTING, CT_SUBSTITUTION, traverseSession,
|
Weighting::addCostAndForwardInputIndex(WEIGHTING, CT_SUBSTITUTION, traverseSession,
|
||||||
dicNode, childDicNode, 0 /* multiBigramMap */);
|
dicNode, childDicNode, 0 /* multiBigramMap */);
|
||||||
weightChildNode(traverseSession, childDicNode);
|
|
||||||
processExpandedDicNode(traverseSession, childDicNode);
|
processExpandedDicNode(traverseSession, childDicNode);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -403,7 +401,7 @@ void Suggest::weightChildNode(DicTraverseSession *traverseSession, DicNode *dicN
|
||||||
if (dicNode->isCompletion(inputSize)) {
|
if (dicNode->isCompletion(inputSize)) {
|
||||||
Weighting::addCostAndForwardInputIndex(WEIGHTING, CT_COMPLETION, traverseSession,
|
Weighting::addCostAndForwardInputIndex(WEIGHTING, CT_COMPLETION, traverseSession,
|
||||||
0 /* parentDicNode */, dicNode, 0 /* multiBigramMap */);
|
0 /* parentDicNode */, dicNode, 0 /* multiBigramMap */);
|
||||||
} else { // completion
|
} else {
|
||||||
Weighting::addCostAndForwardInputIndex(WEIGHTING, CT_MATCH, traverseSession,
|
Weighting::addCostAndForwardInputIndex(WEIGHTING, CT_MATCH, traverseSession,
|
||||||
0 /* parentDicNode */, dicNode, 0 /* multiBigramMap */);
|
0 /* parentDicNode */, dicNode, 0 /* multiBigramMap */);
|
||||||
}
|
}
|
||||||
|
|
|
@ -49,7 +49,7 @@ const float ScoringParams::INSERTION_COST_PROXIMITY_CHAR = 0.674f;
|
||||||
const float ScoringParams::INSERTION_COST_FIRST_CHAR = 0.639f;
|
const float ScoringParams::INSERTION_COST_FIRST_CHAR = 0.639f;
|
||||||
const float ScoringParams::TRANSPOSITION_COST = 0.5608f;
|
const float ScoringParams::TRANSPOSITION_COST = 0.5608f;
|
||||||
const float ScoringParams::SPACE_SUBSTITUTION_COST = 0.334f;
|
const float ScoringParams::SPACE_SUBSTITUTION_COST = 0.334f;
|
||||||
const float ScoringParams::ADDITIONAL_PROXIMITY_COST = 0.4576f;
|
const float ScoringParams::ADDITIONAL_PROXIMITY_COST = 0.37972f;
|
||||||
const float ScoringParams::SUBSTITUTION_COST = 0.3806f;
|
const float ScoringParams::SUBSTITUTION_COST = 0.3806f;
|
||||||
const float ScoringParams::COST_NEW_WORD = 0.0314f;
|
const float ScoringParams::COST_NEW_WORD = 0.0314f;
|
||||||
const float ScoringParams::COST_SECOND_OR_LATER_WORD_FIRST_CHAR_UPPERCASE = 0.3224f;
|
const float ScoringParams::COST_SECOND_OR_LATER_WORD_FIRST_CHAR_UPPERCASE = 0.3224f;
|
||||||
|
|
|
@ -68,6 +68,7 @@ ErrorTypeUtils::ErrorType TypingWeighting::getErrorType(const CorrectionType cor
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case CT_ADDITIONAL_PROXIMITY:
|
case CT_ADDITIONAL_PROXIMITY:
|
||||||
|
// TODO: Change to EDIT_CORRECTION.
|
||||||
return ErrorTypeUtils::PROXIMITY_CORRECTION;
|
return ErrorTypeUtils::PROXIMITY_CORRECTION;
|
||||||
case CT_OMISSION:
|
case CT_OMISSION:
|
||||||
if (parentDicNode->canBeIntentionalOmission()) {
|
if (parentDicNode->canBeIntentionalOmission()) {
|
||||||
|
@ -77,6 +78,8 @@ ErrorTypeUtils::ErrorType TypingWeighting::getErrorType(const CorrectionType cor
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case CT_SUBSTITUTION:
|
case CT_SUBSTITUTION:
|
||||||
|
// TODO: Quit settng PROXIMITY_CORRECTION.
|
||||||
|
return ErrorTypeUtils::EDIT_CORRECTION | ErrorTypeUtils::PROXIMITY_CORRECTION;
|
||||||
case CT_INSERTION:
|
case CT_INSERTION:
|
||||||
case CT_TERMINAL_INSERTION:
|
case CT_TERMINAL_INSERTION:
|
||||||
case CT_TRANSPOSITION:
|
case CT_TRANSPOSITION:
|
||||||
|
|
Loading…
Reference in New Issue