命名实体提取-货币

use*_*678 5 named-entity-recognition stanford-nlp alchemyapi

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

在炼金术演示网站- https://alchemy-language-demo.mybluemix.net/,“$ 100”被公认为是一个实体,而“100美元”的recogised作为一个概念-美国美元

小智 2

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

我认为你有两个选择:

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

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

斯坦福 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']
Run Code Online (Sandbox Code Playgroud)

这只是一个简单的示例,您可以在这里找到更详细的脚本。