/* */ boolean isEncodable(Chunking chunking, StringBuilder sb) /* */ { /* 197 */ if (!this.mBioCodec.isEncodable(chunking, sb)) /* 198 */ return false; /* 199 */ Tagging tagging = this.mBioCodec.toTagging(chunking); /* 200 */ String lastTag = "O"; /* 201 */ for (String tag : tagging.tags()) { /* 202 */ if (startSameType(lastTag, tag)) { /* 203 */ if (sb != null) { /* 204 */ sb.append("Two consectuive chunks of type " + tag.substring(2)); /* */ } /* 206 */ return false; /* */ } /* 208 */ lastTag = tag; /* */ } /* 210 */ return true; /* */ }
public Map<String, ? extends Number> nodeFeatures(int n) { ObjectToDoubleMap<String> feats = new ObjectToDoubleMap<String>(); boolean bos = n == 0; boolean eos = (n + 1) >= numTokens(); String tokenCat = tokenCat(n); String prevTokenCat = bos ? null : tokenCat(n - 1); String nextTokenCat = eos ? null : tokenCat(n + 1); String token = normedToken(n); String prevToken = bos ? null : normedToken(n - 1); String nextToken = eos ? null : normedToken(n + 1); String posTag = mPosTagging.tag(n); String prevPosTag = bos ? null : mPosTagging.tag(n - 1); String nextPosTag = eos ? null : mPosTagging.tag(n + 1); if (bos) feats.set("BOS", 1.0); if (eos) feats.set("EOS", 1.0); if (!bos && !eos) feats.set("!BOS!EOS", 1.0); feats.set("TOK_" + token, 1.0); if (!bos) feats.set("TOK_PREV_" + prevToken, 1.0); if (!eos) feats.set("TOK_NEXT_" + nextToken, 1.0); feats.set("TOK_CAT_" + tokenCat, 1.0); if (!bos) feats.set("TOK_CAT_PREV_" + prevTokenCat, 1.0); if (!eos) feats.set("TOK_CAT_NEXT_" + nextToken, 1.0); feats.set("POS_" + posTag, 1.0); if (!bos) feats.set("POS_PREV_" + prevPosTag, 1.0); if (!eos) feats.set("POS_NEXT_" + nextPosTag, 1.0); for (String suffix : suffixes(token)) feats.set("SUFF_" + suffix, 1.0); if (!bos) for (String suffix : suffixes(prevToken)) feats.set("SUFF_PREV_" + suffix, 1.0); if (!eos) for (String suffix : suffixes(nextToken)) feats.set("SUFF_NEXT_" + suffix, 1.0); for (String prefix : prefixes(token)) feats.set("PREF_" + prefix, 1.0); if (!bos) for (String prefix : prefixes(prevToken)) feats.set("PREF_PREV_" + prefix, 1.0); if (!eos) for (String prefix : prefixes(nextToken)) feats.set("PREF_NEXT_" + prefix, 1.0); return feats; }