private void notJustAlphasToWords(string text) { int i = 0; int num = String.instancehelper_length(text); while (i < num - 1) { if (USEnglishTokenizer.isTextSplitable(text, i)) { break; } i++; } if (i == num - 1) { this.wordRelation.addWord(String.instancehelper_toLowerCase(text)); return; } string text2 = String.instancehelper_substring(text, 0, i + 1); string text3 = String.instancehelper_substring(text, i + 1, num); FeatureSet features = this.tokenItem.getFeatures(); features.setString("nsw", "nide"); this.tokenToWords(text2); this.tokenToWords(text3); }
private void digitsSlashDigitsToWords(string text) { int num = String.instancehelper_indexOf(text, 47); string text2 = String.instancehelper_substring(text, 0, num); string text3 = String.instancehelper_substring(text, num + 1); if (USEnglishTokenizer.matches(USEnglishTokenizer.digitsPattern, (string)this.tokenItem.findFeature("p.name")) && this.tokenItem.getPrevious() != null) { this.wordRelation.addWord("and"); } int num2; if (String.instancehelper_equals(text2, "1") && String.instancehelper_equals(text3, "2")) { this.wordRelation.addWord("a"); this.wordRelation.addWord("half"); } else if ((num2 = Integer.parseInt(text2)) < Integer.parseInt(text3)) { NumberExpander.expandNumber(text2, this.wordRelation); NumberExpander.expandOrdinal(text3, this.wordRelation); if (num2 > 1) { this.wordRelation.addWord("'s"); } } else { NumberExpander.expandNumber(text2, this.wordRelation); this.wordRelation.addWord("slash"); NumberExpander.expandNumber(text3, this.wordRelation); } }
private void romanToWords(string text) { string text2 = (string)this.tokenItem.findFeature("p.punc"); if (String.instancehelper_equals(text2, "")) { string text3 = String.valueOf(NumberExpander.expandRoman(text)); if (USEnglishTokenizer.kingLike(this.tokenItem)) { this.wordRelation.addWord("the"); NumberExpander.expandOrdinal(text3, this.wordRelation); } else if (USEnglishTokenizer.sectionLike(this.tokenItem)) { NumberExpander.expandNumber(text3, this.wordRelation); } else { NumberExpander.expandLetters(text, this.wordRelation); } } else { NumberExpander.expandLetters(text, this.wordRelation); } }
private void usMoneyToWords(string text) { int num = String.instancehelper_indexOf(text, 46); if (USEnglishTokenizer.matches(USEnglishTokenizer.illionPattern, (string)this.tokenItem.findFeature("n.name"))) { NumberExpander.expandReal(String.instancehelper_substring(text, 1), this.wordRelation); } else if (num == -1) { string text2 = String.instancehelper_substring(text, 1); this.tokenToWords(text2); if (String.instancehelper_equals(text2, "1")) { this.wordRelation.addWord("dollar"); } else { this.wordRelation.addWord("dollars"); } } else if (num == String.instancehelper_length(text) - 1 || String.instancehelper_length(text) - num > 3) { NumberExpander.expandReal(String.instancehelper_substring(text, 1), this.wordRelation); this.wordRelation.addWord("dollars"); } else { string text3 = String.instancehelper_substring(text, 1, num); object obj = ","; object obj2 = ""; CharSequence charSequence = CharSequence.Cast(obj); CharSequence charSequence2 = CharSequence.Cast(obj2); string text2 = String.instancehelper_replace(text3, charSequence2, charSequence); string text4 = String.instancehelper_substring(text, num + 1); NumberExpander.expandNumber(text2, this.wordRelation); if (String.instancehelper_equals(text2, "1")) { this.wordRelation.addWord("dollar"); } else { this.wordRelation.addWord("dollars"); } if (!String.instancehelper_equals(text4, "00")) { NumberExpander.expandNumber(text4, this.wordRelation); if (String.instancehelper_equals(text4, "01")) { this.wordRelation.addWord("cent"); } else { this.wordRelation.addWord("cents"); } } } }
private bool matchesPartPhoneNumber(string text) { string text2 = (string)this.tokenItem.findFeature("n.name"); string text3 = (string)this.tokenItem.findFeature("n.n.name"); string text4 = (string)this.tokenItem.findFeature("p.name"); string text5 = (string)this.tokenItem.findFeature("p.p.name"); int num = USEnglishTokenizer.matches(USEnglishTokenizer.threeDigitsPattern, text4) ? 1 : 0; return((USEnglishTokenizer.matches(USEnglishTokenizer.threeDigitsPattern, text) && ((!USEnglishTokenizer.matches(USEnglishTokenizer.digitsPattern, text4) && USEnglishTokenizer.matches(USEnglishTokenizer.threeDigitsPattern, text2) && USEnglishTokenizer.matches(USEnglishTokenizer.fourDigitsPattern, text3)) || USEnglishTokenizer.matches(USEnglishTokenizer.sevenPhoneNumberPattern, text2) || (!USEnglishTokenizer.matches(USEnglishTokenizer.digitsPattern, text5) && num != 0 && USEnglishTokenizer.matches(USEnglishTokenizer.fourDigitsPattern, text2)))) || (USEnglishTokenizer.matches(USEnglishTokenizer.fourDigitsPattern, text) && !USEnglishTokenizer.matches(USEnglishTokenizer.digitsPattern, text2) && num != 0 && USEnglishTokenizer.matches(USEnglishTokenizer.threeDigitsPattern, text5))); }
public static bool kingLike(Item tokenItem) { string text = String.instancehelper_toLowerCase((string)tokenItem.findFeature("p.name")); if (USEnglishTokenizer.inKingSectionLikeMap(text, "kingNames")) { return(true); } string text2 = String.instancehelper_toLowerCase((string)tokenItem.findFeature("p.p.name")); return(USEnglishTokenizer.inKingSectionLikeMap(text2, "kingTitles")); }
private void dashToWords(string text) { int num = String.instancehelper_indexOf(text, 45); string text2 = String.instancehelper_substring(text, 0, num); string text3 = String.instancehelper_substring(text, num + 1, String.instancehelper_length(text)); if (USEnglishTokenizer.matches(USEnglishTokenizer.digitsPattern, text2) && USEnglishTokenizer.matches(USEnglishTokenizer.digitsPattern, text3)) { FeatureSet features = this.tokenItem.getFeatures(); features.setString("name", text2); this.tokenToWords(text2); this.wordRelation.addWord("to"); features.setString("name", text3); this.tokenToWords(text3); features.setString("name", ""); } else { this.tokenToWords(text2); this.tokenToWords(text3); } }
public static bool sectionLike(Item tokenItem) { string text = String.instancehelper_toLowerCase((string)tokenItem.findFeature("p.name")); return(USEnglishTokenizer.inKingSectionLikeMap(text, "sectionTypes")); }
private bool isStateName(string text) { string[] array = (string[])((string[])USEnglishTokenizer.usStatesMap.get(text)); if (array != null) { int num4; if (String.instancehelper_equals(array[1], "ambiguous")) { string text2 = (string)this.tokenItem.findFeature("p.name"); string text3 = (string)this.tokenItem.findFeature("n.name"); int num = String.instancehelper_length(text3); FeatureSet features = this.tokenItem.getFeatures(); int num2 = (!Character.isUpperCase(String.instancehelper_charAt(text2, 0)) || String.instancehelper_length(text2) <= 2 || !USEnglishTokenizer.matches(USEnglishTokenizer.alphabetPattern, text2) || !Object.instancehelper_equals(this.tokenItem.findFeature("p.punc"), ",")) ? 0 : 1; int num3 = (!Character.isLowerCase(String.instancehelper_charAt(text3, 0)) && this.tokenItem.getNext() != null && !String.instancehelper_equals(features.getString("punc"), ".") && ((num != 5 && num != 10) || !USEnglishTokenizer.matches(USEnglishTokenizer.digitsPattern, text3))) ? 0 : 1; if (num2 != 0 && num3 != 0) { num4 = 1; } else { num4 = 0; } } else { num4 = 1; } if (num4 != 0) { for (int i = 2; i < array.Length; i++) { if (array[i] != null) { this.wordRelation.addWord(array[i]); } } return(true); } } return(false); }
private void tokenToWords(string text) { FeatureSet features = this.tokenItem.getFeatures(); string @string = features.getString("name"); int num = String.instancehelper_length(text); if (features.isPresent("phones")) { this.wordRelation.addWord(text); } else if ((String.instancehelper_equals(text, "a") || String.instancehelper_equals(text, "A")) && (this.tokenItem.getNext() == null || !String.instancehelper_equals(text, @string) || !String.instancehelper_equals((string)this.tokenItem.findFeature("punc"), ""))) { this.wordRelation.addWord("_a"); } else if (USEnglishTokenizer.matches(USEnglishTokenizer.alphabetPattern, text)) { if (USEnglishTokenizer.matches(USEnglishTokenizer.romanNumbersPattern, text)) { this.romanToWords(text); } else if (USEnglishTokenizer.matches(USEnglishTokenizer.illionPattern, text) && USEnglishTokenizer.matches(USEnglishTokenizer.usMoneyPattern, (string)this.tokenItem.findFeature("p.name"))) { this.wordRelation.addWord(text); this.wordRelation.addWord("dollars"); } else if (USEnglishTokenizer.matches(USEnglishTokenizer.drStPattern, text)) { this.drStToWords(text); } else if (String.instancehelper_equals(text, "Mr")) { this.tokenItem.getFeatures().setString("punc", ""); this.wordRelation.addWord("mister"); } else if (String.instancehelper_equals(text, "Mrs")) { this.tokenItem.getFeatures().setString("punc", ""); this.wordRelation.addWord("missus"); } else if (num == 1 && Character.isUpperCase(String.instancehelper_charAt(text, 0)) && String.instancehelper_equals((string)this.tokenItem.findFeature("n.whitespace"), " ") && Character.isUpperCase(String.instancehelper_charAt((string)this.tokenItem.findFeature("n.name"), 0))) { features.setString("punc", ""); string text2 = String.instancehelper_toLowerCase(text); if (String.instancehelper_equals(text2, "a")) { this.wordRelation.addWord("_a"); } else { this.wordRelation.addWord(text2); } } else if (!this.isStateName(text)) { if (num > 1 && !this.isPronounceable(text)) { NumberExpander.expandLetters(text, this.wordRelation); } else { this.wordRelation.addWord(String.instancehelper_toLowerCase(text)); } } } else if (USEnglishTokenizer.matches(USEnglishTokenizer.dottedAbbrevPattern, text)) { object obj = "."; object obj2 = ""; CharSequence charSequence = CharSequence.Cast(obj); CharSequence charSequence2 = CharSequence.Cast(obj2); NumberExpander.expandLetters(String.instancehelper_replace(text, charSequence2, charSequence), this.wordRelation); } else if (USEnglishTokenizer.matches(USEnglishTokenizer.commaIntPattern, text)) { object obj4 = ","; object obj3 = ""; object obj2 = obj4; CharSequence charSequence = CharSequence.Cast(obj4); CharSequence charSequence3 = CharSequence.Cast(obj3); string text3 = String.instancehelper_replace(text, charSequence3, charSequence); object obj5 = "'"; obj2 = ""; charSequence = CharSequence.Cast(obj5); CharSequence charSequence4 = charSequence; charSequence = CharSequence.Cast(obj2); NumberExpander.expandReal(String.instancehelper_replace(text3, charSequence4, charSequence), this.wordRelation); } else if (USEnglishTokenizer.matches(USEnglishTokenizer.sevenPhoneNumberPattern, text)) { int num2 = String.instancehelper_indexOf(text, 45); string numberString = String.instancehelper_substring(text, 0, num2); string text4 = String.instancehelper_substring(text, num2 + 1); NumberExpander.expandDigits(numberString, this.wordRelation); this.wordRelation.addBreak(); NumberExpander.expandDigits(text4, this.wordRelation); } else if (this.matchesPartPhoneNumber(text)) { string text2 = (string)this.tokenItem.findFeature("punc"); if (String.instancehelper_equals(text2, "")) { this.tokenItem.getFeatures().setString("punc", ","); } NumberExpander.expandDigits(text, this.wordRelation); this.wordRelation.addBreak(); } else if (USEnglishTokenizer.matches(USEnglishTokenizer.numberTimePattern, text)) { int num2 = String.instancehelper_indexOf(text, 58); string numberString = String.instancehelper_substring(text, 0, num2); string text4 = String.instancehelper_substring(text, num2 + 1); NumberExpander.expandNumber(numberString, this.wordRelation); if (!String.instancehelper_equals(text4, "00")) { NumberExpander.expandID(text4, this.wordRelation); } } else if (USEnglishTokenizer.matches(USEnglishTokenizer.digits2DashPattern, text)) { this.digitsDashToWords(text); } else if (USEnglishTokenizer.matches(USEnglishTokenizer.digitsPattern, text)) { this.digitsToWords(text); } else if (num == 1 && Character.isUpperCase(String.instancehelper_charAt(text, 0)) && String.instancehelper_equals((string)this.tokenItem.findFeature("n.whitespace"), " ") && Character.isUpperCase(String.instancehelper_charAt((string)this.tokenItem.findFeature("n.name"), 0))) { features.setString("punc", ""); string text2 = String.instancehelper_toLowerCase(text); if (String.instancehelper_equals(text2, "a")) { this.wordRelation.addWord("_a"); } else { this.wordRelation.addWord(text2); } } else if (USEnglishTokenizer.matches(USEnglishTokenizer.doublePattern, text)) { NumberExpander.expandReal(text, this.wordRelation); } else if (USEnglishTokenizer.matches(USEnglishTokenizer.ordinalPattern, text)) { string text2 = String.instancehelper_substring(text, 0, num - 2); NumberExpander.expandOrdinal(text2, this.wordRelation); } else if (USEnglishTokenizer.matches(USEnglishTokenizer.usMoneyPattern, text)) { this.usMoneyToWords(text); } else if (num > 0 && String.instancehelper_charAt(text, num - 1) == '%') { this.tokenToWords(String.instancehelper_substring(text, 0, num - 1)); this.wordRelation.addWord("percent"); } else if (USEnglishTokenizer.matches(USEnglishTokenizer.numessPattern, text)) { NumberExpander.expandNumess(String.instancehelper_substring(text, 0, num - 1), this.wordRelation); } else if (USEnglishTokenizer.matches(USEnglishTokenizer.digitsSlashDigitsPattern, text) && String.instancehelper_equals(text, @string)) { this.digitsSlashDigitsToWords(text); } else if (String.instancehelper_indexOf(text, 45) != -1) { this.dashToWords(text); } else if (num > 1 && !USEnglishTokenizer.matches(USEnglishTokenizer.alphabetPattern, text)) { this.notJustAlphasToWords(text); } else if (String.instancehelper_equals(text, "&")) { this.wordRelation.addWord("and"); } else if (!String.instancehelper_equals(text, "-")) { this.wordRelation.addWord(String.instancehelper_toLowerCase(text)); } }