加入收藏 | 设为首页 | 会员中心 | 我要投稿 甘孜站长网 (https://www.0836zz.com.cn/)- 运维、物联设备、数据计算、智能推荐、云管理!
当前位置: 首页 > 站长资讯 > 外闻 > 正文

那些不为人知的辛酸

发布时间:2021-02-06 19:01:28 所属栏目:外闻 来源:互联网
导读:在 ConfigController 类中,我们可以看到@Value 的使用基本格式为@Value(${param}),但针对命令行参数获取时我们采用了@Value(${param:default})方式。在实践中这两种方式都比较常用,而第二种通过冒号分隔符进行传递默认值,当 param 参数不存在或未在appli

在 ConfigController 类中,我们可以看到@Value 的使用基本格式为@Value("${param}"),但针对命令行参数获取时我们采用了@Value("${param:default}")方式。在实践中这两种方式都比较常用,而第二种通过冒号分隔符进行传递默认值,当 param 参数不存在或未在application 中配置时,会使用指定的默认值。

以当前实例为例,如果启动命令中未指定 projectName 参数,同时@Value 获取时也未指定默认值"unknown",那么在执行启动命令时便会抛出异常无法启动。这是我们在使用@Value的过程中需要注意的一种情况。

关于 application.properties 配置文件中参数的设置更简单,直接在对应文件中设置对应的key=value 值即可,比如本例中 application.properties 中的配置源码如下。
 

中通过@RestController 注解指定该类为可接收请求的 Controller,并进行实例化。在该类内部分 别通过@Value 注解、@Resource 注解来 获取不同途径 设置的参数。 通过getConfigParams 方法对外提供访问请求, 当前接收到请求之后会打印不同途径获得参数的值。

首先我们来看通过@Value 获取到的值的来源,在该实例中有两个途径来设置对应的值:

application.properties 配置文件和命令行参数。

关于命令行参数,我们之前也已经提到过,基本传递方式就是在执行启动项目的命令时通过“一 name=value' 的形式进行传递。结合并实例,传递方式如下。
 

综合实战

本章我们讲解了关于 Spring Boot 外化配置的原理及源码分析,本节我们通过一个具体的例子来简单演示在 Spring Boot 中如何使用不同类型的参数及配置。本节实例涉及的部分新知识点我们也会进行简单介绍和拓展。

在本节实例中,我们会用到命令行传递参数、默认配置文件 application.properties 及基于profile 配置参数、@Value 注解获取参数、 基于类型安全的@ConfigurationProperties 注解关联 Bean 等功能。

由于 Spring Boot 已经对外化配置进行了简化处理,对照此前章节中相关原理的介绍,我们在实践中使用起来是非常方便的。这里我创建了一个标准的 Spring Boot 项目,版本采用2.2.1.RELEASE。首先我们看一下项目的目录结构。
 

注意:基于模式的模型在上面的例子中不能很好地处理这样的小文本。我建议对平均四句话的文本进行情感分析。

其他应用

这里有几个附加的主题和一些有用的算法和工具来加速你的开发。

  • 关键词提取:命名实体识别(NER)使用SpaCy,快速自动关键字提取(RAKE)使用ntlk-rake
  • 文本摘要:TextRank(类似于PageRank)使用PyTextRank SpaCy扩展,TF-IDF使用GenSim
  • 拼写检查:PyEnchant,SymSpell Python端口

希望这些示例有助于演示Python中可用于自然语言处理的大量资源。不管问题是什么,有人开发了一个库来简化流程。使用这些库可以在短时间内产生很好的结果。

提示和技巧

通过对NLP的介绍、Python库的概述以及一些示例应用程序,你几乎可以应对自己的挑战了。最后,我有一些技巧和技巧来充分利用这些资源。

  • Python工具:我推荐Poetry 用于依赖关系管理,Jupyter Notebook用于测试新模型,Black和/或Flake8用于保持代码风格,GitHub用于版本管理。
  • 保持条理:从一个库跳到另一个库,复制代码到当前你编写的代码测试虽然很容易实现,但是不好。我建议采取你采取合适的更慎重的方法,因为你不想在匆忙中错过一个好的解决方案。
  • 预处理:垃圾进,垃圾出。实现一个强大的预处理管道来清理输入非常重要。目视检查处理后的文本,以确保所有内容都按预期工作。
  • 展示结果:选择如何展示你的结果会有很大的不同。如果输出的文本看起来有点粗糙,可以考虑显示聚合统计信息或数值结果。

(编辑:甘孜站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读