protected int computeSpacePenalty()

in lucene/analysis/nori/src/java/org/apache/lucene/analysis/ko/Viterbi.java [345:406]


  protected int computeSpacePenalty(MorphData morphData, int wordID, int numSpaces) {
    final POS.Tag leftPOS = ((KoMorphData) morphData).getLeftPOS(wordID);
    int spacePenalty = 0;
    if (numSpaces > 0) {
      // TODO we should extract the penalty (left-space-penalty-factor) from the dicrc file.
      switch (leftPOS) {
        case EP:
        case EF:
        case EC:
        case ETN:
        case ETM:
        case JKS:
        case JKC:
        case JKG:
        case JKO:
        case JKB:
        case JKV:
        case JKQ:
        case JX:
        case JC:
        case VCP:
        case XSA:
        case XSN:
        case XSV:
          spacePenalty = 3000;
          break;
        case IC:
        case MAG:
        case MAJ:
        case MM:
        case NA:
        case NNB:
        case NNBC:
        case NNG:
        case NNP:
        case NP:
        case NR:
        case SC:
        case SE:
        case SF:
        case SH:
        case SL:
        case SN:
        case SP:
        case SSC:
        case SSO:
        case SY:
        case UNA:
        case UNKNOWN:
        case VA:
        case VCN:
        case VSV:
        case VV:
        case VX:
        case XPN:
        case XR:
        default:
          break;
      }
    }
    return spacePenalty;
  }