最新公告
  • 欢迎您光临【搜客网】,本站秉承服务宗旨:销售只是起点,服务永无止境!立即加入我们
  • GitHub资源获取捷径:探索和获取代码、文档和示例 (github中文官网入口)

    概述

    GitHub 是一个流行的代码托管平台,拥有大量的开源项目、文档和示例。它为开发者提供了探索、获取和使用代码资源的便利方式。本文将提供有关如何有效利用 GitHub 资源的指南,帮助您提升开发效率和创造力。

    方法

    1. GitHub 搜索

    GitHub 的搜索功能是一个强大的工具,可用于查找代码片段、文档或项目。您可以使用关键字、语言、文件类型和过滤器来缩小搜索范围。

    例如,要查找使用 Python 编写的机器学习项目,您可以输入以下搜索查询:


    language:python topic:machine-learning

    2. 主题

    主题是 GitHub 用来对代码库和项目进行分类的标签。它们允许您发现特定技术领域或主题相关的资源。要浏览主题,请单击 GitHub 主页上的“探索”选项卡,然后选择“主题”。

    3. 精选

    GitHub 精选页面展示了高质量的代码库、项目和文档。这些资源是由 GitHub 团队或社区成员精选的。要访问精选内容,请单击 GitHub 主页上的“探索”选项卡,然后选择“精选”。

    4. GitHub Marketplace

    GitHub Marketplace 是一个允许开发者发现和安装第三方服务的平台。这些服务包括代码扫描仪、CI/CD 工具和文档生成器。要访问 GitHub Marketplace,请单击 GitHub 主页上的“市场”选项卡。

    最佳实践

    1. 仔细阅读文档

    在使用 GitHub 获取资源之前,请务必仔细阅读文档。这将帮助您了解资源的用途以及如何有效地使用它们。您可以在项目仓库的 README 文件或 GitHub 文档中找到文档。

    2.贡献项目

    贡献项目是回馈 GitHub 社区并提高您对特定技术领域理解的好方法。当您发现代码中存在错误或缺少功能时,请随时提出 Pull Request 来改进项目。

    3. 使用 GitHub Actions

    GitHub Actions 是一个自动化平台,允许您在 GitHub 上创建和运行工作流程。您可以使用此功能来测试代码、部署项目或执行其他任务。有关详细信息,请参阅 GitHub Actions 文档。

    4. 使用 GitHub API

    GitHub API 允许您以编程方式与 GitHub 平台交互。您可以使用 API 获取数据、创建问题或与项目进行交互。有关详细信息,请参阅 GitHub API 文档。

    结论

    GitHub 是一个丰富的资源库,为开发者提供了探索、获取和使用代码、文档和示例的便利方式。通过利用本文中概述的方法和最佳实践,您可以有效地利用这些资源来增强您的开发流程,并构建出色的软件应用程序。祝您探索和获取 GitHub 资源之旅愉快!


    什么是vue框架?

    什么是vue是一套构建用户界面的渐进式(用到哪一块就用哪一块,不需要全部用上)前端框架,Vue 的核心库只关注视图层vue的兼容性 不支持 IE8 及其以下版本,因为 使用了 IE8 不能模拟的 ECMAScript 5 特性。

    支持所有兼容 ECMAScript 5 的浏览器。

    vue学习资源中文官网:源码:官方工具:官方论坛对比其他框架-ReactReact 和 Vue 有许多相似之处,它们都有使用 Virtual DOM;提供了响应式(Reactive)和组件化(Composable)的视图组件。

    将注意力集中保持在核心库,而将其他功能如路由和全局状态管理交给相关的库。

    React 比 Vue 有更丰富的生态系统都有支持native的方案,React的RN,vue的Wee下都支持SSR服务端渲染都支持props进行父子组件间的通信性能方面:React 和 Vue 在大部分常见场景下都能提供近似的性能。

    通常 Vue 会有少量优势,因为 Vue 的 Virtual DOM 实现相对更为轻量一些。

    不同之处就是:数据绑定方面,vue实现了数据的双向数据绑定,react数据流动是单向的virtual DOM不一样,vue会跟踪每一个组件的依赖关系,不需要重新渲染整个组件树.而对于React而言,每当应用的状态被改变时,全部组件都会重新渲染,所以react中会需要shouldComponentUpdate这个生命周期函数方法来进行控制state对象在react应用中不可变的,需要使用setState方法更新状态;在vue中,state对象不是必须的,数据由data属性在vue对象中管理(如果要操作直接)组件写法不一样, React推荐的做法是 JSX , 也就是把HTML和CSS全都写进JavaScript了,即all in js; Vue推荐的做法是webpack+vue-loader的单文件组件格式,即html,css,js写在同一个文件对比其他框架-angular在性能方面,这两个框架都非常的快,我们也没有足够的实际应用数据来下一个结论。

    如果你一定想看些数据的话,你可以参考这个第三方跑分。

    单就这个跑分来看,Vue 似乎比 Angular 要更快一些。

    在大小方面,最近的 Angular 版本中在使用了 AOT 和 tree-shaking 技术后使得最终的代码体积减小了许多。

    但即使如此,一个包含了 vuex + vue-router 的 Vue 项目 (30kb gzipped) 相比使用了这些优化的 Angular CLI 生成的默认项目尺寸 (~130kb) 还是要小的多。

    灵活性:Vue 相比于 Angular 更加灵活,Vue 官方提供了构建工具来协助你构建项目,但它并不限制你去如何组织你的应用代码。

    有人可能喜欢有严格的代码组织规范,但也有开发者喜欢更灵活自由的方式。

    的核心特点—响应的数据绑定传统的js操作页面:在以前使用js操作页面的时候是这样的,需要操作某个html元素的数据,就的使用js代码获取元素然后在处理业务逻辑响应式数据绑定的方式操作页面,可以直接使用像下面代码那样的写法就可以将数据填充到页面中<template><div>{{ message }}</div></template> <script>export default {name: app,highlight=true>胡椒粉0121」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。

    Word文本中的文档部件里的域 打开之后不是一个方框,而是一个代码是怎么回事?

    编者按

    文本情感分析是对带有主观感情色彩的文本进行分析、处理、归纳和推理的过程。互联网上每时每刻都会产生大量文本,这其中也包含大量的用户直接参与的、对人、事、物的主观评价信息,比如微博、论坛、汽车、购物评论等,这些评论信息往往表达了人们的各种主观情绪,如喜、怒、哀、乐,以及情感倾向性,如褒义、贬义等。基于此,潜在的用户就可以通过浏览和分析这些主观色彩的评论来了解大众舆论对于某一事件或产品的看法。

    百分点认知智能实验室基于前沿的自然语言处理技术和实际的算法落地实践,真正实现了整体精度高、定制能力强的企业级情感分析架构。从单一模型到定制化模型演变、文本作用域优化、多模型(相关度)融合、灵活规则引擎、以及基于实体的情感倾向性判定,探索出了一套高精准、可定制、可干预的智能分析框架,为舆情客户提供了高效的预警研判服务。

    本文作 者: 常全有 刘政

    一、

    情感分析概述

    文本情感分析,即 Sentiment Analysis(SA),又称意见挖掘或情绪倾向性分析。 针对通用场景下带有主观描述的中文文本,自动判断该文本的情感极性类别并给出相应的置信度,情感极性分为积极、消极、中性等。

    在文本分析的基础上,也衍生出了一系列细粒度的情感分析任务,如:

      核心目标和价值

      舆情系统的最核心需求,是能够精准及时的为客户甄别和推送负面,负面识别的准确性直接影响信息推送和客户体验,其中基于文本的情感分析在舆情分析中的重要性不言而喻,下图简要展示了文本分析以及情感分析在舆情体系中的作用。

      舆情数据通过底层的大数据采集系统,流入中间层的 ETL 数据处理平台,经过初级的数据处理转化之后,向上进入数据挖掘核心处理环节;此阶段进行数据标准化、文本深度分析,如地域识别、智能分词、情感判定、废品过滤等,经过文本处理的结果,即脱离了原始数据的状态,具备了客户属性,基于客户定制的监测和预警规则,信息将在下一阶段实时的推送给终端客户,负面判定的准确度、召回率,直接影响客户的服务体验和服务认可度。

      难点与挑战

      舆情业务中的情感分析难点,主要体现在以下几个方面:

      1.舆情的客户群体是复杂多样的,涉及行业多达24个(如下图所示),不同行业数据特点或敏感判定方案不尽相同,靠一个模型难以解决所有问题;

      2.舆情监测的数据类型繁多, 既有常规的新闻、微信公众号等媒体文章数据,又有偏口语化的微博、贴吧、问答数据,情感模型往往需要针对不同渠道类型单独训练优化,而渠道粒度的模型在不同客户上效果表现也差别巨大;

      3.客户对情感的诉求是有差异的,有些客户会有自己专属的判定条件。通用的情感模型难以适应所有客户的情感需求。

      4.随着时间推移,客户积累和修正的情感数据难以发挥价值。无法实现模型增量训练和性能的迭代提高。

      5.对于关注品牌、主体监测客户,需要进行特定目标(实体)情感倾向性(ATSA)判定。那么信息抽取就是一个难题。

      6.对于新闻类数据,通常存在标题和正文两个文本域。如何提取有价值的文本信息作为模型输入也是面临的困难。

      二、

      情感分析在百分点舆情的发展历程

      从2015年开始,百分点舆情便开始将机器学习模型应用在早期的负面判定中;到2020年,我们已经将深度迁移学习场景化和规模化,也取得了不错的成果;

      2015年:抓取百万级别的口碑电商评论数据,使用逻辑回归进行建模,做为情感分析的BaseLine;

      2016年:主要侧重于技术上的递进,进入深度学习领域。引入word2vec在大规模语料集上进行训练,获得具有更好语义信息的词向量表示,替代基于Tfidf等传统的统计特征。随后在TextCnn、TextRnn等深度学习算法进行更新迭代,尽管得到数字指标的提高,但是对于实际业务的帮助还是不足。

      2017年:结合舆情全业务特点,需要能做到针对品牌、主体的情感监测。提出 Syntax and Ruler-based Doc sentiment analysis的方式,依据可扩充的句法规则以及敏感词库进行特定的分析。该方式在敏感精准度指标上是有提升的,但是却有较低的召回。同时在进行规则扩充时,也比较繁琐。

      2019年上半年:以Bert为代表的迁移学习诞生,并且可以在下游进行fine-tune,使用较小的训练数据集,便能取得不错的成绩。进行以舆情业务数据为基础,构建一个简易的文本平台标注平台,在其上进行训练数据的标注,构建了一个通用的情感模型分类器。评测指标 F1值为 0.87,后续对 ERNIE1.0 进行尝试,有两个百分点的提升。

      2019年下半年:主要从舆情的业务问题入手,通过优化提取更加精准、贴近业务的情感摘要作为模型输入,使用定制化模型以及多模型融合方案,联合对数据进行情感打标。并提出基于情感实体(主体)的负面信息监测,下述统称ATSA(aspect-term sentiment analysis),使用 Bert-Sentence Pair 的训练方式, 将 摘要文本、实体联合输入,进行实体的情感倾向性判定。在定点客户上取得不错的成绩,最后的F1值能达到 0.95。

      2020年:将细化领域做到客户级别,定制私有化情感模型。同时将加大对特定实体的细粒度情感分析(ATSA)的优化;同时,通过内部 AI训练平台的规模化应用,做到模型的全生命周期管理,简化操作流程,加强对底层算力平台的资源管控。

      三、

      预训练语言模型与技术解析

      下图大致概括了语言模型的发展状况(未完全统计):

      在2019年度情感分析实践中,率先使用预训练语言模型 Bert,提高了情感分析的准确率。后来具有更小参数量的ALBERT的提出,使生产环境定制化情感模型成为可能。这里就主要介绍BERT以及ALBERT。

      BERT(Bidirectional Encoder Representations from Transformerss)的全称是基于 Transformer 的双向编码器表征,其中「双向」表示模型在处理某一个词时,它能同时利用前面的词和后面的词两部分信息(如下图所示)。

      在BERT中, 主要是以两种预训练的方式来建立语言模型。

      (Masked LM)

      MLM可以理解为完形填空,作者会随机mask每一个句子中15%的词,用其上下文来做预测,例如:my dog is hairy → my dog is [MASK]。此处将hairy进行了mask处理,然后采用非监督学习的方法预测mask位置的词是什么,具体处理如下:

      之后让模型预测和还原被遮盖掉或替换掉的部分。

      (Next Sentence Prediction)

      首先我们拿到属于上下文的一对句子,也就是两个句子,之后我们要在这两段连续的句子里面加一些特殊 token: [cls] 上一句话,[sep] 下一句话. [sep]

      也就是在句子开头加一个 [cls],在两句话之中和句末加 [sep],具体地就像下图一样:

      BERT在文本摘要、信息检索、数据增强、阅读理解等任务中,也有实际的应用和发展。更多关于Bert相关介绍,请参照百分点认知智能实验室往期文章。

      ALBERT的全称是A Lite BERT for Self-supervised Learning of Language Representations(用于语言表征自监督学习的轻量级BERT),相对于Bert而言,在保证参数量小的情况下,也能保持较高的性能。当然同样的模型还有 DistilBERT、TinyBERT。

      和BERT的比较

      下图是BERT和ALBERT在训练速度和性能上的整体比较:

      的目标

      在基于预训练语言模型表征时,增加模型大小一般可以提升模型在下游任务中的性能。但是通过增加模型大小会带来以下问题:

      在将Bert-large的隐层单元数增加一倍, Bert-xlarge在基准测试上准确率显著降低。

      ALBERT核心目标就是解决上述问题, 下面就来介绍ALBERT在精简参上的优化。

      模型优化

      明确参数的分布,对于有效可靠的减少模型参数十分有帮助。ALBERT同样也只使用到Transformer的Encoder阶段,如下图所示:

      图中标明的蓝色方框和红色方框为主要的参数分布区域:

      >E,所以ALBERT的词向量的维度是小于encoder输出值维度的。在NLP任务中,通常词典都会很大,embedding matrix的大小是E×V。\n ALBERT采用了一种因式分解(Factorized embedding parameterization)的方法来降低参数量。首先把one-hot向量映射到一个低维度的空间,大小为E,然后再映射到一个高维度的空间,当E<

      具体参数优化如下:

      Factorized embedding parameterization(对Embedding因式分解)

      ALBERT认为,token embedding是没有上下文依赖的表述,而隐藏层的输出值不仅包括了词本身的意思还包括一些上下文信息,因此应该让H>>E,所以ALBERT的词向量的维度是小于encoder输出值维度的。在NLP任务中,通常词典都会很大,embedding matrix的大小是E×V。

      ALBERT采用了一种因式分解(Factorized embedding parameterization)的方法来降低参数量。首先把one-hot向量映射到一个低维度的空间,大小为E,然后再映射到一个高维度的空间,当E<

      可以看到,经过因式分解。参数量从O(V * H) 变为O(V*E + E*H),参数量将极大减小。如下图所示:在H=768条件下,对比E=128和E=768,参数量减少17%,而整体性能下降0.6%。

      在后续的实验环境(所有的优化汇总后),对 embedding size 的大小进行评估,得出在 E=128时,性能达到最佳。

      Cross-layer parameter sharing(跨层参数共享)

      下图是对BERT-Base Attention分布的可视化。对于一个随机选择的句子,我们可视化来自不同Layer的Head的Attention分布。可以看到,底层的Attention分布类似于顶层的Attention分布。这一事实表明在某种程度上,它们的功能是相似的。

      Transformer中共享参数有多种方案,只共享feed-forward层,只共享attention层,ALBERT结合了上述两种方案,feed-forward层与attention层都实现参数共享,也就是说共享encoder内的所有参数。但是需要主要的是,这只是减少了参数量,推理时间并没有减少。如下图所示:在采用 all-shared模式下,参数量减少70%,性能下降小于3%。

      在经过上述的参数优化后,整体参数量有了极大的缩减,训练速度也极大加快。后续作者又在模型变宽和模型变深上做了几组实验。如下:

      模型变宽

      当我们增加 H 大小时,性能会逐渐提高。在H=6144时,性能明显下降。如下图所示:

      模型变深

      在以ALBERT-large为基础参数,设置不同的layer大小,发现layer=48的性能要差于layer=24的性能,如下图所示:

      一些实验表示NSP(BERT-style)非但没有作用,反而会对模型带来一些损害。作者接着提出SOP(ALBERT-style)的优化模式。具体如下:

      Inter-sentence coherence loss(句子连贯性)

      在ALBERT中,为了去除主题识别的影响,提出了一个新的任务 sentence-order prediction(SOP),SOP的正样本和NSP的获取方式是一样的,负样本把正样本的顺序反转即可。SOP因为是在同一个文档中选的,只关注句子的顺序并没有主题方面的影响。并且SOP能解决NSP的任务,但是NSP并不能解决SOP的任务,该任务的添加给最终的结果提升了一个点。

      在后续的实验中, ALBERT在训练了100w步之后,模型依旧没有过拟合,于是乎作者果断移除了dropout,没想到对下游任务的效果竟然有一定的提升。

      当然作者对于增加训练数据和训练时长也做了详尽的对比和测试,这里不再进行描述。

      在最初的 ALBERT发布时,是只有中文的。感谢数据工程师徐亮以及所在的团队,于 2019 年 10 月,开源了首个中文预训练的中文版 ALBERT 模型。

      项目地址:

      四、

      情感分析在舆情的应用实践

      业务调研

      2019上半年,舆情服务的整体情感判定框架已经迁移到以Bert训练为基础的情感模型上,得出的测试指标 F1 值为 0.86,相较于旧版模型提升显著; 但是虽然数据指标提升明显,业务端实际感受却并不明显。因此我们对代表性客户进行采样调查,辅助我们找出生产指标和实验室指标差异所在。同时针对上文提到的关于舆情业务中情感分析的痛点和难点,进行一次深度业务调研:

      1.客户情感满意度调查

      2.文本作用域(模型输入文本选择)调研

      这里将文本作用域分为以下几个层次,分布情况如下图所示:

      3.情感判定因素

      这里对判定因素做以下介绍:

      我们针对上述调研结果进行详尽分析,最终确定走情感细粒度模型的道路。

      情感分析的落地实践

      精简版本的情感架构概览如下:

      接下来会基于此进行讲述,大致分为如下几个层次:

      1.输入层

      这里主要是获取相应文本输入,以及客户的文本作用域规则和检索词、主体词,供下游的文本作用域生成提供对应的条件。

      2.文本作用域

      依据文本作用域规则,生成对应的模型输入,请参照上文对文本作用域的阐述。这里实验内容针对的是情感摘要。首先将文本进行分句,然后依据对每一个句子和检索词进行匹配,通过BM25计算相关性。这里限制的文本长度在256内。在文本域优化后, 对线上的10家客户进行对比分析,实验条件如下:

      进行对比分析(客户名称已脱敏),每个客户的情感摘要和文本标题效果依次展示。如下图所示:

      可以发现整体效果是有极大提升的。但是也可以看到部分客户的敏感精准率是偏低的,这个和客户的敏感分布有关,大部分的敏感占比只有总数据量的 10% ~20%,有些甚至更加低。所以面临一个新的问题,如何提升非均匀分布的敏感精准度。这个会在下文进行陈述。

      3.情感判定因素

      由上文的情感因素分布得知, 情感对象(实体)的因素占54%,基于实体的情感倾向性判定(ATSA)是一个普适需求。如果这里直接使用通用情感分析判定(SA),在舆情的使用场景中会存在高召回,低精准的的情况。接下来会对此进行相关解决方案的的论述。

      4.模型层

      在19年初, 使用Bert-Base(12L,768H)进行fine-tune,得到如下指标:情感准确性:0.866, 敏感精准率: 0.88,敏感召回:0.84,F1: 0.867;后来在ERNIE1.0上进行尝试,情感准确性能提升2个百分点。不过因为PaddlePaddle的生态问题,没有选择ERNIE。这是一个符合自然语义的情感模型, 但是对于舆情客户来说,这还远远不够。

      对生产环境的埋点日志分析,发现客户存在大量的屏蔽操作。选取近一个月屏蔽最多的10个话题进行分析,如下图所示:

      通过调研和分析发现,这些数据虽然命中关键词,但是数据相关度比较低。在情感判定之前引入相关度判定, 对于非相关的数据,一律判定为非敏感。对于精准数据再次进行情感分析判定,大大提升敏感精准率。在工程上选取ALBERT进行模型训练可以达到部署多个模型的目的。观测到,单个模型在推理阶段,在Gpu(RTX 2080)上占用的显存大约在600MiB,极大节省资源。

      部分客户相关度模型效果如下:

      客户名称

      准确率

      正样本数量

      负样本数量

      收藏、屏蔽数据

      收藏、屏蔽数据

      收藏、屏蔽数据

      收藏、屏蔽数据

      部分客户实施相关度判定,由于数据特征比较明显,可以很容易达到比较精准的数据效果,但是并不适用于所有客户。相关度模型的引入,即达到筛选相关数据的目的,也能减少情感判定噪音数据的干扰,提升敏感精准度。

      -面向情感实体的情感倾向性分析

      ATSA(aspect-term sentiment analysis) 要解决就是在特定情感实体下的情感倾向性判定问题。这里主要借鉴《Utilizing BERT for Aspect-Based Sentiment Analysis via Constructing Auxiliary Sentence》文中的思想。这个工作做得非常聪明,它把本来情感计算的常规的单句分类问题,通过加入辅助句子,改造成了句子对匹配任务。很多实验证明了:BERT是特别适合做句子对匹配类的工作的,所以这种转换无疑能更充分地发挥BERT的应用优势。

      舆情中要解决的问题如下:

      A公司和B公司的情感倾向性是非敏感的, 而C公司却是敏感的。要解决这个问题,要面临两个问题:

      在舆情的业务场景中,可以简化问题,由于情感实体是提前给定的, 所以不需要做实体识别和信息抽取, 只需要对特定实体的情感倾向性进行判定。整体流程如下:

      主要是利用 Bert Sentence-Pair,文本与实体联合训练,得到输出标签。目前实验证明,经过这种问题转换,在保证召回率提升的情况下,准确率和精准率都得到了提高。选取一个客户进行对比测试,如下所示:

      实验条件

      实验方式

      准确率

      精准率

      召回率

      按照自然日采样,测试样本为912条,其中敏感数据108条

      情感摘要

      上述是一个正负样本及其不均匀的情况,增加敏感精准率将提高客户的满意度。目前的实现的机制还略显简单,未来还将持续投入。

      6.情感规则引擎

      在部分客户场景中, 他们的业务规则是明确的或者是可穷举的。这里会做一些长尾词挖掘、情感新词发现等工作来进行辅助, 同时要支持实时的干预机制,快速响应。比如某些客户的官方微博经常会发很多微博,他们会要求都判定成非敏感。这里不再做过多介绍。

      五、

      长期规划

      AI 训练平台的构建

      软件开发领域和模型开发领域的流程是不同的,如下所示:

      可以看到,构建模型是困难的。在舆情架构发展中,线上多模型是必然的趋势,也就意味着需要一个平台能够快速支持和构建一个定制化模型,来满足真实的应用场景。这就需要从底层的算力资源进行管控、舆情数据的标准化制定和积累、模型的生命周期管理等多方面进行衡量。关于 AI 训练平台的构建以及在舆情领域的应用实践,我们将在后续文章做进一步阐述。

      探索和获取代码

      持续学习,增量迭代

      随着舆情客户对系统的深度使用,一般会有情感标签的人工纠正。所以需要保证模型可以进行增量迭代,减少客户的负反馈。

      多实体的情感倾向分析

      对包含有多个实体信息的文本,针对每一个系统识别到的实体,做自动情感倾向性判断(敏感、非敏感),并给出相应的置信度,包括实体库的构建。

      提升垂直类情感情感分析效果

      在垂类上(App、餐饮、酒店等)情感倾向性分析准确率上加大优化力度。

      随着舆情业务的发展,各领域客户都沉淀了大量与业务贴近的优质数据,如何有效使用这些数据,形成情感效果联动反馈机制,为业务赋能,是情感分析领域面临的新的挑战。在2019年的实践中,通过场景化的情感分析框架落地应用,对情感效果做到了模型定制化干预,真正提高了客户满意度。这种机制具有整体精度高、定制能力强、业务感知明显的特点。在后续工作中,将以 模型训练自动化与人工反馈相结合的方式,将模型定制能力规模化、平台化,实现情感分析在舆情场景下千人千面的效果。

      百分点舆情洞察系统

      百分点舆情洞察系统(MediaForce)是一款沉淀多年的互联网公开舆情 SAAS 分析系统,覆盖全网主流资讯站点及社交媒体的公开数据,帮助企业迅速发现舆情热点,掌握负面和舆论动向,为上万客户提供精准的舆情分析服务。

    • VaspCZ软件详细介绍

      一、VaspCZ软件简介VaspCZ(VaspCheckbyZzd)是中科院上海应物所的张正德博士在读博期间为提高科研效率而开发的Vasp辅助程序。

      该程序包含软件部分和API部分。

      软件部分提供了Linux字符串用户界面,用于在超算平台中快捷提交任务和检查结果。

      包含三个模块:结构优化和静态计算(OS)模块、过渡态计算(NEB)模块和测试(Test)模块。

      API部分为软件部分的底层,是自己写的一个python库。

      为有python基础的研究者提供了调用相关功能的接口,可以实现自定义计算和编写上层应用。

      库,包含三个模块:shell模块、File模块和Vasp模块。

      API说明文档。

      说明文档)求githubstar中,如果你觉得本项目不错,烦请点击项目右上角Star,感谢!~反馈调试中,如使用中遇到问题,敬请上报到,再次感谢!~二、VaspCZ软件安装1.安装和卸载代码下载:gitclone或者访问githubVaspCZ网址下载,下载后解压进入安装程序目录:cdVaspCZ默认VaspCZ安装配置为:程序安装路径说明VaspCZ软件用户根目录/binlinux主程序vtst用户根目录/binVTST过渡态工具相应python3的site-packages目录pythonAPI接口用户根目录超算平台PBS系统提交任务的脚本,需要自行准备拷贝到该路径下并命名为用户根目录生成POTCAR所需的赝势文件的文件夹,需要自行准备并拷贝到该路径下,命名方式为~/PseudoPotential/[赝势名]vcz用户根目录/bin/VaspCZVaspCZ主程序快捷键如需修改安装配置,请修改第6-10行对应设置再进行安装。

      安装输入快捷键运行程序:vcz程序界面如图:出现程序界面,说明安装成功。

      如更新版本,安装前请先卸载2.错误提示(1)权限不足如果安装时提示:PermissionError:[Errno13]Permissiondenied:VaspCZ请使用管理员账号用以下命令安装。

      如无管理员账号,请给当前用户安装独立的python后再安装VaspCZ源码安装用户独立python3教程(2)缺少python库VaspCZ运行需要的库有:numpy如果提示:ModuleNotFoundError:Nomodulenamednumpy使用pip3安装相应库即可:pip3installnumpy三、VaspCZ软件使用和示例本章主要描述软件部分的使用方法和示例,PythonAPI接口部分仅描述功能,接口详细信息参见API说明文档。

      软件部分(主程序)软件部分提供了Linux字符串用户界面,用于在超算平台中快捷提交任务和检查结果。

      包含三个模块:结构优化和静态计算(OS)模块、过渡态计算(NEB)模块和截断能K点测试(Test)模块。

      成功安装后输入快捷键即可进入用户界面:vcz输入模块对应的选项即可进入相应模块。

      (1)OptandSta模块该模块提供了用于快捷进行结构优化(Optimization)计算和静态(Static)计算的功能。

      用户界面:包含功能:功能标签功能名称1.1产生Vasp输入文件(示例)1.2修改INCAR为静态计算INCAR1.3产生赝势文件POTCAR1.4产生网格文件KPOINTS1.5产生提交任务脚本1.6仅保留Vasp输入文件1.7前检查并提交任务1.8后检查并打印计算结果OS模块功能示例:进入到项目自带的examples:(请将/home/zhangzd/bin替换你的VaspCZ安装路径)cd/home/zhangzd/bin/VaspCZ/examples/OS模块下1.1-1.7功能示例:进入1.1-1.7cd1.1-1.7该文件夹为空文件夹。

      输入:vcz1而后输入1-7数字可以执行相应功能1.1产生Vasp输入文件(示例)会在该目录下产生Vasp的5个输入文件的示例:INCAR、POSCAR、POTCAR、KPOINTS和注意:生成文件需要配置为PBS系统提交任务的脚本,因不同平台的脚本内容会有所不同,请将适合该平台的脚本正确拷贝到安装目录下,默认为:用户根目录,目录结构如下所示:用户根目录(或配置的路径)|||…(files)1.2修改INCAR为静态计算的INCAR在当前路径的结构优化INCAR上修改为静态计算的INCAR。

      修改项目:SYSTEM=StaticIBRION=-1NSW=1#EDIFFG=-0.011.3产生POTCAR输入元素列表和赝势类型产生POTCAR。

      默认产生适配当前目录下的POSCAR内的元素的POTCAR,默认赝势类型为PBE。

      注意:将从安装VaspCZ时配置的赝势路径下读取数据,默认为用户根目录。

      使用该功能请将赝势文件夹命名为PseudoPotential并按如下目录安装。

      用户根目录(或配置赝势安装路径)|—PseudoPotential|—PBE|||—H|—He|—…(dirs)|—PW91—LDA—US_LDA_GGA—…(dirs)1.4产生KPOINTS输入网格和方法产生KPOINTS文件。

      默认网格为:555。

      默认方法为:Monkhorst。

      与Vasp官网一致,方法可只输入开头的字母如:M,可选方法有:M(Monkhorst),A(Auto)1.5产生输入任务所需节点数、核数和任务名产生提交任务脚本。

      默认:节点数:1核数:12任务名:jobname注意:将从VaspCZ安装时候配置的路径下读取数据,默认为用户根目录。

      使用该功能前请正确安装。

      1.6保留Vasp输入文件删除其他所有文件和文件夹,仅保留Vasp的5个输入文件(INCAR、POSCAR、POTCAR、KPOINTS和),用于计算出现问题,重新算。

      选择该功能后可输入文件名添加需要额外保留的文件。

      1.7前检查并提交任务准备好输入文件后,进行前检查,检查INCAR、POSCAR和POTCAR是否匹配,检查通过后将打印检查信息,并提示是否提交任务。

      OS模块下1.8功能示例:退出1.1-1.7并进入1.8该文件夹为计算好的Fe-Te体系不同情形下的结构优化结果。

      输入运行1.8功能:vcz181.8检查结果检查当前目录及所有子目录下的结构优化和静态计算的结果,如OUTCAR或者log中有错误(ERROR)或警告(WARNING)或提示所在位置。

      输出如图所示:检查所有路径计算是否完成,输出当前路径、完成状态、离子步数和电子步数。

      检查完后,输出当前路径、能量、离子步数、磁矩、POSCAR和CONTCAR原子之间的距离、原子最大受力。

      (2)NEB模块该模块提供了便捷的NEB方法计算过渡态的功能。

      用户界面:包含功能:功能标签功能名称2.1一键结构优化到静态计算2.2一键静态计算到过渡态计算2.3过渡态振动分析2.4仅保留结构优化输入文件2.5仅保留过渡态输入数据2.6检查过渡态受力情况2.7检查过渡态各态原子距离2.8检查过渡态计算结果2.9检查过渡态振动分析结果过渡态计算的一般过程:先做结构优化,而后静态计算,最后过渡态计算,如需再振动分析。

      目录结果如下:NEB计算目录|…(files)—ini||…(files)|—Opt||…(files)—fin|…(files)—Opt|…(files)在准备进行过渡态计算的目录下,创建文件夹ini和fin分别代表初态和末态,在它们之下再分别创建Opt文件夹。

      计算步骤如下:1、ini/Opt/下进行初态的结构优化。

      2、fin/Opt/下进行末态的结构优化。

      3、ini/下在结构优化完成后进行静态计算以获得更准确的能量。

      4、fin/下在结构优化完成后末态静态计算。

      5、当前路径下在两个静态计算完成后进行过渡态计算。

      6、如需,过渡态完成后当前路径下进行振动分析。

      NEB模块功能示例:进入到VaspCZ安装目录examples文件夹下:cd/home/zhangzd/bin/VaspCZ/examples2.1一键结构优化到静态计算如前过渡态的一般过程所示,结构优化完成后,自动进行初末态的静态计算。

      进入2.1:cd2.1该文件夹下包含一般性的过渡态计算结构,且ini/Opt和fin/Opt下计算已完成。

      (可用OS模块的1.8功能检查结果)调用vcz,选择功能2.1:vcz21此时:选择1为当前文件夹下的静态计算到结构优化,选择2为一键提交ini/和fin/文件下下的静态计算。

      输入节点数、核数和文件名提交任务。

      默认为:参数默认值节点数ini/Opt/中读取核数ini/Opt/中读取任务名ini/Opt/中的最后一位改为S2.2一键静态计算到过渡态计算如前过渡态的一般过程所示,静态计算完成后,自动进行过渡态计算。

      进入2.2文件夹:cd2.2该文件夹下包含一般性的过渡态计算结构,且ini/Opt、fin/Opt、ini/和fin/下计算已完成。

      (可用OS模块的1.8功能检查结果)输入vcz调用程序选择功能2.2即可实现自动提交过渡态计算任务。

      输入节点数、核数和文件名提交任务。

      默认参数为:参数默认值节点数~初末态结构原子距离和/0.8,取奇数核数ini/Opt/中读取任务名ini/Opt/中的最后一位改为N2.3过渡态振动分析过渡态完成后,计算迁移原子在初态、过渡态和末态中三个自由度上的尝试频率。

      使用初态和过渡态的尝试频率可以计算该迁移过程的有效率。

      计算方法为:该原子在初态时三个自由度上的尝试频率之积比该原子过渡态时的两个自由度上(共三个自由度,其中一个是虚频)的频率之积。

      进入2.3文件夹:cd2.3该文件夹下包含已经计算好的过渡态文件。

      (可用NEB模块的2.8功能检查结果)调用vcz,并选择功能2.3输入任务节点数、核数和是否包含末态振动提交任务。

      默认参数为:参数默认值节点数1核数8是否包含末态False提交任务后会创建vibysis文件夹,内再创建inistate,sadstate和finstate,计算不同结构中迁移原子的振动频率(尝试频率)。

      2.4仅保留结构优化输入文件删除当前目录下的所有文件和文件夹,仅保留ini/Opt/下和fin/Opt下的5个输入文件(INCAR,POSCAR,POTCAR,KPOINTS和)。

      该功能用于过渡态计算错误时回滚到结构优化重新计算。

      2.5仅保留过渡态输入数据删除当前目录下的文件和文件夹,仅保留ini/和fin/文件夹下所有内容。

      该功能英语过渡态计算错误时回滚到过渡态重新计算。

      删除后调用NEB模块的2.2功能即可重新提交NEB任务。

      2.6检查过渡态受力情况NEB计算完成或正在计算中,检查每一离子步,每个IMAGE下的受力状况。

      例如:进入examples/2.6-2.9文件夹,调用vcz2.6功能:cd2.6-2.9vcz26输出如图所示:第一列为离子步,第二到四列为插入态IMAGE01、IMAGE02和IMAGE03在对应离子步下该结构中原子所受的最大力,第五列为前面的二到四列之和。

      如数据所示,第8步时所有插入态原子最大受力小于0.01eV/?,达到INCAR中的收敛要求。

      该功能用于检查过渡态计算不收敛时较为合理的结构。

      例:假如INCAR中设置NSW=100,计算达100步未收敛,通常第100步并非合理的结构。

      借助此功能可找到最大受力和最小的步数,将该步的结构取出进行进一步分析和计算。

      2.7检查过渡态各态原子距离NEB计算完成或NEB计算生成插入态后,检查每个态之间原子的距离和。

      例如:进入examples/2.6-2.9文件夹,调用vcz2.7功能:cd2.6-2.9vcz27选择需要检查的结构,默认为POS,代表POSCAR,可选为CONT,代表CONTCAR。

      输出如图所示:第一列是POSCAR或CONTCAR,第二列是IMAGE,第三列是原子距离和。

      其值来自于vtst工具,如第一行的值为00/POSCAR01/POSCAR计算前检查POSCAR,用于确保插入过渡态准备,线性插入时各态距离和应相等。

      计算后检查CONTCAR,用于查看过渡态中是否有某个态弛豫到不可预测的结构导致过渡态不收敛。

      2.8检查过渡态计算结果NEB计算完成后或计算中,检查当前目录及所有子目录下的NEB计算结果(忽略静态计算和结构优化),如OUTCAR或者log中有错误(ERROR)或警告(WARNING)或提示所在位置,检查完成后输出结果。

      例如:进入examples/2.6-2.9文件夹,调用vcz2.8功能:cd2.6-2.9vcz28输出如图所示:每一个有NEB计算的路径都会输出计算结果。

      第一列为不同的IMAGE,第二列为原子最大受力,第三列为该IMAGE总能,第四列为以IMAGE00作为参考原点是的能量差,最大能量差即为势垒,对应的IMAGE为鞍点。

      如数据所示,该扩散过程(fccFe的自扩散)的扩散势垒为1.39eV.2.9检查过渡态振动分析结果NEB振动分析结束后,检查当前目录及所有子目录下的原子振动频率(尝试频率)结果并计算有效频率。

      例如:进入examples/2.6-2.9文件夹,调用vcz2.9功能:cd2.6-2.9vcz29输出如图所示:如数据所示,[True,True,False]说明该子目录下包含初态和鞍点态振动分析,不包含末态。

      第一个1f2f3f为迁移原子在初态结构中三个方向的振动,振动频率分别为6.59,6.17和4.99THz。

      第二个1f2f3f为迁移原子在鞍点态结构中三个方向的振动,振动频率分别为6.92,4.67和5.81THz,其中f/i表示第三个方向上为虚频。

      该扩散过程原子的有效频率为:初态三个振动之积比鞍点态两个振动之积(排除虚频),结果为:6.28THz。

      本例是fccFe的自扩散,扩散前后结构等价,初态和末态相同,因此无需算末态振动。

      通常体系中对称性不高,如有2个以上缺陷时,初态和末态是不等价的,此时反向方扩散的势垒就是以末态能量为原点时鞍点的能量,对应的有效频率为末态三个振动之积比鞍点态两个振动之积(排除虚频)。

      (在NEB模块2.3功能中输入参数包含末态时,2.9功能会自动计算反方向扩散的有效频率。

      )(3)Test模块通常,一个体系在大规模进行计算和分析之前,需要进行截断能测试和K点测试确定合适的ENCUT设置和KPOINS设置。

      该模块提供了快捷的Vasp截断能测试和K点测试功能。

      用户界面:包含功能:功能标签功能名称3.1截断能测试3.2K点测试Test模块功能示例:进入到VaspCZ安装目录examples文件夹下:cd/home/zhangzd/bin/VaspCZ/examples3.1截断能测试做截断能测试的目的是选取一个合适的截断能,截断能决定了Vasp计算过程中被作为赝势处理的电子波函数的范围。

      截断能太小,计算得到的体系总能不可信,截断能太大,计算中迭代需要花费大量资源。

      准备好输入文件(INCAR,POSCAR,POTCAR,KPOINTS和)后,输入参数即可快捷提交截断能测试任务。

      例如:进入examples/3.1文件夹,调用vcz3.1功能:cd3.1vcz31输入参数有:任务名前缀、节点数、核数和截断能列表。

      默认参数为:参数默认值任务名前缀ENCUT_节点数1核数8截断能列表200,250,300,350,400,450,500,550,600,650,700注意:截断能列表以英文逗号隔开。

      提交任务后会以截断能为名创建文件夹,在每个文件夹内修改INCAR文件中的ENCUT为对应值,而后提交结构优化任务,任务名为任务名前缀截断能。

      计算完成后,可以使用OS模块的1.8功能检查各截断能时体系的总能,体系总能之差小于0.001eV时,该截断能可选为合适的截断能。

      3.2K点测试做K点测试的目的是选取一个KPOINS设置,K点决定了Vasp计算过程中倒空间的网格分隔点数,体系越大,合适的K点网格一般越小。

      准备好输入文件(INCAR,POSCAR,POTCAR,KPOINTS和)后,输入参数即可快捷提交K点测试任务。

      例如:进入examples/3.2文件夹,调用vcz3.2功能:cd3.2vcz32输入参数有:任务名前缀、节点数、核数和K点列表。

      默认参数为:参数默认值任务名前缀ktest_节点数1核数8K点列表111,333,555,777,999注意:K点列表以英文逗号隔开。

      提交任务后会以K点为名创建文件夹,在每个文件夹内KPOINTS文件中的网格为K点,而后提交结构优化任务,任务名为任务名前缀K点。

      计算完成后,可以使用OS模块的1.8功能检查各K点时体系的总能。

      部分为有python基础的研究者提供了本项目同通用功能的接口。

      通过库便捷调用相关功能,以实现自定义高通量计算。

      库,包含:shell模块,File模块和Vasp模块安装和导入安装软件时自动安装库,安装说明见本说明第三章。

      导入:进入python3交互界面或在文件中导入库此处只列出各模块功能,详细接口说明见API文档(1)shell模块标签代码功能(code)返回shell命令控制台输出的结果,由每一行组成一个元素的列表。

      (2)File模块标签代码功能(path,[mode=r,data=None])读取文件或保存文件(data,keywords,newline,[mode=default])传入文件数据,给出关键词和新行,默认情形搜索出现第一次出现关键词的行并替换,mode不等于default是替换全部出现关键字的行,返回替换后的数据。

      (data,keywords)给出关键词,招傲有关键词的第一行并返回,返回为字符串和所在的行索引。

      该功能用于获取特定想信息或者用于判断。

      (data,keywords)给出关键词,返回所有带有关键词的所有行,返回为列表。

      该功能用于选择性获得文件特定行。

      (data)获取文件数据中是空位的索引。

      _path获取VaspCZ软件默认的PBS提交任务脚本所在的文件路径。

      (3)Vasp模块标签代码功能_POSCAR(POSCAR)解码POSCAR,返回一个基矢、原子种类、原子数目、每个原子的位置(取前4位)(oldele,new_ele)修改当前路径下POSCAR的原子种类,适合批量修改。

      _POTCAR([elements=None,pseudotype=PBE])在当前路径生成POTCAR文件,需要在安装中正确是指赝势文件目录,默认赝势文件目录为用户根目录。

      赝势目录名为:PseudoPotential。

      3.4modifyPOSCARSelective_Dynamics(data,indexes)根据输入的数据和索引修改POSCAR,添加SelectiveDynamics,索引所在的位置设置为TTT,其他位置设置为FFF3.5modifyINCARforvibrationysis修改当前目录的INCAR为振动分析的INCAR并保存前检查。

      提交计算任务前,检查当前目录Vasp的各项输入文件,将计算信息打印到控制台,包含:计算路径、SYSTEM、截断能、ISIF、离子更新方法、是否有磁性、电子收敛标准、离子收敛标准、原子种类个数、POTCAR原子类型、KPOINTS方法、网格大小、任务名、节点数与核数、是否加急。

      ([need_input=True])检查前检查并提交任务。

      内部集成了上一个检查输入文件函数,使用中推荐该函数。

      ([addfile=[],workdir=./])删除工作目录下的文件,仅保留输入文件。

      默认保留文件为:INCAR,POSCAR,POTCAR,KPOINTS和遍历当前路径下的所有文件夹,如果发现有neb计算,判断ini和fin分别的计算周期,并返回四、其它说明该项目已免费开源,开源许可。

      欢迎开发和补充,如用于商业用途请注明出处。

      如遇bug,敬请将说明、提示代码、截图等信息上报到。

      如对程序有疑问,请联系。

      作者水平有限,代码有诸多不足之处,还望斧正。

      当前版本:1.0.1

    【搜客网】_全网激活码总代_激活码商城【www.wxzygp.com】
    【搜客吧】_激活码商城_微商营销货源站 » GitHub资源获取捷径:探索和获取代码、文档和示例 (github中文官网入口)

    常见问题FAQ

    本站资源可以代理扶持吗?有没有售后和技术支持?
    具体请参照:https://www.wxzygp.com/345.html
    遇到问题无法解决怎么办?
    解决方案:https://www.wxzygp.com/343.html
    免费下载或者VIP会员资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    购买该资源后,可以退款吗?
    本站均属于虚拟商品,具有可复制性,可传播性。一旦授予,不接受任何形式的退款、换货要求。请您在购买获取之前确认好是您所需要的资源!

    发表评论

    售后服务:

    • 售后服务范围 1、保证软件可以正常安装
      2、本站所出卡密正常激活
      3、单价超过50元的软件送免费远程服务,之后远程50/次
      付费增值服务 1、有偿指导软件安装、调试、疑难问题解决。
      2、承接各种系统建站、仿站、开发、定制以及服务器环境配置相关问题。
      3、资源共享,货源对接、铺货、上架、售后、销售一条龙服务。
      4、有偿教学各平台营销技术,诸如:百度霸屏、公众号、百度SEO,SEM,贴吧引流等。
      售后服务时间 周一至周日(法定节假日除外) 9:00-22:00
      免责声明 本站内容均来源于互联网,仅供参考学习,如若本站信息有侵犯到您的知识产权或任何利益,请联系我们删除(Email: [email protected]),本平台不负任何相关责任

    Hi, 如果你对代理感兴趣,可以跟我联系哦!

    联系我们
    • 10407会员总数(位)
    • 32631资源总数(个)
    • 0本周发布(个)
    • 0 今日发布(个)
    • 1505稳定运行(天)

    【搜客网】_全网激活码总代_激活码商城

    立即查看 了解详情
    升级SVIP尊享更多特权立即升级