构建结构化NLP服务(loading...)

构建结构化NLP服务(loading...),第1张

概述记录结构化NLP服务之路,本文长期更新管道(pipeline)从不同数据源(source)获取数据清洗数据构建数据集(dataset)数据集管理拆分训练集/验证集/测试集选择机器学习框架/算法(framework/algorithm)模型训练(train)/预训练/微调训练构建分类器(classifier)基于分类器提供R

记录结构化NLP服务之路,本文长期更新

管道(pipeline)从不同数据源(source)获取数据清洗数据构建数据集(dataset) 数据集管理 拆分训练集/验证集/测试集选择机器学习框架/算法(framework/algorithm)模型训练(train)/预训练/微调训练构建分类器(classifIEr)基于分类器提供 Rest 服务(server)输出结构化数据 结构化数据提供给目标(dest)应用服务 服务于应用层(application)Python 环境

使用Python,一开始都会浪费很多时间在环境上,例如:

python 的不同版本pip 的不同版本,每个python版本都对应一个pip,装python版本还需要装对应的pippython 某个库在某个版本下可以装,但是它依赖的库在这个版本下的版本不能跑手工方式(manual)安装目标 python 版本,例如 3.6的最高版本: python3.6.11 wget https://www.python.org/ftp/python/3.6.11/Python-3.6.11.tgztar xzf Python-3.6.11.tgzcd Python-3.6.11./configure --enable-optimizationsmake altinstall 安装对应 pip版本 下载 get-pip 脚本使用对应版本的 python 安装对应版本的 pip python3.6 get-pip.py 手工更改 /usr/local/bin 下 python 和 pip 的软连接映射 pip 软链接 ln -s -f /usr/local/bin/pip3 /usr/bin/pipln -s -f /usr/local/bin/pip3 /usr/bin/pip3ln -s -f /usr/local/bin/pip3 /usr/bin/pip3.6 python 软链接 ln -s -f /usr/local/bin/python3.6 /usr/bin/pythonln -s -f /usr/local/bin/python3.6 /usr/bin/python3ln -s -f /usr/local/bin/python3.6 /usr/bin/python3.6 使用 pyenv 管理使用 pyenv 管理python环境查看管理的 python 版本:pyenv versions ,带*号带是当前使用的版本验证当前python版本:python --version查看有哪些可用版本的python:pyenv install --List安装指定版本python:pyenv install 3.6.11切换版本:pyenv global 3.6.11如果是 Mac 系统,zsh 和 fish 两个shell 环境还需要为两个 shell 添加一些配置,参考 pyenv git 里的说明,请搜关键词 Zshfish使用 conda 管理使用 conda 管理python环境安装 minicoda创建并安装指定版本的 python 环境:conda create -n py3.6 python=3.6.11切换环境:source activate py3.6查看当前生效的python和pip版本:python --version, pip --version机器学习库

万变不离其宗,程序=数据结构+算法,每一种特定的库处理的是特定数据结构相关的算法,理解这点,保持目标问题导向的库选择和使用。

pandas,关于DataFrame的数据结构numpy,处理多维数组jieba,分词sklearn,常见NLP任务tensorflow,Google深度学习库 tensorflow-gpu pytorch,更新和维护比tensorflow强spacypaddlepaddle 中文处理更友好统一命令行接口

将整个管道的不同阶段 *** 作统一到一致的命令行接口,不要让NLP任务变成一堆无序的项目和脚本,类似 git,将管道中的多任务统一到一致的接口里。

基本 *** 作心智模型:python main.py -p {profile} -a action_name [sub options]

*** 作说明 -p 指定配置环境,例如与携程阿波罗环境的划分: dev 开发环境配置fat 测试环境配置pre 预发布环境配置pro 线上环境配置 -a 指定action,例如: -a build -d questions: 构建问题数据集-a server -t answer: 启动答案服务 如何迭代

开发/内部部署发布/测试/迭代/发布,其中内部部署发布 是首要重要的事情,遵循一些必要的原则有助于达成这点:

内部发布优于第1版正确性,先把流程打通并发布一个版本,快速进入测试-开发迭代优先于1版正确性,最好能达成每周发布。第一性原理,NLP处理的数据是非结构化的,NLP的能力是通过对数据向量化,对数据进行分类和标注,提供数据背后的结构化信息。有了结构化信息,构建这些结构化信息的关系,进而可以对这些结构化的关系信息进行查询或推理。围绕这点带着要解决的目标问题去寻找工具,而不是先找工具,再找问题。

(未完待续…)

总结

以上是内存溢出为你收集整理的构建结构化NLP服务(loading...)全部内容,希望文章能够帮你解决构建结构化NLP服务(loading...)所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1186474.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-03
下一篇 2022-06-03

发表评论

登录后才能评论

评论列表(0条)

保存