实体/地址自由文本的解析器(基于libposal/spacy)
payment-text-parser的Python项目详细描述
付款文本分析器
说明
输入文本字符串并将实体/地址自由文本输入解析为:
- 标记实体字段(“组织”表示公司,“每”表示个人,“每组织”表示不确定决策)<;=基于Spacy
- 地址的标志地址组件('house number','town','country',…)<;=基于Libpostal
- 根据CoreNLP
一般来说,该软件包包括以下功能:
- 实体/地址字段和自由文本字段的数据生成器(基于开放数据)
- 区分实体/地址字段和自由文本的模型(使用keras/tensorflow和corenlp)来应用专用的启发式方法
- 一系列清理步骤,包括真实案例识别(corenlp)
- 使用重新训练的vanilla spacy模型(基于标记的开放数据)对上述实体/地址/其他字段的解析器
- 在解析之后应用简单的启发式和度量来提高准确性
- 用于下游处理的剩余标志(SPAcy和/或CORENLP)的词性(POS)标记
此软件包专门用于与分析 swift mt消息中的所有字段,包括实体/地址和自由文本字段,它们对跨银行业务起决定性作用 交易沟通。
安装
这个包裹使用了基本的libpostal和spacy。 此外,它还使用tensorflow上的keras来识别文本输入是自由文本还是实体/地址文本。
先决条件:libpostal
请参阅Libpostal installation。
安装libposal之后,python绑定器postal
将作为一部分安装
带PIP的包装(见下文)
付款文本分析器
其他依赖项,包括Spacy,将通过pip
在当前包上安装:
创建环境
/usr/local/bin/python3 -m venv <my_env>
source <my_env>/bin/activate`
来自PIP
pip install payment_text_parser
python -m spacy download de_core_news_sm
来自Git
pip install git+https://gitlab.com/alpina-analytics/payment_text_parser.git
python -m spacy download de_core_news_sm
来自requirements.txt
git clone https://gitlab.com/alpina-analytics/payment_text_parser.git
cd payment_text_parser
pip install -r requirements.txt
python -m spacy download de_core_news_sm
export PYTHONPATH=$(pwd)
使用量
脚本
from entity_extractor.entity_extractor import ExtractorClass
e = ExtractorClass(text)
d_res = e.d_res
网络服务器
# Launch
python main.py
# Test
curl -H "Content-type: application/json" -X POST http://127.0.0.1:5000/parse -d '{"text":"John Deere Les Abues 2 75000 Paris"}'
可选:启动斯坦福NLP服务器
/usr/local/bin/python3 -m venv <my_env>
source <my_env>/bin/activate`
pip install payment_text_parser
python -m spacy download de_core_news_sm
来自Git
pip install git+https://gitlab.com/alpina-analytics/payment_text_parser.git
python -m spacy download de_core_news_sm
来自requirements.txt
git clone https://gitlab.com/alpina-analytics/payment_text_parser.git
cd payment_text_parser
pip install -r requirements.txt
python -m spacy download de_core_news_sm
export PYTHONPATH=$(pwd)
使用量
脚本
from entity_extractor.entity_extractor import ExtractorClass
e = ExtractorClass(text)
d_res = e.d_res
网络服务器
# Launch
python main.py
# Test
curl -H "Content-type: application/json" -X POST http://127.0.0.1:5000/parse -d '{"text":"John Deere Les Abues 2 75000 Paris"}'
可选:启动斯坦福NLP服务器
pip install git+https://gitlab.com/alpina-analytics/payment_text_parser.git
python -m spacy download de_core_news_sm
git clone https://gitlab.com/alpina-analytics/payment_text_parser.git
cd payment_text_parser
pip install -r requirements.txt
python -m spacy download de_core_news_sm
export PYTHONPATH=$(pwd)
使用量
脚本
from entity_extractor.entity_extractor import ExtractorClass
e = ExtractorClass(text)
d_res = e.d_res
网络服务器
# Launch
python main.py
# Test
curl -H "Content-type: application/json" -X POST http://127.0.0.1:5000/parse -d '{"text":"John Deere Les Abues 2 75000 Paris"}'
可选:启动斯坦福NLP服务器
如果:
- 由
ExtractorClass(text,check_field_type=True)
启用的字段类型检测
- 由
ExtractorClass(text,create_nlp_tags_rest_text=True)
启用的rest字段的pos标记 如果未启动,将提示一条警告消息,但仍可以进行完全处理。
corenlp服务器可以如下启动:
cd ./core_nlp/stanford-corenlp-full-2018-10-05
java -Xmx4g -cp "*" edu.stanford.nlp.pipeline.StanfordCoreNLPServer \
-serverProperties StanfordCoreNLP-german.properties \
-preload tokenize,ssplit,pos,parse \
-status_port 9000 -port 9000 -timeout 15000
参考文献
痉挛
libpostal
https://github.com/openvenues/libpostal
corenlp
https://stackoverflow.com/questions/33259191/installing-libicu-dev-on-machttps://stackoverflow.com/questions/50217214/import-error-for-icu-in-mac-and-ubuntu-although-pyicu-is-installed-correctly/50364835#50364835https://www.khalidalnajjar.com/setup-use-stanford-corenlp-server-python/