本文按照调用顺序抽丝剥茧地分析了CRF++的代码,详细注释了主要函数,并指出了代码与理论公式的对应关系。...正则化 为了防止过拟合,CRF++采用了L1或L2正则化: if (orthant){ // L1 for (size_t k = 0; k size(); ...是一个常数,在CRF++中其平方被称作cost-factor, ? 控制着惩罚因子的强度。可见要最小化目标函数,正则化项 ? 也必须尽量小才行。模型参数的平方和小,其复杂度就低,于是就不容易过拟合。...CRF++直接将这些参数送入一个LBFGS模块中: if (lbfgs.optimize(feature_index->size(), &alpha[0], thread[0].obj, &thread
官网地址:http://taku910.github.io/crfpp/ 安装 CRF++的安装可分为Windows环境和Linux环境下的安装。...关于Linux环境下的安装,可以参考文章:CRFPP/CRF++编译安装与部署 。...在Windows中CRF++不需要安装,下载解压CRF++0.58文件即可以使用 训练语料创建 在训练之前需要将标注数据转化为CRF++训练格式文件: 分两列,第一列是字符,第二例是对应的标签,中间用...比如标注方案采用BISO,效果如下: 模板 模板是使用CRF++的关键,它能帮助我们自动生成一系列的特征函数,而不用我们自己生成特征函数,而特征函数正是CRF算法的核心概念之一。...++安装与使用 https://www.biaodianfu.com/crf.html 使用CRF++实现命名实体识别(NER) https://www.cnblogs.com/jclian91/p
对于CRF,有很多开源的工具包可供选择,在此使用CRF++进行训练。CRF++官方主页为https://taku910.github.io/crfpp/,包括下载及使用等说明。...图6使用了unigram特征,并且仅以字符本身作为特征而不考虑其他特征。除当前字符外,还使用了其前后3个字,以及上下文的组合作为特征。CRF++会根据特征模版生成相关的特征函数。...图8:CRF++训练过程 ? 图9:CRF++训练结果 3.5 模型预测及使用 模型训练完毕后就可以进行预测。...CRF++提供crf_test命令进行测试,我们使用文本“北京市委组织部长姜志刚调任宁夏副书记“进行测试,测试文件中每字一行,每句话使用空行隔开。测试结果如图10所示。 ?...图10:CRF++测试结果 从图10的结果我们可以看到,CRF模型能够对输入文字序列输出相应的标签从而完成NER任务。在模型预测时,CRF++主要使用了维特比算法进行nbest输出。
segmenter.train("data/test/pku98/199801.txt", CWS_MODEL_PATH); 输出为HanLP私有的二进制模型,有兴趣的话还可以通过命令导出为兼容CRF...java -cp hanlp.jar com.hankcs.hanlp.model.crf.crfpp.crf_learn -T cws.bin cws.txt 与CRF++兼容 由于C++的运行效率和内存效率优于...Java,所以推荐直接利用CRF++执行大规模训练。...++的crf_learn执行训练: crf_learn cws-template.txt cws-corpus.tsv cws -t ·此处必须使用-t命令CRF++输出文本格式的模型cws.txt ·...HanLP只兼容CRF++的文本模型,不兼容二进制 将cws.txt格式的模型传入CRFSegmenter或CRFLexicalAnalyzer的构造函数即可创建分词器,同时HanLP会自动创建二进制缓存
10行数据 Linux文件系统结构 / : 根目录 /home: 主文件夹,登录用户的主文件夹 /etc :操作系统配置文件的保存位置 /usr : 用于添加的程序文件,用户的很多应用程序和文件都放在这个目录下...本地文件 :上传本地文件到远程服务器 ,只能是压缩文件,比如.tar.gz push abc.txt : 上传本地当前文件abc.txt到远程服务器 exit : 退出 windows 操作Linux...pyttty 开源软件 Linux打包命令 tar -czvf 包文件.tar.gz 文件夹1 文件夹2...System /正则 :向后查找 n 查找下一个 先使用?...vi编辑器修改 重启tomcat,我们使用zip安装方式安装的,因此需要在Tomcat的bin下执行: .
在生产中经常使用的训练工具是CRF++,关于CRF++的使用以及模型格式请参阅《CRF++模型格式说明》。
[gerative-discriminative.png] CRF训练 这类耗时的任务,还是交给了用C++实现的CRF++。关于CRF++输出的CRF模型,请参考《CRF++模型格式说明》。...该合并的合并,得到: [商品/null, 和/null, 服务/null] 然后将词语送到词典中查询一下,没查到的暂时当作nx,并记下位置(因为这是个新词,为了表示它的特殊性,最后词性设为null),再次使用维特比标注词性
本文(HanLP)使用纯Java实现CRF模型的读取与维特比后向解码,内部特征函数采用 双数组Trie树(DoubleArrayTrie)储存,得到了一个高性能的中文分词器。...图1.JPG CRF训练 这类耗时的任务,还是交给了用C++实现的CRF++。关于CRF++输出的CRF模型,请参考《CRF++模型格式说明》。 CRF解码 解码采用维特比算法实现。...4.JPG 最终处理 将BEMS该合并的合并,得到: 图5.JPG 然后将词语送到词典中查询一下,没查到的暂时当作nx,并记下位置(因为这是个新词,为了表示它的特殊性,最后词性设为null),再次使用维特比标注词性
如果使用了 –template 选项,而未使用 BSP, 您可以使用 petalinux-config 命令来选择与您的电路板设计接近 的默认电路板配置, 如下所示 petalinux-config...构建镜像位于 /images/linux 目录中。 生成uImage 如果想使用 uImage,请使用 petalinux-package –image。...使用以下方法之一来启动系统镜像: a. 利用 SD 卡在硬件上启动 PetaLinux 镜像,请参见 利用 SD 卡在硬件上启动 PetaLinux 镜像。 b....生成的 rootfs.tar.gz 文件将出现在 images/linux 目录中。若要提取,请使用 tar xvf rootfs.tar.gz。...petalinux-build命令使用这些配置文件构建项目。可以运行petalinux-config修改它们。
查看磁盘空间使用情况 df -h 查找占用空间大的目录 du -sh * 查找出大于400M的文件 find /home/zhang -size +400M 使用dd拷贝镜像 dd bs
文章更新 20170408 初次成文 问题提出: 在之前的文章中,小苏为大家介绍过使用常规方式和使用镜像方式部署Linux系统的方法,但是这两种方法各有利弊: 使用常规方式部署时,镜像大小可以灵活调节...使用镜像方式部署Linux系统时,虽然可以免去部署时下载大量数据的麻烦,但是使用别人部署好的镜像,初始实现的功能依别人部署好的镜像而定,不能个性化定制系统,也不能调整镜像大小。 ...那就是先在Linux Deploy中部署和安装所需要的环境和软件包,然后使用Linux Deploy的导出功能,将Rootfs打包为tar.gz文件,之后,我们只需要将此tar.gz文件导入Linux...Deploy,就可以完整还原打包时的Linux系统了。...因为在Repository中,作者使用各发行版的官方软件源作为软件源,这样一来,一是服务器节点远离中国,软件包下载速度一般都很慢,二是在我国ipv6还未普及,使用官方软件源在部署过程中有一定几率解析到ipv6
前言 在前面的博客【Linux】编译器-gcc/g++使用已经分享了关于编译器的使用,而编译器的使用离不开调试,这次就来分享一下Linux调试器-gdb使用。 2....使用 3.1 进入gdb 默认系统中会安装gdb,使用方法就是gdb后面直接加上调试的可执行程序名: gdb myprocess-debug 就会默认进入到调试模式 想要退出就直接输入quit或者...如果想要从程序第一行开始查就用命令: l 0 还可以使用l加程序名再加0的方式 l myprocess.c:0 不可以直接查文件,但是加上行号就可以查。...进入到函数体里面就退不出来 如果想要跳转到某一行,就用到命令: until 试一下跳转到12行: 总结一下gdb使用就是: set var:修改变量的值 把指定变量直接修改为目标值
背景 程序的发布方式有两种,debug模式和release模式 Linux gcc/g++出来的二进制程序,默认是release模式 要使用gdb调试,必须在源代码生成二进制程序的时候, 加上-g选项...初次使用时,需要先安装: sudo yum install -y gdb 使用 注意使用gdb时,调试的是debug模式。
gcc 编译器是 Linux 下默认的 C/C++ 编译器,大部分 Linux 发行版中都是默认安装的。gcc 编译器通常以 Linux 命令的形式在终端(Shell/Bash)中使用。...\n"); } 使用gcc编译: gcc hello.c 使用ls命令查看当前目录,多出一个a.out可执行文件,运行: ./a.out Hello World!...生成目标文件&自定义名称 使用-c参数可以生成.o结尾的目标文件: gcc -c hello.c 使用ls命令查看当前目录,多出一个hello.o目标文件。...继续使用-o参数生成可执行文件,并自定义名称: gcc -o hello hello.o 其中 “hello” 是指定生成的可执行文件的名称,可以执行测试: ....后面的-L参数用于指定库的搜索路径,由于Linux的默认库的位置就是在lib文件目录下,因此可以省略不写,如果是其它的第三方库,则需要指明库文件的位置。
GDB简介 GDB(GNU Debugger)是Linux下一款C/C++程序调试工具,通过在命令行中执行相应的命令实现程序的调试,使用GDB时只需要在shell中输入gdb命令或gdb filename...This GDB was configured as "x86_64-linux-gnu". Type "show configuration" for configuration details....可以继续使用info locals命令查看add()函数中的局部变量的值,也可以使用frame 1命令先选择主函数所在的1号帧栈,再使用info locals命令查看主函数中的局部变量的值: (gdb)...继续使用continue命令,此次输入3,并在11行断点再次使用info locals命令查看局部变量的值,发现sum的值在每次循环后没有清零,因此导致之后的计算结果出错。...参考: 《精通Linux C编程》- 程国钢 《Linux C编程完全解密》- 闫敬 吴淑坤
使用Unix的初期需要知道您访问Unix的方式。有2种不同的方式。 1.您是作为共享的多用户系统的一部分,例如在学校等机构或者公司单位中 2.您拥有一台自己的Unix计算机。...System Administrator.我们一般简称:admin或sysadmin 我们自己的角色是普通的Unxi/Linux用户。...注销账户可以使用”logout”和”exit”指令,Ubuntu下这2个指令都可以使用。 3.shell提示介绍 目前最流行的3种shell。分别是:Bash,C-Shell和Korn Shell....所以我真心希望哪天Unix或GNU/Linux提供一个快捷键,然后用户查看输入的密码,而且要回显功能呀! 5.注意事项 Unix系统是区分大小写的。...以上主要是《Unix&Linux大学课程》读书笔记,所以实践操作,我自己选择的是Ubuntu。
tcpdump 是 Linux 系统提供一个非常强大的抓包工具,熟练使用它,对我们排查网络问题非常有用。...如果你的机器上还没有安装,可以使用如下命令安装: yum install tcpdump 如果要使用 tcpdump 命令必须具有 sudo 权限。...tcpdump 常用的选项有: -i 指定要捕获的目标网卡名,网卡名可以使用前面章节中介绍的 ifconfig 命令获得;如果要抓所有网卡的上的包,可以使用 any 关键字。...这个时候,我们发现发包序列号和应答序列号都变成 1了,这是 tcpdump 使用相对序号,我们加上 -S 选项后就变成绝对序列号了。...如果读者对 CentOS 的防火墙 iptables 命令有兴趣,可以使用 man iptables 在 man 手册中查看更详细的帮助。
1、安装boost、thrfit 2、生成gen-cpp 3、编译其中的server,方法为: (1)、直接使用g++编译 g++ -o server HelloWorld.cpp helloworld_constants.cpp...对于使用g++编译的方法,可以写一个shell脚本,这样就不用每次都在命令行输入了。 脚本代码: #!...helloworld_types.cpp \ HelloWorld_server.skeleton.cpp \ -I/usr/local/include/thrift \ -L/usr/local/lib -lthfit (2)、使用
原标题:Linux 系统使用规范 不要修改系统级配置文件,请添加自定义配置文件到系统级配置目录中。...需要多个程序公用的环境变量,写在独立的文件中,然后使用source命令带入程序启动脚本里。 如果变量不可变,请用readonly修饰它。...例如:如果需要把文件放在新的位置,请先确认是否需要删除原有文件,如果不需要删除,请使用cp命令。如果需要删除原有文件,将其使用mv改名为filename.bak-$(date %F-%T)。...创建计划任务时(cron),请注意命令路径问题,请使用全路径运行程序。.../logfile.log 原网址:http://blog.kissingwolf.com/2017/04/11/Linux-系统使用规范/
Start End Blocks Id System /dev/sda1 * 2048 307202047 153600000 83 Linux.../dev/sda2 307202048 311396351 2097152 82 Linux swap / Solaris /dev/sda3 311396352... 879097855 283850752 83 Linux WARNING: fdisk GPT support is currently new, and therefore in an...-a4ad-d968a241119f /sdb xfs defaults 0 0 2017-06-07 发现挂载的磁盘sdb不能使用了
领取专属 10元无门槛券
手把手带您无忧上云