【问题标题】:How to extract 'numbers in word form' from a string如何从字符串中提取“单词形式的数字”
【发布时间】:2015-01-08 02:55:00
【问题描述】:

有人知道从哪里开始吗? 例如,从“我有两个苹果”中提取“两个”。 我正在寻找 NLP 或 QDA 的方向。任何关于如何去做的线索将不胜感激。

【问题讨论】:

  • 有一个查找表怎么样 ['one':1,'two':2,'three':3,...]

标签: regex nlp


【解决方案1】:

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

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

【讨论】:

  • 几乎正是我想要的。这是一种真正的享受 :) 谢谢一百万。
  • 我认为您可能想要使用斯坦福正则表达式工具 (nlp.stanford.edu/software/regexner)。标准的斯坦福 NER 模型不包含 NUM 类,尽管 CoreNLP 网络演示中的 NER 输出中显示了内容。
【解决方案2】:

这个呢

(((?: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

这个正则表达式可能会更好,它管理它忽略尾随空格

((\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 个。这是四十的一个非常常见的拼写错误,所以我认为这可能对你有用。如果您愿意,可以将其删除。

【讨论】:

    猜你喜欢
    • 2023-04-03
    • 2017-02-14
    • 2012-10-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-17
    • 2021-10-11
    • 2011-11-29
    相关资源
    最近更新 更多