com.aliasi.sentences.IndoEuropeanSentenceModel Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of aliasi-lingpipe Show documentation
Show all versions of aliasi-lingpipe Show documentation
This is the original Lingpipe:
http://alias-i.com/lingpipe/web/download.html
There were not made any changes to the source code.
/*
* LingPipe v. 4.1.0
* Copyright (C) 2003-2011 Alias-i
*
* This program is licensed under the Alias-i Royalty Free License
* Version 1 WITHOUT ANY WARRANTY, without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the Alias-i
* Royalty Free License Version 1 for more details.
*
* You should have received a copy of the Alias-i Royalty Free License
* Version 1 along with this program; if not, visit
* http://alias-i.com/lingpipe/licenses/lingpipe-license-1.txt or contact
* Alias-i, Inc. at 181 North 11th Street, Suite 401, Brooklyn, NY 11211,
* +1 (718) 290-9170.
*/
package com.aliasi.sentences;
import com.aliasi.util.AbstractExternalizable;
import java.io.IOException;
import java.io.ObjectInput;
import java.io.ObjectOutput;
import java.io.Serializable;
import java.util.HashSet;
import java.util.Set;
/**
* An IndoEuropeanSentenceModel
is a heuristic sentence
* designed primarily for English. Whehter or not it balances
* parentheses or forces the last token to be a boundary may be
* set in the constructor. It uses the default implementation of
* possible sentence starts and the following token sets:
*
*
*
*
*
*
*
* Possible Stops
* .
* ..
* !
* ?
* "
* ''
* ).
*
*
*
*
*
* Impossible Penultimates
* any single letter
* personal and professional titles, ranks, etc.
* commas, colon, and quotes
* common abbreviations
* directions
* corporate designators
* times, months, etc.
* U.S. political parties
* U.S. states (not ME or IN)
* shipping terms
* address abbreviations
*
*
*
*
*
* Impossible Starts
* possible stops (see above)
* close parentheses
* ,
* ;
* :
* -
* --
* ---
* %
*
*
*
*
*
*
*
* Note that all of these sets are case insensitive.
*
* Serialization
*
* An Indo-European setence model is serializable. The model read
* back in will be an instance of {@link IndoEuropeanSentenceModel}
* with the same behavior as the model that was written.
*
* @author Bob Carpenter
* @version 3.9
* @since LingPipe1.0
*/
public class IndoEuropeanSentenceModel
extends HeuristicSentenceModel
implements Serializable {
static final long serialVersionUID = 7971853880414958463L;
/**
* Construct an Indo-European sentence model that does
* not force the final token to be a stop and does not
* balance parentheses.
*/
public IndoEuropeanSentenceModel() {
this(false,false);
}
/**
* Construct an Indo-European sentence model that forces final
* tokens and balances parentheses according to the specified
* flags.
*
* @param forceFinalToken Whether the final token is always a
* sentence stop.
* @param balanceParentheses Whether sentences can stop if not all
* open parentheses have been closed.
*
*/
public IndoEuropeanSentenceModel(boolean forceFinalToken,
boolean balanceParentheses) {
super(POSSIBLE_STOPS,
IMPOSSIBLE_PENULTIMATES,
IMPOSSIBLE_STARTS,
forceFinalToken,balanceParentheses);
}
Object writeReplace() {
return new Serializer(this);
}
private static final Set POSSIBLE_STOPS = new HashSet();
static {
POSSIBLE_STOPS.add(".");
POSSIBLE_STOPS.add(".."); // abbrev + stop occurs
POSSIBLE_STOPS.add("!");
POSSIBLE_STOPS.add("?");
POSSIBLE_STOPS.add("\"");
POSSIBLE_STOPS.add("''");
POSSIBLE_STOPS.add(").");
POSSIBLE_STOPS.add("\u00BB"); // french close quote
POSSIBLE_STOPS.add(">>"); // french close quote
}
private static final Set IMPOSSIBLE_PENULTIMATES
= new HashSet();
static {
// Non abbreviations which shouldn't be penultimate
IMPOSSIBLE_PENULTIMATES.add(",");
IMPOSSIBLE_PENULTIMATES.add(":");
IMPOSSIBLE_PENULTIMATES.add("''");
// Single letters; typically middle initials or parts of acronyms
IMPOSSIBLE_PENULTIMATES.add("A");
IMPOSSIBLE_PENULTIMATES.add("B");
IMPOSSIBLE_PENULTIMATES.add("C");
IMPOSSIBLE_PENULTIMATES.add("D");
IMPOSSIBLE_PENULTIMATES.add("E");
IMPOSSIBLE_PENULTIMATES.add("F");
IMPOSSIBLE_PENULTIMATES.add("G");
IMPOSSIBLE_PENULTIMATES.add("H");
IMPOSSIBLE_PENULTIMATES.add("I");
IMPOSSIBLE_PENULTIMATES.add("J");
IMPOSSIBLE_PENULTIMATES.add("K");
IMPOSSIBLE_PENULTIMATES.add("L");
IMPOSSIBLE_PENULTIMATES.add("M");
IMPOSSIBLE_PENULTIMATES.add("N");
IMPOSSIBLE_PENULTIMATES.add("O");
IMPOSSIBLE_PENULTIMATES.add("P");
IMPOSSIBLE_PENULTIMATES.add("Q");
IMPOSSIBLE_PENULTIMATES.add("R");
IMPOSSIBLE_PENULTIMATES.add("S");
IMPOSSIBLE_PENULTIMATES.add("T");
IMPOSSIBLE_PENULTIMATES.add("U");
IMPOSSIBLE_PENULTIMATES.add("V");
IMPOSSIBLE_PENULTIMATES.add("W");
IMPOSSIBLE_PENULTIMATES.add("X");
IMPOSSIBLE_PENULTIMATES.add("Y");
IMPOSSIBLE_PENULTIMATES.add("Z");
// Common Abbrevs
IMPOSSIBLE_PENULTIMATES.add("Bros");
IMPOSSIBLE_PENULTIMATES.add("No"); // too common ??
IMPOSSIBLE_PENULTIMATES.add("vs");
IMPOSSIBLE_PENULTIMATES.add("etc");
IMPOSSIBLE_PENULTIMATES.add("Fig"); // thanks to MM
// French Abbrevs:
IMPOSSIBLE_PENULTIMATES.add("T\u00E9l"); // e + accent aigu
IMPOSSIBLE_PENULTIMATES.add("t\u00E9l");
// Directional Abbrevs
IMPOSSIBLE_PENULTIMATES.add("NE");
IMPOSSIBLE_PENULTIMATES.add("N.E");
IMPOSSIBLE_PENULTIMATES.add("NW");
IMPOSSIBLE_PENULTIMATES.add("N.W");
IMPOSSIBLE_PENULTIMATES.add("SE");
IMPOSSIBLE_PENULTIMATES.add("S.E");
IMPOSSIBLE_PENULTIMATES.add("SW");
IMPOSSIBLE_PENULTIMATES.add("S.W");
// Personal Honorifics
IMPOSSIBLE_PENULTIMATES.add("Mr");
IMPOSSIBLE_PENULTIMATES.add("Mrs");
IMPOSSIBLE_PENULTIMATES.add("Ms");
IMPOSSIBLE_PENULTIMATES.add("MM");
IMPOSSIBLE_PENULTIMATES.add("Mssrs");
IMPOSSIBLE_PENULTIMATES.add("Messrs");
// Professional Honorifics
IMPOSSIBLE_PENULTIMATES.add("Dr");
IMPOSSIBLE_PENULTIMATES.add("Gov");
IMPOSSIBLE_PENULTIMATES.add("Hon");
IMPOSSIBLE_PENULTIMATES.add("Rev");
IMPOSSIBLE_PENULTIMATES.add("Pres");
IMPOSSIBLE_PENULTIMATES.add("Prof");
IMPOSSIBLE_PENULTIMATES.add("Ph.D");
IMPOSSIBLE_PENULTIMATES.add("Ph");
IMPOSSIBLE_PENULTIMATES.add("Rep");
IMPOSSIBLE_PENULTIMATES.add("Reps");
IMPOSSIBLE_PENULTIMATES.add("Rev");
IMPOSSIBLE_PENULTIMATES.add("Sen");
IMPOSSIBLE_PENULTIMATES.add("Sens");
// Name Suffixes
IMPOSSIBLE_PENULTIMATES.add("Jr");
IMPOSSIBLE_PENULTIMATES.add("Sr");
// Military Ranks
IMPOSSIBLE_PENULTIMATES.add("PFC");
IMPOSSIBLE_PENULTIMATES.add("Cpl");
IMPOSSIBLE_PENULTIMATES.add("Sgt");
IMPOSSIBLE_PENULTIMATES.add("Lt");
IMPOSSIBLE_PENULTIMATES.add("Lieut");
IMPOSSIBLE_PENULTIMATES.add("Capt");
IMPOSSIBLE_PENULTIMATES.add("Cpt");
IMPOSSIBLE_PENULTIMATES.add("Maj");
IMPOSSIBLE_PENULTIMATES.add("Gen");
IMPOSSIBLE_PENULTIMATES.add("Col");
IMPOSSIBLE_PENULTIMATES.add("Cmdr");
IMPOSSIBLE_PENULTIMATES.add("Adm");
IMPOSSIBLE_PENULTIMATES.add("Col");
// Corporate Designators
IMPOSSIBLE_PENULTIMATES.add("Co");
IMPOSSIBLE_PENULTIMATES.add("Corp");
IMPOSSIBLE_PENULTIMATES.add("Inc");
IMPOSSIBLE_PENULTIMATES.add("Ltd");
// Month Abbrevs
IMPOSSIBLE_PENULTIMATES.add("Jan");
IMPOSSIBLE_PENULTIMATES.add("Feb");
IMPOSSIBLE_PENULTIMATES.add("Mar");
IMPOSSIBLE_PENULTIMATES.add("Apr");
IMPOSSIBLE_PENULTIMATES.add("Jun");
IMPOSSIBLE_PENULTIMATES.add("Jul");
IMPOSSIBLE_PENULTIMATES.add("Aug");
IMPOSSIBLE_PENULTIMATES.add("Sep");
IMPOSSIBLE_PENULTIMATES.add("Sept");
IMPOSSIBLE_PENULTIMATES.add("Oct");
IMPOSSIBLE_PENULTIMATES.add("Nov");
IMPOSSIBLE_PENULTIMATES.add("Dec");
// Location Suffixes
IMPOSSIBLE_PENULTIMATES.add("St");
// Political Parties
IMPOSSIBLE_PENULTIMATES.add("Rep");
IMPOSSIBLE_PENULTIMATES.add("Dem");
// Politicians
IMPOSSIBLE_PENULTIMATES.add("Atty");
// State Names - Post Office
// Source: http://www.usps.com/ncsc/lookups/usps_abbreviations.html#states
IMPOSSIBLE_PENULTIMATES.add("AL");
IMPOSSIBLE_PENULTIMATES.add("AK");
IMPOSSIBLE_PENULTIMATES.add("AS");
IMPOSSIBLE_PENULTIMATES.add("AZ");
IMPOSSIBLE_PENULTIMATES.add("AR");
IMPOSSIBLE_PENULTIMATES.add("CA");
IMPOSSIBLE_PENULTIMATES.add("CO");
IMPOSSIBLE_PENULTIMATES.add("CT");
IMPOSSIBLE_PENULTIMATES.add("DE");
IMPOSSIBLE_PENULTIMATES.add("DC");
IMPOSSIBLE_PENULTIMATES.add("FM");
IMPOSSIBLE_PENULTIMATES.add("FL");
IMPOSSIBLE_PENULTIMATES.add("GA");
IMPOSSIBLE_PENULTIMATES.add("GU");
IMPOSSIBLE_PENULTIMATES.add("HI");
IMPOSSIBLE_PENULTIMATES.add("ID");
IMPOSSIBLE_PENULTIMATES.add("IL");
// IMPOSSIBLE_PENULTIMATES.add("IN"); too common
IMPOSSIBLE_PENULTIMATES.add("IA");
IMPOSSIBLE_PENULTIMATES.add("KS");
IMPOSSIBLE_PENULTIMATES.add("KY");
IMPOSSIBLE_PENULTIMATES.add("LA");
// IMPOSSIBLE_PENULTIMATES.add("ME"); too common
IMPOSSIBLE_PENULTIMATES.add("MH");
IMPOSSIBLE_PENULTIMATES.add("MD");
IMPOSSIBLE_PENULTIMATES.add("MA");
IMPOSSIBLE_PENULTIMATES.add("MI");
IMPOSSIBLE_PENULTIMATES.add("MN");
IMPOSSIBLE_PENULTIMATES.add("MS");
IMPOSSIBLE_PENULTIMATES.add("MO");
IMPOSSIBLE_PENULTIMATES.add("MT");
IMPOSSIBLE_PENULTIMATES.add("NE");
IMPOSSIBLE_PENULTIMATES.add("NV");
IMPOSSIBLE_PENULTIMATES.add("NH");
IMPOSSIBLE_PENULTIMATES.add("NJ");
IMPOSSIBLE_PENULTIMATES.add("NM");
IMPOSSIBLE_PENULTIMATES.add("NY");
IMPOSSIBLE_PENULTIMATES.add("NC");
IMPOSSIBLE_PENULTIMATES.add("ND");
IMPOSSIBLE_PENULTIMATES.add("MP");
IMPOSSIBLE_PENULTIMATES.add("OH");
IMPOSSIBLE_PENULTIMATES.add("OK");
IMPOSSIBLE_PENULTIMATES.add("OR");
IMPOSSIBLE_PENULTIMATES.add("PW");
IMPOSSIBLE_PENULTIMATES.add("PA");
IMPOSSIBLE_PENULTIMATES.add("PR");
IMPOSSIBLE_PENULTIMATES.add("RI");
IMPOSSIBLE_PENULTIMATES.add("SC");
IMPOSSIBLE_PENULTIMATES.add("SD");
IMPOSSIBLE_PENULTIMATES.add("TN");
IMPOSSIBLE_PENULTIMATES.add("TX");
IMPOSSIBLE_PENULTIMATES.add("UT");
IMPOSSIBLE_PENULTIMATES.add("VT");
IMPOSSIBLE_PENULTIMATES.add("VI");
IMPOSSIBLE_PENULTIMATES.add("VA");
IMPOSSIBLE_PENULTIMATES.add("WA");
IMPOSSIBLE_PENULTIMATES.add("WV");
IMPOSSIBLE_PENULTIMATES.add("WI");
IMPOSSIBLE_PENULTIMATES.add("WY");
// shipping terms
IMPOSSIBLE_PENULTIMATES.add("f.o.b");
IMPOSSIBLE_PENULTIMATES.add("c.i.f");
IMPOSSIBLE_PENULTIMATES.add("fob");
IMPOSSIBLE_PENULTIMATES.add("cif");
// times
IMPOSSIBLE_PENULTIMATES.add("A.M");
IMPOSSIBLE_PENULTIMATES.add("P.M");
// state names - Chicago Manual & AP
// source: www.nyu.edu/classes/copyXediting/STABBREV.html
IMPOSSIBLE_PENULTIMATES.add("Ala");
IMPOSSIBLE_PENULTIMATES.add("Ariz");
IMPOSSIBLE_PENULTIMATES.add("Ark");
IMPOSSIBLE_PENULTIMATES.add("Calif");
IMPOSSIBLE_PENULTIMATES.add("Colo");
IMPOSSIBLE_PENULTIMATES.add("Conn");
IMPOSSIBLE_PENULTIMATES.add("Del");
IMPOSSIBLE_PENULTIMATES.add("D.C");
IMPOSSIBLE_PENULTIMATES.add("Fla");
IMPOSSIBLE_PENULTIMATES.add("Ga");
IMPOSSIBLE_PENULTIMATES.add("Ill");
IMPOSSIBLE_PENULTIMATES.add("Ind");
IMPOSSIBLE_PENULTIMATES.add("Kan");
IMPOSSIBLE_PENULTIMATES.add("Kans");
IMPOSSIBLE_PENULTIMATES.add("Ky");
IMPOSSIBLE_PENULTIMATES.add("Md");
IMPOSSIBLE_PENULTIMATES.add("Mass");
IMPOSSIBLE_PENULTIMATES.add("Mich");
IMPOSSIBLE_PENULTIMATES.add("Minn");
IMPOSSIBLE_PENULTIMATES.add("Miss");
IMPOSSIBLE_PENULTIMATES.add("Mo");
IMPOSSIBLE_PENULTIMATES.add("Mont");
IMPOSSIBLE_PENULTIMATES.add("Neb");
IMPOSSIBLE_PENULTIMATES.add("Nebr");
IMPOSSIBLE_PENULTIMATES.add("Nev");
IMPOSSIBLE_PENULTIMATES.add("N.H");
IMPOSSIBLE_PENULTIMATES.add("N.J");
IMPOSSIBLE_PENULTIMATES.add("N.M");
IMPOSSIBLE_PENULTIMATES.add("N.Mex");
IMPOSSIBLE_PENULTIMATES.add("N.Y");
IMPOSSIBLE_PENULTIMATES.add("N.C");
IMPOSSIBLE_PENULTIMATES.add("N.Dak");
IMPOSSIBLE_PENULTIMATES.add("Okla");
IMPOSSIBLE_PENULTIMATES.add("Ore");
IMPOSSIBLE_PENULTIMATES.add("Oreg");
IMPOSSIBLE_PENULTIMATES.add("Pa");
IMPOSSIBLE_PENULTIMATES.add("R.I");
IMPOSSIBLE_PENULTIMATES.add("S.C");
IMPOSSIBLE_PENULTIMATES.add("S.Dak");
IMPOSSIBLE_PENULTIMATES.add("Tenn");
IMPOSSIBLE_PENULTIMATES.add("Tex");
IMPOSSIBLE_PENULTIMATES.add("Tx");
IMPOSSIBLE_PENULTIMATES.add("Vt");
IMPOSSIBLE_PENULTIMATES.add("Va");
IMPOSSIBLE_PENULTIMATES.add("Wash");
IMPOSSIBLE_PENULTIMATES.add("W.Va");
IMPOSSIBLE_PENULTIMATES.add("Wis");
IMPOSSIBLE_PENULTIMATES.add("Wisc");
IMPOSSIBLE_PENULTIMATES.add("Wyo");
IMPOSSIBLE_PENULTIMATES.add("Wyom");
IMPOSSIBLE_PENULTIMATES.add("Amer");
IMPOSSIBLE_PENULTIMATES.add("C.Z");
IMPOSSIBLE_PENULTIMATES.add("P.R");
IMPOSSIBLE_PENULTIMATES.add("V.I");
// Location suffixes
// Source: http://www.usps.com/ncsc/lookups/usps_abbreviations.html#states
IMPOSSIBLE_PENULTIMATES.add("ALY");
IMPOSSIBLE_PENULTIMATES.add("ANEX");
IMPOSSIBLE_PENULTIMATES.add("ANNX");
IMPOSSIBLE_PENULTIMATES.add("ANX");
IMPOSSIBLE_PENULTIMATES.add("ARC");
IMPOSSIBLE_PENULTIMATES.add("AV");
IMPOSSIBLE_PENULTIMATES.add("AVE");
IMPOSSIBLE_PENULTIMATES.add("AVEN");
IMPOSSIBLE_PENULTIMATES.add("AVN");
IMPOSSIBLE_PENULTIMATES.add("BCH");
IMPOSSIBLE_PENULTIMATES.add("BG");
IMPOSSIBLE_PENULTIMATES.add("BGS");
IMPOSSIBLE_PENULTIMATES.add("BLF");
IMPOSSIBLE_PENULTIMATES.add("BLFS");
IMPOSSIBLE_PENULTIMATES.add("BLVD");
IMPOSSIBLE_PENULTIMATES.add("BND");
IMPOSSIBLE_PENULTIMATES.add("BOT");
IMPOSSIBLE_PENULTIMATES.add("BOUL");
IMPOSSIBLE_PENULTIMATES.add("BR");
IMPOSSIBLE_PENULTIMATES.add("BRG");
IMPOSSIBLE_PENULTIMATES.add("BRK");
IMPOSSIBLE_PENULTIMATES.add("BRKS");
IMPOSSIBLE_PENULTIMATES.add("BRNCH");
IMPOSSIBLE_PENULTIMATES.add("BURG");
IMPOSSIBLE_PENULTIMATES.add("BURGS");
IMPOSSIBLE_PENULTIMATES.add("BYP");
IMPOSSIBLE_PENULTIMATES.add("BYPA");
IMPOSSIBLE_PENULTIMATES.add("BYPS");
IMPOSSIBLE_PENULTIMATES.add("BYU");
IMPOSSIBLE_PENULTIMATES.add("CANYN");
IMPOSSIBLE_PENULTIMATES.add("CEN");
IMPOSSIBLE_PENULTIMATES.add("CENT");
IMPOSSIBLE_PENULTIMATES.add("CIR");
IMPOSSIBLE_PENULTIMATES.add("CIRC");
IMPOSSIBLE_PENULTIMATES.add("CK");
IMPOSSIBLE_PENULTIMATES.add("CLB");
IMPOSSIBLE_PENULTIMATES.add("CLF");
IMPOSSIBLE_PENULTIMATES.add("CLFS");
IMPOSSIBLE_PENULTIMATES.add("CMN");
IMPOSSIBLE_PENULTIMATES.add("CMP");
IMPOSSIBLE_PENULTIMATES.add("CNTR");
IMPOSSIBLE_PENULTIMATES.add("COR");
IMPOSSIBLE_PENULTIMATES.add("CORS");
IMPOSSIBLE_PENULTIMATES.add("CP");
IMPOSSIBLE_PENULTIMATES.add("CPE");
IMPOSSIBLE_PENULTIMATES.add("CR");
IMPOSSIBLE_PENULTIMATES.add("CRCL");
IMPOSSIBLE_PENULTIMATES.add("CRES");
IMPOSSIBLE_PENULTIMATES.add("CRESCENT");
IMPOSSIBLE_PENULTIMATES.add("CRK");
IMPOSSIBLE_PENULTIMATES.add("CRSCNT");
IMPOSSIBLE_PENULTIMATES.add("CRSE");
IMPOSSIBLE_PENULTIMATES.add("CRSSNG");
IMPOSSIBLE_PENULTIMATES.add("CRST");
IMPOSSIBLE_PENULTIMATES.add("CRT");
IMPOSSIBLE_PENULTIMATES.add("CSWY");
IMPOSSIBLE_PENULTIMATES.add("CT");
IMPOSSIBLE_PENULTIMATES.add("CTR");
IMPOSSIBLE_PENULTIMATES.add("CTRS");
IMPOSSIBLE_PENULTIMATES.add("CTS");
IMPOSSIBLE_PENULTIMATES.add("CV");
IMPOSSIBLE_PENULTIMATES.add("CVS");
IMPOSSIBLE_PENULTIMATES.add("CYN");
IMPOSSIBLE_PENULTIMATES.add("DIV");
IMPOSSIBLE_PENULTIMATES.add("DL");
IMPOSSIBLE_PENULTIMATES.add("DM");
IMPOSSIBLE_PENULTIMATES.add("DR");
IMPOSSIBLE_PENULTIMATES.add("DRS");
IMPOSSIBLE_PENULTIMATES.add("DV");
IMPOSSIBLE_PENULTIMATES.add("DVD");
IMPOSSIBLE_PENULTIMATES.add("EST");
IMPOSSIBLE_PENULTIMATES.add("ESTS");
IMPOSSIBLE_PENULTIMATES.add("EXP");
IMPOSSIBLE_PENULTIMATES.add("EXPR");
IMPOSSIBLE_PENULTIMATES.add("EXPW");
IMPOSSIBLE_PENULTIMATES.add("EXPY");
IMPOSSIBLE_PENULTIMATES.add("EXT");
IMPOSSIBLE_PENULTIMATES.add("EXTN");
IMPOSSIBLE_PENULTIMATES.add("EXTNSN");
IMPOSSIBLE_PENULTIMATES.add("EXTS");
IMPOSSIBLE_PENULTIMATES.add("FLD");
IMPOSSIBLE_PENULTIMATES.add("FLDS");
IMPOSSIBLE_PENULTIMATES.add("FLS");
IMPOSSIBLE_PENULTIMATES.add("FLT");
IMPOSSIBLE_PENULTIMATES.add("FLTS");
IMPOSSIBLE_PENULTIMATES.add("FRD");
IMPOSSIBLE_PENULTIMATES.add("FRDS");
IMPOSSIBLE_PENULTIMATES.add("FREEWY");
IMPOSSIBLE_PENULTIMATES.add("FRG");
IMPOSSIBLE_PENULTIMATES.add("FRGS");
IMPOSSIBLE_PENULTIMATES.add("FRK");
IMPOSSIBLE_PENULTIMATES.add("FRKS");
IMPOSSIBLE_PENULTIMATES.add("FRRY");
IMPOSSIBLE_PENULTIMATES.add("FRST");
IMPOSSIBLE_PENULTIMATES.add("FRT");
IMPOSSIBLE_PENULTIMATES.add("FRWAY");
IMPOSSIBLE_PENULTIMATES.add("FRWY");
IMPOSSIBLE_PENULTIMATES.add("FRY");
IMPOSSIBLE_PENULTIMATES.add("FT");
IMPOSSIBLE_PENULTIMATES.add("FWY");
IMPOSSIBLE_PENULTIMATES.add("GARDN");
IMPOSSIBLE_PENULTIMATES.add("GATEWY");
IMPOSSIBLE_PENULTIMATES.add("GDN");
IMPOSSIBLE_PENULTIMATES.add("GDNS");
IMPOSSIBLE_PENULTIMATES.add("GLN");
IMPOSSIBLE_PENULTIMATES.add("GLNS");
IMPOSSIBLE_PENULTIMATES.add("GRDN");
IMPOSSIBLE_PENULTIMATES.add("GRDNS");
IMPOSSIBLE_PENULTIMATES.add("GRN");
IMPOSSIBLE_PENULTIMATES.add("GRNS");
IMPOSSIBLE_PENULTIMATES.add("GRV");
IMPOSSIBLE_PENULTIMATES.add("GRVS");
IMPOSSIBLE_PENULTIMATES.add("HARB");
IMPOSSIBLE_PENULTIMATES.add("HBR");
IMPOSSIBLE_PENULTIMATES.add("HGTS");
IMPOSSIBLE_PENULTIMATES.add("HIWY");
IMPOSSIBLE_PENULTIMATES.add("HL");
IMPOSSIBLE_PENULTIMATES.add("HLLW");
IMPOSSIBLE_PENULTIMATES.add("HLS");
IMPOSSIBLE_PENULTIMATES.add("HT");
IMPOSSIBLE_PENULTIMATES.add("HTS");
IMPOSSIBLE_PENULTIMATES.add("HVN");
IMPOSSIBLE_PENULTIMATES.add("HWAY");
IMPOSSIBLE_PENULTIMATES.add("HWY");
// IMPOSSIBLE_PENULTIMATES.add("IS"); // common
IMPOSSIBLE_PENULTIMATES.add("ISLND");
IMPOSSIBLE_PENULTIMATES.add("ISS");
IMPOSSIBLE_PENULTIMATES.add("JCT");
IMPOSSIBLE_PENULTIMATES.add("JCTN");
IMPOSSIBLE_PENULTIMATES.add("JCTNS");
IMPOSSIBLE_PENULTIMATES.add("JCTS");
IMPOSSIBLE_PENULTIMATES.add("KNL");
IMPOSSIBLE_PENULTIMATES.add("KY");
IMPOSSIBLE_PENULTIMATES.add("KYS");
IMPOSSIBLE_PENULTIMATES.add("LA");
IMPOSSIBLE_PENULTIMATES.add("LCK");
IMPOSSIBLE_PENULTIMATES.add("LCKS");
IMPOSSIBLE_PENULTIMATES.add("LDG");
IMPOSSIBLE_PENULTIMATES.add("LDGE");
IMPOSSIBLE_PENULTIMATES.add("LF");
IMPOSSIBLE_PENULTIMATES.add("LGT");
IMPOSSIBLE_PENULTIMATES.add("LGTS");
IMPOSSIBLE_PENULTIMATES.add("LK");
IMPOSSIBLE_PENULTIMATES.add("LKS");
IMPOSSIBLE_PENULTIMATES.add("LN");
IMPOSSIBLE_PENULTIMATES.add("LNDG");
IMPOSSIBLE_PENULTIMATES.add("LNDNG");
IMPOSSIBLE_PENULTIMATES.add("MDW");
IMPOSSIBLE_PENULTIMATES.add("MDWS");
IMPOSSIBLE_PENULTIMATES.add("MISSN");
IMPOSSIBLE_PENULTIMATES.add("ML");
IMPOSSIBLE_PENULTIMATES.add("MLS");
IMPOSSIBLE_PENULTIMATES.add("MNR");
IMPOSSIBLE_PENULTIMATES.add("MNRS");
IMPOSSIBLE_PENULTIMATES.add("MNT");
IMPOSSIBLE_PENULTIMATES.add("MNTN");
IMPOSSIBLE_PENULTIMATES.add("MNTNS");
IMPOSSIBLE_PENULTIMATES.add("MSN");
IMPOSSIBLE_PENULTIMATES.add("MSSN");
IMPOSSIBLE_PENULTIMATES.add("MT");
IMPOSSIBLE_PENULTIMATES.add("MTN");
IMPOSSIBLE_PENULTIMATES.add("MTNS");
IMPOSSIBLE_PENULTIMATES.add("MTWY");
IMPOSSIBLE_PENULTIMATES.add("NCK");
IMPOSSIBLE_PENULTIMATES.add("OPAS");
IMPOSSIBLE_PENULTIMATES.add("ORCH");
IMPOSSIBLE_PENULTIMATES.add("OVL");
IMPOSSIBLE_PENULTIMATES.add("PK");
IMPOSSIBLE_PENULTIMATES.add("PKWAY");
IMPOSSIBLE_PENULTIMATES.add("PKWY");
IMPOSSIBLE_PENULTIMATES.add("PKWYS");
IMPOSSIBLE_PENULTIMATES.add("PKY");
IMPOSSIBLE_PENULTIMATES.add("PL");
IMPOSSIBLE_PENULTIMATES.add("PLN");
IMPOSSIBLE_PENULTIMATES.add("PLNS");
IMPOSSIBLE_PENULTIMATES.add("PLZ");
IMPOSSIBLE_PENULTIMATES.add("PLZA");
IMPOSSIBLE_PENULTIMATES.add("PNE");
IMPOSSIBLE_PENULTIMATES.add("PNES");
IMPOSSIBLE_PENULTIMATES.add("PR");
IMPOSSIBLE_PENULTIMATES.add("PRK");
IMPOSSIBLE_PENULTIMATES.add("PRR");
IMPOSSIBLE_PENULTIMATES.add("PRT");
IMPOSSIBLE_PENULTIMATES.add("PRTS");
IMPOSSIBLE_PENULTIMATES.add("PSGE");
IMPOSSIBLE_PENULTIMATES.add("PT");
IMPOSSIBLE_PENULTIMATES.add("PTS");
IMPOSSIBLE_PENULTIMATES.add("RAD");
IMPOSSIBLE_PENULTIMATES.add("RADL");
IMPOSSIBLE_PENULTIMATES.add("RAMP");
IMPOSSIBLE_PENULTIMATES.add("RD");
IMPOSSIBLE_PENULTIMATES.add("RDG");
IMPOSSIBLE_PENULTIMATES.add("RDGE");
IMPOSSIBLE_PENULTIMATES.add("RDGS");
IMPOSSIBLE_PENULTIMATES.add("RDS");
IMPOSSIBLE_PENULTIMATES.add("RIV");
IMPOSSIBLE_PENULTIMATES.add("RIVR");
IMPOSSIBLE_PENULTIMATES.add("RNCH");
IMPOSSIBLE_PENULTIMATES.add("RNCHS");
IMPOSSIBLE_PENULTIMATES.add("RPD");
IMPOSSIBLE_PENULTIMATES.add("RPDS");
IMPOSSIBLE_PENULTIMATES.add("RST");
IMPOSSIBLE_PENULTIMATES.add("RTE");
IMPOSSIBLE_PENULTIMATES.add("RVR");
IMPOSSIBLE_PENULTIMATES.add("SHL");
IMPOSSIBLE_PENULTIMATES.add("SHLS");
IMPOSSIBLE_PENULTIMATES.add("SHR");
IMPOSSIBLE_PENULTIMATES.add("SHRS");
IMPOSSIBLE_PENULTIMATES.add("SKWY");
IMPOSSIBLE_PENULTIMATES.add("SMT");
IMPOSSIBLE_PENULTIMATES.add("SPG");
IMPOSSIBLE_PENULTIMATES.add("SPGS");
IMPOSSIBLE_PENULTIMATES.add("SPNG");
IMPOSSIBLE_PENULTIMATES.add("SQ");
IMPOSSIBLE_PENULTIMATES.add("SQR");
IMPOSSIBLE_PENULTIMATES.add("SQRE");
IMPOSSIBLE_PENULTIMATES.add("SQRS");
IMPOSSIBLE_PENULTIMATES.add("SQS");
IMPOSSIBLE_PENULTIMATES.add("SQU");
IMPOSSIBLE_PENULTIMATES.add("ST");
IMPOSSIBLE_PENULTIMATES.add("STA");
IMPOSSIBLE_PENULTIMATES.add("STATN");
IMPOSSIBLE_PENULTIMATES.add("STN");
IMPOSSIBLE_PENULTIMATES.add("STR");
IMPOSSIBLE_PENULTIMATES.add("STRA");
IMPOSSIBLE_PENULTIMATES.add("STRM");
IMPOSSIBLE_PENULTIMATES.add("STRT");
IMPOSSIBLE_PENULTIMATES.add("STRVN");
IMPOSSIBLE_PENULTIMATES.add("STS");
IMPOSSIBLE_PENULTIMATES.add("TER");
IMPOSSIBLE_PENULTIMATES.add("TERR");
IMPOSSIBLE_PENULTIMATES.add("TPK");
IMPOSSIBLE_PENULTIMATES.add("TPKE");
IMPOSSIBLE_PENULTIMATES.add("TR");
IMPOSSIBLE_PENULTIMATES.add("TRAK");
IMPOSSIBLE_PENULTIMATES.add("TRCE");
IMPOSSIBLE_PENULTIMATES.add("TRFY");
IMPOSSIBLE_PENULTIMATES.add("TRK");
IMPOSSIBLE_PENULTIMATES.add("TRKS");
IMPOSSIBLE_PENULTIMATES.add("TRL");
IMPOSSIBLE_PENULTIMATES.add("TRLS");
IMPOSSIBLE_PENULTIMATES.add("TRNPK");
IMPOSSIBLE_PENULTIMATES.add("TRPK");
IMPOSSIBLE_PENULTIMATES.add("TRWY");
IMPOSSIBLE_PENULTIMATES.add("TUNL");
IMPOSSIBLE_PENULTIMATES.add("TUNLS");
IMPOSSIBLE_PENULTIMATES.add("TUNNL");
IMPOSSIBLE_PENULTIMATES.add("TURNPK");
IMPOSSIBLE_PENULTIMATES.add("UN");
IMPOSSIBLE_PENULTIMATES.add("UNS");
IMPOSSIBLE_PENULTIMATES.add("UPAS");
IMPOSSIBLE_PENULTIMATES.add("VDCT");
IMPOSSIBLE_PENULTIMATES.add("VIA");
IMPOSSIBLE_PENULTIMATES.add("VILL");
IMPOSSIBLE_PENULTIMATES.add("VILLE");
IMPOSSIBLE_PENULTIMATES.add("VILLG");
IMPOSSIBLE_PENULTIMATES.add("VIS");
IMPOSSIBLE_PENULTIMATES.add("VIST");
IMPOSSIBLE_PENULTIMATES.add("VISTA");
IMPOSSIBLE_PENULTIMATES.add("VL");
IMPOSSIBLE_PENULTIMATES.add("VLG");
IMPOSSIBLE_PENULTIMATES.add("VLGS");
IMPOSSIBLE_PENULTIMATES.add("VLLY");
IMPOSSIBLE_PENULTIMATES.add("VLY");
IMPOSSIBLE_PENULTIMATES.add("VLYS");
IMPOSSIBLE_PENULTIMATES.add("VST");
IMPOSSIBLE_PENULTIMATES.add("VSTA");
IMPOSSIBLE_PENULTIMATES.add("VW");
IMPOSSIBLE_PENULTIMATES.add("VWS");
IMPOSSIBLE_PENULTIMATES.add("WL");
IMPOSSIBLE_PENULTIMATES.add("WLS");
IMPOSSIBLE_PENULTIMATES.add("WY");
IMPOSSIBLE_PENULTIMATES.add("XING");
IMPOSSIBLE_PENULTIMATES.add("XRD");
// corporate designators
// source: http://www.ldc.upenn.edu/Catalog/CatalogList/LDC2001T02/resources.corp-desigs-ref-list
IMPOSSIBLE_PENULTIMATES.add("AB");
IMPOSSIBLE_PENULTIMATES.add("A.B");
IMPOSSIBLE_PENULTIMATES.add("AE");
IMPOSSIBLE_PENULTIMATES.add("A.E.");
IMPOSSIBLE_PENULTIMATES.add("AENP");
IMPOSSIBLE_PENULTIMATES.add("AG");
IMPOSSIBLE_PENULTIMATES.add("AG&COKG");
IMPOSSIBLE_PENULTIMATES.add("AG");
IMPOSSIBLE_PENULTIMATES.add("Co");
IMPOSSIBLE_PENULTIMATES.add("KG");
IMPOSSIBLE_PENULTIMATES.add("AL");
IMPOSSIBLE_PENULTIMATES.add("A/L");
IMPOSSIBLE_PENULTIMATES.add("AMBA");
IMPOSSIBLE_PENULTIMATES.add("A.M.B.A.");
IMPOSSIBLE_PENULTIMATES.add("AO");
IMPOSSIBLE_PENULTIMATES.add("A.O");
IMPOSSIBLE_PENULTIMATES.add("APS");
IMPOSSIBLE_PENULTIMATES.add("A&P");
IMPOSSIBLE_PENULTIMATES.add("AS");
IMPOSSIBLE_PENULTIMATES.add("AS");
IMPOSSIBLE_PENULTIMATES.add("A.S");
IMPOSSIBLE_PENULTIMATES.add("AS");
IMPOSSIBLE_PENULTIMATES.add("A/S");
IMPOSSIBLE_PENULTIMATES.add("A.S");
IMPOSSIBLE_PENULTIMATES.add("AY");
IMPOSSIBLE_PENULTIMATES.add("BA");
IMPOSSIBLE_PENULTIMATES.add("B.A");
IMPOSSIBLE_PENULTIMATES.add("BHD");
IMPOSSIBLE_PENULTIMATES.add("BM");
IMPOSSIBLE_PENULTIMATES.add("B.M");
IMPOSSIBLE_PENULTIMATES.add("BSC");
IMPOSSIBLE_PENULTIMATES.add("BV");
IMPOSSIBLE_PENULTIMATES.add("B.V");
IMPOSSIBLE_PENULTIMATES.add("BVBA");
IMPOSSIBLE_PENULTIMATES.add("B.V.B.A");
IMPOSSIBLE_PENULTIMATES.add("BVCV");
IMPOSSIBLE_PENULTIMATES.add("B.V");
IMPOSSIBLE_PENULTIMATES.add("C.V");
IMPOSSIBLE_PENULTIMATES.add("B.V./C.V");
IMPOSSIBLE_PENULTIMATES.add("CA");
IMPOSSIBLE_PENULTIMATES.add("C.A");
IMPOSSIBLE_PENULTIMATES.add("CA");
IMPOSSIBLE_PENULTIMATES.add("Cia.");
IMPOSSIBLE_PENULTIMATES.add("CDERL");
IMPOSSIBLE_PENULTIMATES.add("CDERL");
IMPOSSIBLE_PENULTIMATES.add("CV");
IMPOSSIBLE_PENULTIMATES.add("C.V");
IMPOSSIBLE_PENULTIMATES.add("CO");
IMPOSSIBLE_PENULTIMATES.add("CORP");
IMPOSSIBLE_PENULTIMATES.add("CPORA");
IMPOSSIBLE_PENULTIMATES.add("CPT");
IMPOSSIBLE_PENULTIMATES.add("EC");
IMPOSSIBLE_PENULTIMATES.add("E.C");
IMPOSSIBLE_PENULTIMATES.add("EG");
IMPOSSIBLE_PENULTIMATES.add("EGMBH");
IMPOSSIBLE_PENULTIMATES.add("EPE");
IMPOSSIBLE_PENULTIMATES.add("E.P.E");
IMPOSSIBLE_PENULTIMATES.add("GMBH");
IMPOSSIBLE_PENULTIMATES.add("Ges.m.b.H");
IMPOSSIBLE_PENULTIMATES.add("GBR");
IMPOSSIBLE_PENULTIMATES.add("GGMBH");
IMPOSSIBLE_PENULTIMATES.add("GGMBH");
IMPOSSIBLE_PENULTIMATES.add("GMK");
IMPOSSIBLE_PENULTIMATES.add("GM.K");
IMPOSSIBLE_PENULTIMATES.add("G.M.B.H");
IMPOSSIBLE_PENULTIMATES.add("CO,KG");
IMPOSSIBLE_PENULTIMATES.add("GP");
IMPOSSIBLE_PENULTIMATES.add("G.P");
IMPOSSIBLE_PENULTIMATES.add("GSK");
IMPOSSIBLE_PENULTIMATES.add("HF");
IMPOSSIBLE_PENULTIMATES.add("H.F");
IMPOSSIBLE_PENULTIMATES.add("HMIG");
IMPOSSIBLE_PENULTIMATES.add("H.MIJ");
IMPOSSIBLE_PENULTIMATES.add("H.MIG");
IMPOSSIBLE_PENULTIMATES.add("HVER");
IMPOSSIBLE_PENULTIMATES.add("H.VER");
IMPOSSIBLE_PENULTIMATES.add("INC");
// IMPOSSIBLE_PENULTIMATES.add("IS"); // too common
IMPOSSIBLE_PENULTIMATES.add("I/S");
IMPOSSIBLE_PENULTIMATES.add("KB");
IMPOSSIBLE_PENULTIMATES.add("KG");
IMPOSSIBLE_PENULTIMATES.add("KGAA");
IMPOSSIBLE_PENULTIMATES.add("K.G.A.A");
IMPOSSIBLE_PENULTIMATES.add("KK");
IMPOSSIBLE_PENULTIMATES.add("KS");
IMPOSSIBLE_PENULTIMATES.add("K/S");
IMPOSSIBLE_PENULTIMATES.add("KY");
IMPOSSIBLE_PENULTIMATES.add("LDA");
IMPOSSIBLE_PENULTIMATES.add("LTD");
IMPOSSIBLE_PENULTIMATES.add("LTDAPS");
IMPOSSIBLE_PENULTIMATES.add("LLC");
IMPOSSIBLE_PENULTIMATES.add("L.L.C");
IMPOSSIBLE_PENULTIMATES.add("LP");
IMPOSSIBLE_PENULTIMATES.add("L.P");
IMPOSSIBLE_PENULTIMATES.add("LTDA");
IMPOSSIBLE_PENULTIMATES.add("MIJ");
IMPOSSIBLE_PENULTIMATES.add("NL");
IMPOSSIBLE_PENULTIMATES.add("N.L");
IMPOSSIBLE_PENULTIMATES.add("NPL");
IMPOSSIBLE_PENULTIMATES.add("N.P.L");
IMPOSSIBLE_PENULTIMATES.add("NV");
IMPOSSIBLE_PENULTIMATES.add("N.V");
IMPOSSIBLE_PENULTIMATES.add("OHG");
IMPOSSIBLE_PENULTIMATES.add("OE");
IMPOSSIBLE_PENULTIMATES.add("O.E");
IMPOSSIBLE_PENULTIMATES.add("OY");
IMPOSSIBLE_PENULTIMATES.add("OYAB");
IMPOSSIBLE_PENULTIMATES.add("PERJAN");
IMPOSSIBLE_PENULTIMATES.add("PERSERO");
IMPOSSIBLE_PENULTIMATES.add("PERUM");
IMPOSSIBLE_PENULTIMATES.add("PLC");
IMPOSSIBLE_PENULTIMATES.add("PN");
IMPOSSIBLE_PENULTIMATES.add("PP");
IMPOSSIBLE_PENULTIMATES.add("PT");
IMPOSSIBLE_PENULTIMATES.add("PTY");
IMPOSSIBLE_PENULTIMATES.add("PTE");
IMPOSSIBLE_PENULTIMATES.add("PVBA");
IMPOSSIBLE_PENULTIMATES.add("P.V.B.A");
IMPOSSIBLE_PENULTIMATES.add("SA");
IMPOSSIBLE_PENULTIMATES.add("S.A");
IMPOSSIBLE_PENULTIMATES.add("SA");
IMPOSSIBLE_PENULTIMATES.add("SA");
IMPOSSIBLE_PENULTIMATES.add("SAC");
IMPOSSIBLE_PENULTIMATES.add("S.A.C");
IMPOSSIBLE_PENULTIMATES.add("SACA");
IMPOSSIBLE_PENULTIMATES.add("S.A.C.A");
IMPOSSIBLE_PENULTIMATES.add("SACC");
IMPOSSIBLE_PENULTIMATES.add("S.Acc");
IMPOSSIBLE_PENULTIMATES.add("ACC");
IMPOSSIBLE_PENULTIMATES.add("SACCPA");
IMPOSSIBLE_PENULTIMATES.add("S.ACC.P.A");
IMPOSSIBLE_PENULTIMATES.add("ACC.P.A");
IMPOSSIBLE_PENULTIMATES.add("P.A");
IMPOSSIBLE_PENULTIMATES.add("SACEI");
IMPOSSIBLE_PENULTIMATES.add("S.A.");
IMPOSSIBLE_PENULTIMATES.add("C.E.I");
IMPOSSIBLE_PENULTIMATES.add("SACIF");
IMPOSSIBLE_PENULTIMATES.add("S.A.C.I.F");
IMPOSSIBLE_PENULTIMATES.add("SADECV");
IMPOSSIBLE_PENULTIMATES.add("S.A.");
IMPOSSIBLE_PENULTIMATES.add("C.V");
IMPOSSIBLE_PENULTIMATES.add("SAIC");
IMPOSSIBLE_PENULTIMATES.add("S.A.I.C");
IMPOSSIBLE_PENULTIMATES.add("SAICA");
IMPOSSIBLE_PENULTIMATES.add("S.A.I.C.A");
IMPOSSIBLE_PENULTIMATES.add("SALC");
IMPOSSIBLE_PENULTIMATES.add("S.A.L.C");
IMPOSSIBLE_PENULTIMATES.add("SALC");
IMPOSSIBLE_PENULTIMATES.add("SANV");
IMPOSSIBLE_PENULTIMATES.add("S.A.N.V");
IMPOSSIBLE_PENULTIMATES.add("SARL");
IMPOSSIBLE_PENULTIMATES.add("S.A.R.L");
IMPOSSIBLE_PENULTIMATES.add("SAS");
IMPOSSIBLE_PENULTIMATES.add("S.A.S");
IMPOSSIBLE_PENULTIMATES.add("SCI");
IMPOSSIBLE_PENULTIMATES.add("S.C.I");
IMPOSSIBLE_PENULTIMATES.add("SCl");
IMPOSSIBLE_PENULTIMATES.add("S.C.L");
IMPOSSIBLE_PENULTIMATES.add("SCP");
IMPOSSIBLE_PENULTIMATES.add("S.C.P");
IMPOSSIBLE_PENULTIMATES.add("SCPA");
IMPOSSIBLE_PENULTIMATES.add("S.C.p.A");
IMPOSSIBLE_PENULTIMATES.add("SCPDEG");
IMPOSSIBLE_PENULTIMATES.add("S.C.P");
IMPOSSIBLE_PENULTIMATES.add("SCRL");
IMPOSSIBLE_PENULTIMATES.add("SDERL");
IMPOSSIBLE_PENULTIMATES.add("R.L");
IMPOSSIBLE_PENULTIMATES.add("R.L");
IMPOSSIBLE_PENULTIMATES.add("SDERLDECV");
IMPOSSIBLE_PENULTIMATES.add("C.V");
IMPOSSIBLE_PENULTIMATES.add("SENC");
IMPOSSIBLE_PENULTIMATES.add("SENCPORA");
IMPOSSIBLE_PENULTIMATES.add("SEND");
IMPOSSIBLE_PENULTIMATES.add("SICI");
IMPOSSIBLE_PENULTIMATES.add("S.I.C.I");
IMPOSSIBLE_PENULTIMATES.add("SL");
IMPOSSIBLE_PENULTIMATES.add("S.L.");
IMPOSSIBLE_PENULTIMATES.add("SMA");
IMPOSSIBLE_PENULTIMATES.add("S.M.A");
IMPOSSIBLE_PENULTIMATES.add("SMCP");
IMPOSSIBLE_PENULTIMATES.add("S.M.C.P");
IMPOSSIBLE_PENULTIMATES.add("SNC");
IMPOSSIBLE_PENULTIMATES.add("S.N.C");
IMPOSSIBLE_PENULTIMATES.add("SPA");
IMPOSSIBLE_PENULTIMATES.add("S.P.A");
IMPOSSIBLE_PENULTIMATES.add("SPRL");
IMPOSSIBLE_PENULTIMATES.add("S.P.R.L");
IMPOSSIBLE_PENULTIMATES.add("SRL");
IMPOSSIBLE_PENULTIMATES.add("S.R.L");
IMPOSSIBLE_PENULTIMATES.add("SV");
IMPOSSIBLE_PENULTIMATES.add("SZRL");
IMPOSSIBLE_PENULTIMATES.add("S.Z.R.L");
IMPOSSIBLE_PENULTIMATES.add("TAS");
IMPOSSIBLE_PENULTIMATES.add("T.A.S");
IMPOSSIBLE_PENULTIMATES.add("UPA");
IMPOSSIBLE_PENULTIMATES.add("U.p.a");
IMPOSSIBLE_PENULTIMATES.add("UNIV");
IMPOSSIBLE_PENULTIMATES.add("VN");
IMPOSSIBLE_PENULTIMATES.add("WLL");
IMPOSSIBLE_PENULTIMATES.add("W.L.L");
}
private static final Set IMPOSSIBLE_STARTS
= new HashSet();
static {
IMPOSSIBLE_STARTS.add(",");
IMPOSSIBLE_STARTS.add(")");
IMPOSSIBLE_STARTS.add("]");
IMPOSSIBLE_STARTS.add("}");
IMPOSSIBLE_STARTS.add(">");
IMPOSSIBLE_STARTS.add("<");
IMPOSSIBLE_STARTS.add(".");
IMPOSSIBLE_STARTS.add("!");
IMPOSSIBLE_STARTS.add("?");
IMPOSSIBLE_STARTS.add(":");
IMPOSSIBLE_STARTS.add(";");
IMPOSSIBLE_STARTS.add("-");
IMPOSSIBLE_STARTS.add("--");
IMPOSSIBLE_STARTS.add("---");
IMPOSSIBLE_STARTS.add("%");
}
static class Serializer extends AbstractExternalizable {
static final long serialVersionUID = 6764068662877106091L;
final IndoEuropeanSentenceModel mModel;
public Serializer() {
this(null);
}
public Serializer(IndoEuropeanSentenceModel model) {
mModel = model;
}
public void writeExternal(ObjectOutput out) throws IOException {
out.writeBoolean(mModel.forceFinalStop());
out.writeBoolean(mModel.balanceParens());
}
public Object read(ObjectInput in)
throws IOException {
boolean forceFinalStop = in.readBoolean();
boolean balanceParens = in.readBoolean();
return new IndoEuropeanSentenceModel(forceFinalStop,
balanceParens);
}
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy