| 138 | } |
| 139 | |
| 140 | bool PhraseExtract::DefaultPostCalculationFilter( |
| 141 | const PhraseExtract& phraseExtract, |
| 142 | const PhraseExtract::UTF8StringSlice8Bit& word) { |
| 143 | const PhraseExtract::Signals& signals = phraseExtract.Signal(word); |
| 144 | const double logProbability = phraseExtract.LogProbability(word); |
| 145 | const double cohesionScore = signals.cohesion - logProbability * 0.5; |
| 146 | const double entropyScore = |
| 147 | sqrt((signals.prefixEntropy) * (signals.suffixEntropy + 1)) - |
| 148 | logProbability * 0.85; |
| 149 | bool accept = cohesionScore > 9 && entropyScore > 11 && |
| 150 | signals.prefixEntropy > 0.5 && signals.suffixEntropy > 0 && |
| 151 | signals.prefixEntropy + signals.suffixEntropy > 3; |
| 152 | return !accept; |
| 153 | } |
| 154 | |
| 155 | PhraseExtract::PhraseExtract() |
| 156 | : wordMinLength(2), wordMaxLength(2), prefixSetLength(1), |
nothing calls this directly
no test coverage detected