我有一个非常简单的问题 - 在文本中识别货币/货币。 样本测试案例:" 零用钱每年不应超过4000卢比(100美元)。" 默认的斯坦福解析器失败 - 在线 - (使用7类模型,包括货币)http://nlp.stanford.edu:8080/ner/process - 仅适用于" $ 100"等文本。
在Alchemy演示网站上,https://alchemy-language-demo.mybluemix.net/," $ 100"被认可为实体,而" 100美元"被认可为概念 - 美元
答案 0 :(得分:1)
不确定这是否在所有时间之后仍然有用,但是这里是:
我认为您有两种选择:
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']
这只是一个简单的示例,您可以找到更详细的脚本here。