Skip to content

Commit 7fbb7b8

Browse files
committed
Accept fourty as 40... probably can't mean anything else, after all
1 parent d5daf7c commit 7fbb7b8

File tree

2 files changed

+7
-4
lines changed

2 files changed

+7
-4
lines changed

itest/src/edu/stanford/nlp/ie/NumberNormalizerITest.java

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -67,15 +67,17 @@ public void testNumbers() {
6767
"a dozen bagels\n" +
6868
"five dozen\n" +
6969
"An IQ score of 161.\n" + // only 161, not 20 for score
70-
"thirty two"
70+
"thirty two\n" +
71+
"I hope Jennifer would let me lick her antennae even though I am forty-five\n" +
72+
"I hope Jennifer would let me lick her antennae even though I am fourty-five"
7173
;
7274

7375
// set up expected results
7476
Iterator<? extends Number> expectedNumbers = Arrays.asList(
7577
24.0, 405, 600.0, 412.0, 4650211.0, 600005650376.0, 5786345, 25.0,
7678
/* 1500000.0, */
7779
1300000.0, 1224.0, 10000000000.0, 3.625,
78-
0, -15.0, 1, 2, 3, 4, 155.0, 101.0 /*504.0, */, 80.0, 12, 60.0, 161, 32.0 ).iterator();
80+
0, -15.0, 1, 2, 3, 4, 155.0, 101.0 /*504.0, */, 80.0, 12, 60.0, 161, 32.0, 45.0, 45.0 ).iterator();
7981
Iterator<String> expectedTexts = Arrays.asList(
8082
"two dozen", "405", "six hundred", "four hundred, and twelve",
8183
"4 million six hundred fifty thousand, two hundred and eleven",
@@ -93,7 +95,7 @@ public void testNumbers() {
9395
"four score",
9496
"dozen",
9597
"five dozen",
96-
"161", "thirty two").iterator();
98+
"161", "thirty two", "forty-five", "fourty-five").iterator();
9799

98100
// create document
99101
Annotation document = createDocument(testText);

src/edu/stanford/nlp/ie/NumberNormalizer.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,7 @@ public static void setVerbose(boolean verbose) {
7878

7979
/***********************/
8080

81-
private static final Pattern numberTermPattern = Pattern.compile("(?i)(zero|one|two|three|four|five|six|seven|eight|nine|ten|eleven|twelve|thirteen|fourteen|fifteen|sixteen|seventeen|eighteen|nineteen|twenty|thirty|forty|fifty|sixty|seventy|eighty|ninety|hundred|thousand|million|billion|trillion|first|second|third|fourth|fifth|sixth|seventh|eighth|ninth|tenth|eleventh|twelfth|thirteenth|fourteenth|fifteenth|sixteenth|seventeenth|eighteenth|nineteenth|twentieth|thirtieth|fortieth|fiftieth|sixtieth|seventieth|eightieth|ninetieth|hundred?th|thousandth|millionth|billionth|trillionth)");
81+
private static final Pattern numberTermPattern = Pattern.compile("(?i)(zero|one|two|three|four|five|six|seven|eight|nine|ten|eleven|twelve|thirteen|fourteen|fifteen|sixteen|seventeen|eighteen|nineteen|twenty|thirty|forty|fourty|fifty|sixty|seventy|eighty|ninety|hundred|thousand|million|billion|trillion|first|second|third|fourth|fifth|sixth|seventh|eighth|ninth|tenth|eleventh|twelfth|thirteenth|fourteenth|fifteenth|sixteenth|seventeenth|eighteenth|nineteenth|twentieth|thirtieth|fortieth|fiftieth|sixtieth|seventieth|eightieth|ninetieth|hundred?th|thousandth|millionth|billionth|trillionth)");
8282
private static final Pattern numberTermPattern2 = Pattern.compile("(?i)(" + numberTermPattern.pattern() + "(-" + numberTermPattern.pattern() + ")?)");
8383
private static final Pattern ordinalUnitPattern = Pattern.compile("(?i)(hundredth|thousandth|millionth)");
8484

@@ -147,6 +147,7 @@ public static void setVerbose(boolean verbose) {
147147
word2NumMap.put("twenty", 20);
148148
word2NumMap.put("thirty", 30);
149149
word2NumMap.put("forty", 40);
150+
word2NumMap.put("fourty", 40);
150151
word2NumMap.put("fifty", 50);
151152
word2NumMap.put("sixty", 60);
152153
word2NumMap.put("seventy", 70);

0 commit comments

Comments
 (0)