首页 > 其他分享 >subword-nmt 在分子smiles分词的实践

subword-nmt 在分子smiles分词的实践

时间:2024-10-29 20:11:38浏览次数:1  
标签:smiles nmt bpe vocabulary -- subword

注意!这个只是在分子smiles(简化分子线性规范输入)上的实践。

环境:Python3.7

分两种方法:

一.直接从github拉取subword-nmt,本地运行。(这个方法查到实验后发现不好用!)

二.安装subword-nmt包(这个包已经被集成到Python的安装包里)

1命令:

pip install subword-nmt

 

2使用 subword-nmt 工具训练一个子词模型,并将结果保存到 bpe-smiles.codes 文件中。以上命令将学习子词单元,并设置子词单元的最小频率为1000。< >符号内的文件名换成自己的文件名 

 subword-nmt learn-bpe -s 1000 <smiles.txt> bpe-smiles.codes

 3使用训练好的模型对SMILES字符串进行分割,并将结果保存到 smiles.bpe 文件中。

这里可以自己创建bpe-smiles.vocab空文件,不然无法继续,可以自己搜一个有效的文件复制内容,也可以不要--vocabulary bpe-smiles.vocab --vocabulary-threshold 50 这两个参数

这里,--vocabulary 参数用于指定词汇表文件,--vocabulary-threshold 参数用于设置词汇表的最小频率。如果不想限制词汇表大小,可以省略这两个参数。

subword-nmt apply-bpe -c bpe-smiles.codes --vocabulary bpe-smiles.vocab --vocabulary-threshold 50 < smiles.txt > smiles.bpe

成果:

原始smiles文件内容:

 

分词后结果内容:

这里分词后,分词的标识符应该是"@@ ",两个@@加一个空格。因项目需要,自己改成了"|"

 

这里没有使用--vocabulary bpe-smiles.vocab ,如果有对应的文件,可以添加上,结果可以更精确。

简单学习总结,勿喷!

 

标签:smiles,nmt,bpe,vocabulary,--,subword
From: https://www.cnblogs.com/django-start/p/18514326

相关文章

  • CANopen学习笔记(三)NMT
    NMTNMT主要用来管理和控制各个节点的状态,具体协议可以分为以下四类:NMTprotocolNodeguardprotocolHeartbeatprotocolBootupprotocolNMTprotocol该协议是CANopen中网络管理的协议,控制和管理节点的状态,通过发送相关报文,可以让目标节点进入特定的工作状态。工作状态有......
  • LNMT动态⽹站
    LNMT动态⽹站Nginx+TomcatTomcat默认监听在8080端⼝Tomcat依赖于java0.环境准备系统服务地址CentOS7.9NginxProxy192.168.1.170CentOS7.9Tomcat动态服务器192.168.1.1521.安装jdk链接:https://pan.baidu.com/s/1rBd5lAIn0Cn-JrgJDy00IQ?pwd=9......
  • 大白话讲【1.1】redhat 9采用nmtui快速配置Ipv4(网卡已有配置文件前提下)
    0.环境查看:[root@lili~]#uname-aLinuxlili5.14.0-70.13.1.el9_0.x86_64#1SMPPREEMPTThuApr1412:42:38EDT2022x86_64x86_64x86_64GNU/Linux[root@lili~]#ifconfig|head-2ens160:flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu1500     ......
  • 如何捕获来自 Chem.MolFromSmiles('Formula') 的错误消息
    我是这个rdkit的新手,下面是我用来从公式获取化学图像的代码,fromrdkitimportChemm=Chem.MolFromSmiles('OCC1OC(C(C(C1O)O)O)[C]1(C)(CO)CC(=O)C=C(C1CCC(=O)C)C')m如果代码正确,它会显示结构。上面的代码显示错误说"[15:23:55]Explicitvalenceforatom#11C......
  • SentencePiece: A simple and language independent subword tokenizer and detokeniz
    郑重声明:原文参见标题,如有侵权,请联系作者,将会撤销发布! Abstract 1Introduction 2SystemOverview  3LibraryDesign 3.1LosslessTokenization  3.2Efficientsubwordtrainingandsegmentation 3.3Vocabularyidmanagement 3.4Customi......
  • Neural machine translation of rare words with subword units
    郑重声明:原文参见标题,如有侵权,请联系作者,将会撤销发布! Abstract 1Introduction  2NeuralMachineTranslation 3SubwordTranslation 3.1RelatedWork 3.2BytePairEncoding(BPE) 4Evaluation 4.1Subwordstatistics 4.2Translation......
  • linux进阶之nmtui和nmcli配置网络
    CentOS7配置网络推荐使用NetworkManager服务(不推荐network服务)。图形化方式:nmtui或Applications->SystemTools->Settings->Network命令方式:->IPv4寻址方式 [X]Automaticallyconnect->默认->自动连接->ONBOOT=yes [X]Availabletoallusers->默认->所有用户均可使用......
  • 本地内存跟踪NMT详解
    \本地内存跟踪NMT详解​1.Overview为什么java程序消耗的内存,远超-Xms、-Xmx的限制?因为各种原因,或是为了进行某些优化,JVM会额外分配内存。这些额外的分配,会导致java程序占用的内存,超出-Xmx的限制。本文档列举了通常情况下,JVM会分配哪几部分内存,以及各部分调整大小的方法。......
  • Subword
    目录TokenizerByte-Pair-Encoding(BPE)UnigramSentencePiece使用[1]Unigram[2]SentencePieceTokenizer语言模型的第一步,实际上是将句子token化,然后向量化,然后才有后面的一步步处理.之前看论文的时候,单纯的以为就是把每个单词作为一个token就好了.比如"M......
  • nmtui 配置网卡双链路
    nmtui 配置网卡双链路 首先要找到要配置双链路的网卡的名称,记录下来。使用ethtool网卡名可以查看网卡是否接线ethtoolens16f0 nmtui命令打开图形配置界面nmtui Editaconnection Add 选Bond 按图添加bond网络配置,保存退出  重启Network......