如何从字符串中提取 'numbers in word form'

How to extract 'numbers in word form' from a string

有人知道从哪里开始吗? 例如,从 "I have two apples" 中提取 "two"。 我正在寻找 NLP 或 QDA 的方向。任何有关如何进行的线索都将不胜感激。

这个呢

(((?:sixty|seventy|eighty|ninety|fourteen|sixteen|seventeen|eighteen|nineteen|one|two|three|four|five|six|seven|eight|nine|ten|eleven|twelve|thirteen|fourteen|fifteen|twenty|thirty|forty|fifty|hundred|thousand|million|billion|trillion|and)[,   -]*)+)

这些词必须是乱序的,因为正则表达式匹配找到的第一个交替。六点前需要六十,四点前需要十四,等等

演示: Regexr

这个正则表达式可能工作得更好,它管理它忽略尾随 space

((\b(?:fourty|sixty|seventy|eighty|ninety|fourteen|sixteen|seventeen|eighteen|nineteen|one|two|three|four|five|six|seven|eight|nine|ten|eleven|twelve|thirteen|fifteen|twenty|thirty|forty|fifty|hundred|thousand|million|billion|trillion|and)\b[ ,    -]*)+(?=\W|$)+)

此外,您会注意到此正则表达式开头有 40 个。这是四十的一个非常常见的拼写错误,所以我认为这可能对你有用。如果你愿意,你可以删除它。

您可能对斯坦福 NER 系统感兴趣。 它标识数字实体。

您可以在这里尝试:http://nlp.stanford.edu:8080/corenlp/