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)
这只是一个简单的示例,您可以在这里找到更详细的脚本。
| 归档时间: |
|
| 查看次数: |
734 次 |
| 最近记录: |