【问题标题】:Named Entity Extraction - for Currency命名实体提取 - 用于货币
【发布时间】:2017-05-18 06:46:12
【问题描述】:

我有一个非常简单的问题 - 识别文本中的货币/货币。 示例测试用例:“每年的零用钱不应超过 4000 卢比(100 美元)。” 默认斯坦福解析器失败 - 在线 - (使用 7 类模型,包括货币)http://nlp.stanford.edu:8080/ner/process - 仅适用于“$ 100”之类的文本。

在 Alchemy 演示网站 - https://alchemy-language-demo.mybluemix.net/ 上,“$ 100”被识别为实体,而“USD 100”被识别为概念 - 美元

【问题讨论】:

    标签: stanford-nlp named-entity-recognition alchemyapi


    【解决方案1】:

    不确定这在这么久之后是否仍然有用,但这里是:

    我认为你有两个选择:

    1) 将“USD”替换为“$” - 这将是一个简单的查找和替换,并且可以在您可能使用的任何工具中完成。

    2) 使用不同的工具或程序。

    Stanford NLP 很棒,但也有其他可用的工具。

    根据您使用的系统/语言,有许多软件包已经为您完成了这项工作。

    对于 Python,我推荐 SpaCy:

    
    # pip install spacy
    # python -m spacy download en_core_web_sm
    
    import spacy
    
    # Load English tokenizer, tagger, parser, NER and word vectors
    
    nlp = spacy.load("en_core_web_sm")
    
    text = "Pocket money should NOT exceed INR 4000 (USD 100) per annum."
    
    doc = nlp(text)
    
    print("Money in USD:", [ent.lemma_ for ent in doc if ent.ent_type_ == "MONEY"])
    # Money in USD: ['100']
    

    这只是一个简单的例子,你可以找到更详细的脚本here

    【讨论】:

    • 上面的例子不适用于小英文模型。当我更改为 nlp = spacy.load("en_core_web_md") 时它起作用了
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-08-01
    • 1970-01-01
    • 2012-01-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-12
    相关资源
    最近更新 更多