All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.aliasi.sentences.IndoEuropeanSentenceModel Maven / Gradle / Ivy

Go to download

This is the original Lingpipe: http://alias-i.com/lingpipe/web/download.html There were not made any changes to the source code.

There is a newer version: 4.1.2-JL1.0
Show newest version
/*
 * 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