实体/地址自由文本的解析器(基于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服务器

如果:

  • 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

参考文献

痉挛

https://spacy.io/

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/

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java编辑并重新运行spring引导单元测试,无需重新加载上下文即可加快测试速度   为什么我不能做演员?   java为什么是线程。join通常用于停止安卓中的线程   java从weblogic服务器调用JSON POST REST服务时收到400:错误请求   java在DeviceAdmin模式禁用时设置身份验证?   java SortedMap的keySet()能否始终安全地强制转换到SortedSet?   安卓 java。lang.NoSuchMethodException可包裹类   java JOGL库安装   javatomcat内存管理   java使用getString()中的变量   java将最小星号设置为评级栏   Java中字符串相等的println()方法。。。它到底是如何工作的?   java如何从文本中输出的数组中放入随机图像