阅读更多
Ansj 是一个开源的 Java 中文分词工具,基于中科院的 ictclas 中文分词算法,比其他常用的开源分词工具(如mmseg4j)的分词准确率更高。

在线演示:http://ansj.sdapp.cn/demo/seg.jsp
官网地址:http://www.ansj.org/
Github地址:https://github.com/ansjsun/ansj_seg

我们本期采访了Ansj的作者孙健,请他为大家详细介绍一下这个分词工具。

ITeye期待并致力于为国内优秀的开源项目提供一个免费的推广平台,如果你和你的团队希望将自己的开源项目介绍给更多的开发者,或者你希望我们对哪些开源项目进行专访,请告诉我们,发站内短信给ITeye管理员或者发邮件到webmaster@iteye.com即可。

先来个自我介绍吧! Top

孙健,胸无大志,没想过创业,没想过发财,只想高高兴兴写两行代码,做了近五年Java程序员,写过页面,干过运维,做过人力,忽悠过客户,擅长字符串操作,擅长数据结构和算法。现在主要从事检索、自然语言处理、数据挖掘等方面工作。

介绍一下Ansj! Top

Ansj中文分词是一款纯Java的、主要应用于自然语言处理的、高精度的中文分词工具,目标是“准确、高效、自由地进行中文分词”,可用于人名识别、地名识别、组织机构名识别、多级词性标注、关键词提取、指纹提取等领域,支持行业词典、用户自定义词典。

上面是客套话,先说明一下Ansj命名的由来吧。本来开始打算叫totoro分词(同事帮忙起的名),最后发现好多厕所中卫生洁具都叫“TOTO” ^_^

正好我注册了Ansj.org域名,于是乎,就叫这个名字吧。

你认为中文分词的难点是什么? Top

在这里说分词有点老生常谈了。的确,中文分词已经非常成熟了,但是之间有一些问题依旧比较难解。个人认为大致有以下几点吧:

1.  中文歧义的识别

比较出名的一句话“结婚的和尚未结婚的”,如果使用正向最大匹配,容易分成“结婚/的/和尚/未/结婚的”,于是有的学者试图倒过来识别,逆向匹配会大于正向。但是碰到这句“结合成分子时”,采用逆向最大匹配,则会分为“结合/成分/子时”,更有甚者像“咬了猎人的狗”这种语意不明的词语,就更不容易正确分词了。这是中文分词的软肋。下面是些典型的歧义句:

  • 交叉歧义(多种切分交织在一起):内塔内亚胡说的/确实/在理
  • 组合歧义(不同情况下切分不同):这个人/手上有痣、我们公司人手
  • 真歧义(几种切分都可以):乒乓球拍/卖/完了、乒乓球/拍卖/完了
2.  实体名识别

这个是中文分词遇到的最大的难点,也是最最紧迫的。实体名识别包括人名识别、地名识别、机构名识别,还包括有监督识别和无监督识别。有监督的还好,无监督基本是无解的,比如“王大力发球”是“王大力”还是“大力发球”,一般人都难以识别。

3.  新词热词发现

目前常用的新词发现还是一个比较有研究性的课题,虽然有些论文在准确率很高,但是大多是封闭测试,这意味着结果很难应用到实际工程中。目前Ansj采用的新词发现方式比较简单,采用了高频词的匹配方式,不使用规则,用统计重复串识别新词,根据词性去掉干扰词,虽然有一定的效果,但还是差强人意。

4.  颗粒度问题

这个就是一个规则探讨的问题了,比如“北京大学”是“北京”+“大学”还是“北京大学”,人各有志,就连同一个人不同时间的标注也有可能是有区别的,虽然这个问题严格上来说不属于技术问题,但是对分词结果的评测却有着很大的关系,Ansj采用“能识别就识别”的策略方针,所以在真正R值的时候偏低,总之一句话,适合学术的不一定适合工业,反之亦然。

简单介绍一下Ansj分词用到的算法,其分词原理是什么? Top

Ansj并非我创新,可以说是一个ictclas的Java版本,基本原理一致,只不过在分词优化算法上做了一些改进。

该算法实现分词有以下几个步骤:

  1. 全切分,原子切分;
  2. N最短路径的粗切分,根据隐马尔科夫模型和viterbi算法,达到最优路径的规划;
  3. 人名识别;
  4. 系统词典补充;
  5. 用户自定义词典的补充;
  6. 词性标注(可选)

Ansj分词的准确率大概是多少? Top

这是我采用人民日报1998年1月语料库的一个测试结果,首先要说明的是这份人工标注的语料库本身就有错误。

  • P(准确率):0.984887218571267
  • R(召回率):0.9626488103178712
  • F(综合指标F值):0.9736410471396494

在歧义、未登录词问题上,Ansj表现怎样? Top

歧异方面的处理方式自我感觉还可以,基于“最佳实践规则+统计”的方式,虽然还有一部分歧异无法识别,但是已经完全能满足工程应用了。

至于未登录词的识别,目前重点做了中文人名的识别,效果还算满意,识别方式用的“字体+前后监督”的方式,也算是目前我所知道的效果最好的一种识别方式了。

Ansj的性能如何? Top

在我的测试中,Ansj的效率已经远超ictclas的其他开源实现版本。

核心词典利用双数组规划,每秒钟能达到千万级别的粗分。在我的MacBookAir上面,分词速度大约在300w/字/秒,在酷睿i5+4G内存组装机器上,更是达到了400w+/字/秒的速度。

如何添加自定义词典? Top

Ansj已经实现了用户自定义词典的动态添加删除,当然,也支持从文件加载词典。

从硬盘加载用户自定义词典的方法:

用户自定义词典默认路径:项目目录/library/userLibrary/userLibrary.dic

格式为:[自定义词]  [词性]  [词频],如:csdn创新院  userDefine  1000,中间用TAB键隔开

原分词结果:[csdn, 创新, 院, 是, 一个, 好, 公司]

增加词典后:[csdn创新院, 是, 一个, 好, 公司]

详细内容见:用户自定义词典的添加

用户自定义词典的动态添加删除方法见:用户自定义词典的动态添加删除Demo

你在开发过程中,遇到哪些困难? Top

最大的困难是训练样本和语料库的不足,遗憾国内没有共享,大多数都是收费的,而且好贵。

你认为Ansj还需要在哪些方面进行完善? Top

我打算下一版的改进将围绕未登录词进行,采用crf来做新词的识别。当然随着系统的庞大,每次修改都要考虑效率内存占用。

虽然已经着手开始进行中,但是进展一直不快。有兴趣的同学可以多提意见,可以通过Github参与到该项目中,让我们做一个真正的Java版的高准确率分词。

Github地址:https://github.com/ansjsun/ansj_seg
  • 大小: 44.8 KB


评论 共 226 条
46 楼 iDogDogDog 2012-11-06 11:00
嗯 在线测了一下,
成都市长长我两岁
还是不行,感觉可能还是训练样本太少.
45 楼 yuhe 2012-11-06 10:47
居然还有人在争论语言效率问题,可见这群人是多么的无知。10有89,是乳臭未干的小民工。
44 楼 TheMatrix 2012-11-06 09:57
研究生经验碰到导师让搞这类课题研究的,就是让他帮他设计一套软件。。。
43 楼 meifangzi 2012-11-06 09:47
看看评论,都是一帮什么都没做过的人说做过的人做的不好

真正有过自己成就的人才不会轻易说别人的东东不好

42 楼 truekbcl 2012-11-06 09:37
ansjsun 写道
fyland 写道

一般情况下..是让他换机器的...说实话..还没碰到几个..因为java慢必须要改成c的....不用swing..基本上都还可以...还有...营造一个好的论坛环境别吵了..多大点事啊....
我评论的是针对用JAVA写分词系统,而有人在评论中说“真的是眼高手低”,那就是针对个人了!


我以前在中科院的时候..c做的快速分词能达到20m每秒.我用java实现的也差不多.

.还有..我经常把一些研究生的作业改写成java的有的时候.效率会比c高不少.虚拟机内部对字符串有优化.在这个分词中将词典和词都加载到了内存中.所以.很少做了字符串拆分..创造对象尽量用引用.少写new..都是一些细节技巧..如果你看了我的源码.也许会发现..大量的引用..在分词加载完毕后.很少用new来实例化对象.这些都和语言无关...至于内存占用率..这个至少空闲内存100m..一般台式机我想应该能接受吧..你要非把他放手机里跑这个的确不合适..

还有.其实开发效率和可维护性.才是一个软件的关键.硬件发展太快.很多以前无法实现的技术现在都能做到了..任何人都不应该写天书一样的代码.

1.为什么没见过几个c语言做动态网页的.
2.为什么人们有了汇编还要创建其他语言.

需要考虑到业务节点的瓶颈.还需要考虑个个语言的通讯成本.总总因素.

首先支持楼主。
对于前面楼主说的,"C如果写得不好,还不如java",这个话没有意义。只能说是人的问题,还是不能说java比C快。
c/c++最大的问题还是在于二进制不友好。c/c++的开发效率并不比java这些低,麻烦的就是使用三方库,你得用很多时间去整合。如果c/c++库可以和后来的语言一样方便使用动态库,那么c/c++的网站必然会多起来。而且现在的编译器优化效果是相当好。基本上,可以免费获得很大的效率提升。
汇编确实很麻烦,不是难,而是繁琐。开发效率实在太低。
41 楼 ansjsun 2012-11-06 09:23
zhengeili 写道
八百标兵奔北坡,炮兵并排北边跑,炮兵怕把标兵碰,标兵怕碰炮兵炮

[八百/m, 标兵/n, 奔/v, 北坡/userDefine, ,/w, 炮兵/n, 并排/d, 北边/f, 跑/v, ,/w, 炮兵/n, 怕/v, 把/p, 标兵/n, 碰/v, ,/w, 标兵/n, 怕/v, 碰/v, 炮兵/n, 炮/n, ]
40 楼 zhengeili 2012-11-06 08:50
八百标兵奔北坡,炮兵并排北边跑,炮兵怕把标兵碰,标兵怕碰炮兵炮
39 楼 jzl_root 2012-11-05 23:56
能添加词库,不错不错,比ictclas好多了
38 楼 raptor 2012-11-05 18:46
楼主的分词还是做的很不错的,比较同意楼主说的C写不好还不如java,而且很多项目注重的是开发速度而不是性能,现在已经进入一个没必要和硬件较劲的年代,何必还要纠结这些,用java写分词不行吗?照我看楼主这个项目很有前瞻性,要支持起来
37 楼 半人马 2012-11-05 17:57
当我想顶的时候,发现没有这个选项。
36 楼 ansjsun 2012-11-05 17:26
fyland 写道

一般情况下..是让他换机器的...说实话..还没碰到几个..因为java慢必须要改成c的....不用swing..基本上都还可以...还有...营造一个好的论坛环境别吵了..多大点事啊....
我评论的是针对用JAVA写分词系统,而有人在评论中说“真的是眼高手低”,那就是针对个人了!


我以前在中科院的时候..c做的快速分词能达到20m每秒.我用java实现的也差不多.

.还有..我经常把一些研究生的作业改写成java的有的时候.效率会比c高不少.虚拟机内部对字符串有优化.在这个分词中将词典和词都加载到了内存中.所以.很少做了字符串拆分..创造对象尽量用引用.少写new..都是一些细节技巧..如果你看了我的源码.也许会发现..大量的引用..在分词加载完毕后.很少用new来实例化对象.这些都和语言无关...至于内存占用率..这个至少空闲内存100m..一般台式机我想应该能接受吧..你要非把他放手机里跑这个的确不合适..

还有.其实开发效率和可维护性.才是一个软件的关键.硬件发展太快.很多以前无法实现的技术现在都能做到了..任何人都不应该写天书一样的代码.

1.为什么没见过几个c语言做动态网页的.
2.为什么人们有了汇编还要创建其他语言.

需要考虑到业务节点的瓶颈.还需要考虑个个语言的通讯成本.总总因素.
35 楼 fyland 2012-11-05 17:00
ansjsun 写道
fyland 写道
orange.lpai 写道
fyland 写道
一看原来是用JAVA写的,马上兴趣全无!
JAVA干这种活速度实在太差了!

你用C或者CPP写个试试看,真的是眼高手低!

如果是客户提要求,你也是这么回答的?
比如客户提一个“我要这个功能……”、“这个功能模块使用太慢了”,你是不是也回一句:你用X或者XXX写个试试看!

一般情况下..是让他换机器的...说实话..还没碰到几个..因为java慢必须要改成c的....不用swing..基本上都还可以...还有...营造一个好的论坛环境别吵了..多大点事啊....

我评论的是针对用JAVA写分词系统,而有人在评论中说“真的是眼高手低”,那就是针对个人了!
34 楼 ansjsun 2012-11-05 16:35
fyland 写道
orange.lpai 写道
fyland 写道
一看原来是用JAVA写的,马上兴趣全无!
JAVA干这种活速度实在太差了!

你用C或者CPP写个试试看,真的是眼高手低!

如果是客户提要求,你也是这么回答的?
比如客户提一个“我要这个功能……”、“这个功能模块使用太慢了”,你是不是也回一句:你用X或者XXX写个试试看!

一般情况下..是让他换机器的...说实话..还没碰到几个..因为java慢必须要改成c的....不用swing..基本上都还可以...还有...营造一个好的论坛环境别吵了..多大点事啊....
33 楼 fyland 2012-11-05 16:31
orange.lpai 写道
fyland 写道
一看原来是用JAVA写的,马上兴趣全无!
JAVA干这种活速度实在太差了!

你用C或者CPP写个试试看,真的是眼高手低!

如果是客户提要求,你也是这么回答的?
比如客户提一个“我要这个功能……”、“这个功能模块使用太慢了”,你是不是也回一句:你用X或者XXX写个试试看!
32 楼 fyland 2012-11-05 16:30
stoneage14 写道
fyland 写道
一看原来是用JAVA写的,马上兴趣全无!
JAVA干这种活速度实在太差了!

眼高手低的人可真多,真打击这个圈子的创造激情。

要不要像我D那样天天给你唱赞歌?
31 楼 huanghe036 2012-11-05 16:09
我用过,挺好的
30 楼 ansjsun 2012-11-05 15:08
huangyahui 写道
弱弱的问下支持solr不?

支持吧..反正支持lucene....ps 没用过solr...
29 楼 huangyahui 2012-11-05 15:06
弱弱的问下支持solr不?
28 楼 orange.lpai 2012-11-05 14:31
fyland 写道
一看原来是用JAVA写的,马上兴趣全无!
JAVA干这种活速度实在太差了!

你用C或者CPP写个试试看,真的是眼高手低!
27 楼 mfkvfn 2012-11-05 14:26
stoneage14 写道
fyland 写道
一看原来是用JAVA写的,马上兴趣全无!
JAVA干这种活速度实在太差了!

眼高手低的人可真多,真打击这个圈子的创造激情。

+1
26 楼 stoneage14 2012-11-05 14:08
fyland 写道
一看原来是用JAVA写的,马上兴趣全无!
JAVA干这种活速度实在太差了!

眼高手低的人可真多,真打击这个圈子的创造激情。
25 楼 aixuebo 2012-11-05 13:50
ansjsun 写道
aixuebo 写道
分词看过一些源码,比如IK和庖丁,想自己也弄一个出来,但是难点在于数据训练方面。
想问一下关于数据训练方面的知识……希望楼主介绍一下如何学习。



现在分词都是基于..统计 + 规则的..你之前提到的一些分词大都是基于规则的..基于统计的需要大规模的词频训练,训练好写.语料难搞到,这个模型还保持着itcclas 的语义模型..人名识别是自己写的...至于训练..如果不想写代码..你可以看看crf++ 很多工具可以 做的




是这样的,我就是想自己学习一下如何训练数据,如果会训练数据了,我不仅仅可以在这分词上应用,工作中很多地方都可以应用上,只是对如何训练数据一点都不了解,希望给出点学习指导,或者论文。
24 楼 ansjsun 2012-11-05 13:32
aixuebo 写道
分词看过一些源码,比如IK和庖丁,想自己也弄一个出来,但是难点在于数据训练方面。
想问一下关于数据训练方面的知识……希望楼主介绍一下如何学习。



现在分词都是基于..统计 + 规则的..你之前提到的一些分词大都是基于规则的..基于统计的需要大规模的词频训练,训练好写.语料难搞到,这个模型还保持着itcclas 的语义模型..人名识别是自己写的...至于训练..如果不想写代码..你可以看看crf++ 很多工具可以 做的
23 楼 fyland 2012-11-05 13:26
erliang20088 写道
erliang20088 写道
fyland 写道
erliang20088 写道
fyland 写道
zhangmiao_chp 写道
fyland 写道
一看原来是用JAVA写的,马上兴趣全无!
JAVA干这种活速度实在太差了!


楼上相当无知,决定系统性能的是数据结构和算法,和语言没有关系,算法提升的性能是成倍的,代码写的好不好要看你的功力强不强,和兵器有毛关系。支持楼主

到底谁无知?
同一种算法,只能用JAVA实现,而不能用C实现?
我没有否认数据结构和算法在性能方面的重要性(事实上我提都没提),我语义的环境是假设在相同算法上,用C语言实现的中文分词会比用JAVA实现的在运行速度上要快得多!在占用CPU和内存使用上,C占的优势就更不用说了!硬件那是实实在在用银子堆起来的!
JAVA唯一的优势就是开发速度。



你能免费得到C写的分词吗? 不要说开源的C写的分词,效果很差~

开源C写的分词器效果很差?何以见得?
开源JAVA写的分词器效果就很好?



这个开源分词我一直在使,而且辅助做了分词测试,数据很显然,我还是建议楼主真心用一把试试看,就当学习了~

有跟其他C语言实现的开源分词器做对比测试吗?把分词速度和准确率做一个对比图,然后再把CPU占用率和内存使用也分别做一个对比图。
22 楼 aixuebo 2012-11-05 13:24
分词看过一些源码,比如IK和庖丁,想自己也弄一个出来,但是难点在于数据训练方面。
想问一下关于数据训练方面的知识……希望楼主介绍一下如何学习。
21 楼 erliang20088 2012-11-05 13:18
erliang20088 写道
fyland 写道
erliang20088 写道
fyland 写道
zhangmiao_chp 写道
fyland 写道
一看原来是用JAVA写的,马上兴趣全无!
JAVA干这种活速度实在太差了!


楼上相当无知,决定系统性能的是数据结构和算法,和语言没有关系,算法提升的性能是成倍的,代码写的好不好要看你的功力强不强,和兵器有毛关系。支持楼主

到底谁无知?
同一种算法,只能用JAVA实现,而不能用C实现?
我没有否认数据结构和算法在性能方面的重要性(事实上我提都没提),我语义的环境是假设在相同算法上,用C语言实现的中文分词会比用JAVA实现的在运行速度上要快得多!在占用CPU和内存使用上,C占的优势就更不用说了!硬件那是实实在在用银子堆起来的!
JAVA唯一的优势就是开发速度。



你能免费得到C写的分词吗? 不要说开源的C写的分词,效果很差~

开源C写的分词器效果很差?何以见得?
开源JAVA写的分词器效果就很好?



这个开源分词我一直在使,而且辅助做了分词测试,数据很显然,我还是建议楼主真心用一把试试看,就当学习了~
20 楼 erliang20088 2012-11-05 13:14
fyland 写道
erliang20088 写道
fyland 写道
zhangmiao_chp 写道
fyland 写道
一看原来是用JAVA写的,马上兴趣全无!
JAVA干这种活速度实在太差了!


楼上相当无知,决定系统性能的是数据结构和算法,和语言没有关系,算法提升的性能是成倍的,代码写的好不好要看你的功力强不强,和兵器有毛关系。支持楼主

到底谁无知?
同一种算法,只能用JAVA实现,而不能用C实现?
我没有否认数据结构和算法在性能方面的重要性(事实上我提都没提),我语义的环境是假设在相同算法上,用C语言实现的中文分词会比用JAVA实现的在运行速度上要快得多!在占用CPU和内存使用上,C占的优势就更不用说了!硬件那是实实在在用银子堆起来的!
JAVA唯一的优势就是开发速度。



你能免费得到C写的分词吗? 不要说开源的C写的分词,效果很差~

开源C写的分词器效果很差?何以见得?
开源JAVA写的分词器效果就很好?

19 楼 ansjsun 2012-11-05 13:13
fyland 写道
zhangmiao_chp 写道
fyland 写道
一看原来是用JAVA写的,马上兴趣全无!
JAVA干这种活速度实在太差了!


楼上相当无知,决定系统性能的是数据结构和算法,和语言没有关系,算法提升的性能是成倍的,代码写的好不好要看你的功力强不强,和兵器有毛关系。支持楼主

到底谁无知?
同一种算法,只能用JAVA实现,而不能用C实现?
我没有否认数据结构和算法在性能方面的重要性(事实上我提都没提),我语义的环境是假设在相同算法上,用C语言实现的中文分词会比用JAVA实现的在运行速度上要快得多!在占用CPU和内存使用上,C占的优势就更不用说了!硬件那是实实在在用银子堆起来的!
JAVA唯一的优势就是开发速度。


怎么又吵起来了...你实际测测就知道了..

18 楼 fyland 2012-11-05 13:12
erliang20088 写道
fyland 写道
zhangmiao_chp 写道
fyland 写道
一看原来是用JAVA写的,马上兴趣全无!
JAVA干这种活速度实在太差了!


楼上相当无知,决定系统性能的是数据结构和算法,和语言没有关系,算法提升的性能是成倍的,代码写的好不好要看你的功力强不强,和兵器有毛关系。支持楼主

到底谁无知?
同一种算法,只能用JAVA实现,而不能用C实现?
我没有否认数据结构和算法在性能方面的重要性(事实上我提都没提),我语义的环境是假设在相同算法上,用C语言实现的中文分词会比用JAVA实现的在运行速度上要快得多!在占用CPU和内存使用上,C占的优势就更不用说了!硬件那是实实在在用银子堆起来的!
JAVA唯一的优势就是开发速度。



你能免费得到C写的分词吗? 不要说开源的C写的分词,效果很差~

开源C写的分词器效果很差?何以见得?
开源JAVA写的分词器效果就很好?
17 楼 fastw 2012-11-05 13:11
我觉得这是我用过最好的中文分词系统,分词好,效率快,学习的路过...

发表评论

您还没有登录,请您登录后再发表评论

相关推荐

  • 国内外优秀开源项目创始人专访

    这几年陆续采访了国内外一些优秀开源项目的zuozh

  • R语言︱文本挖掘之中文分词包——Rwordseg包(原理、功能、详解)

    笔者寄语:与前面的RsowballC分词不同的地方在于这是一个中文的分词包,简单易懂,分词是一个非常重要的步骤,可以通过一些字典,进行特定分词。大致分析步骤如下: 数据导入——选择分词字典——分词 但是下载...

  • 中文分词工具Rwordseg

    Ansj 也是一个开源的 Java 中文分词工具,基于中科院的 ictclas 中文分词算法,采用隐马尔科夫模型(Hidden Markov Model, HMM)。作者孙健重写了一个Java版本,并且全部开源,使得 Ansi 可用于人名识别、地名识别...

  • 中文分词的应用 新浪和庖丁两种方式对比

    中文分词相比于英文难度要大得多,涉及到自然语言的理解和处理。分词也是文本挖掘中的关键技术之一,百度也是因为中文分词相比于google更优秀,才做到中文的检索结果更优。实际上新浪、百度云服务上很多开发者也开放...

  • Lucene下分词工具的学习探讨

    今天一天学习的东西不多,除了看《Lucene实战》第20页的程序,就是研究Java版本的开源分词器了! 在网上找到了两种分词器,ansj和imdict,本质上没有什么区别,都是用采用ICTCLAS的核心。个人觉得ansj要更好一些,...

  • NLP自然语言处理干货贴

    摘要:作者:苏剑林 来源网站:科学空间 原文链接:OCR技术浅探:9. 代码共享(完) 文件说明: 1. image... 2.OCR技术浅探:8. 综合评估 摘要:作者:苏剑林 来源网站:科学空间 原文链接:OCR技术浅探:8. 综合...

  • 低成本单发单收激光测距传感器方案详解:硬件设计、代码实现及应用案例

    内容概要:本文详细介绍了低成本单发单收激光测距传感器的一站式解决方案,涵盖硬件设计、软件实现及其应用。硬件部分基于STM32F030F4P6芯片,搭配激光发射管和APD接收模块,通过精心设计的信号调理电路确保高精度测量。软件部分展示了关键代码片段,如初始化、测距算法和ADC配置,采用改进型飞行时间法(ToF)并通过DMA优化数据处理效率。此外,文章还讨论了调试过程中遇到的问题及解决方案,如环境光干扰和PCB布局优化。最终,该方案实现了0.05-50米范围内±1.5mm的测距精度,适用于多种应用场景。 适合人群:电子爱好者、硬件工程师、嵌入式系统开发者。 使用场景及目标:① DIY爱好者可以通过本方案进行个人项目的开发;② 企业可以基于此方案进行商业产品的开发,降低成本;③ 教育机构可以用作教学案例,帮助学生理解激光测距原理和技术实现。 其他说明:文章不仅提供详细的硬件和软件设计方案,还包括BOM清单、供应商信息和调试指南,有助于快速实现和优化项目。

  • 基于麻雀算法优化LSTM的时间序列预测——MATLAB实现及应用

    内容概要:本文详细介绍了将麻雀算法(SSA)应用于LSTM参数优化的方法及其MATLAB实现。首先,通过生成带噪声的正弦波数据模拟真实场景的数据扰动,然后定义适应度函数用于评估LSTM模型的表现。接着,利用麻雀算法的发现者和跟随者角色进行参数优化,最终实现了比随机调参更好的预测效果。文中不仅提供了完整的代码实现,还讨论了参数设置的经验值以及一些实用技巧,如数据归一化、早停机制和并行加速等。 适合人群:对机器学习尤其是深度学习有一定了解的研究人员和技术爱好者,熟悉MATLAB编程环境。 使用场景及目标:适用于需要提高时间序列预测精度的任务,如金融数据分析、天气预报等领域。主要目标是通过引入生物启发式的优化算法来提升LSTM模型的性能。 其他说明:文中提到的麻雀算法能够显著减少人工调参的工作量,并且相比传统的网格搜索法更加高效。此外,作者还分享了一些实践经验,帮助读者更好地理解和应用这一方法。

  • 西门子Smart200 PLC实现高效星三角降压启动子程序及应用

    内容概要:本文详细介绍了使用西门子Smart200 PLC实现高效的星三角降压启动子程序的方法。作者分享了具体的编程技巧,包括参数化的外部配置、定时器的巧妙运用以及故障处理机制。文中展示了完整的主程序调用示例和子程序内部逻辑,强调了模块化编程的优势,使得不同电机可以轻松复用相同的子程序,极大提高了调试和维护效率。此外,作者还提到了一些常见的调试陷阱和优化建议,如避免星三角同时导通、合理设置切换时间和加入硬件互锁等。 适合人群:从事PLC编程、自动化控制领域的工程师和技术人员,尤其是那些希望提高编程效率和代码复用性的从业者。 使用场景及目标:适用于需要频繁进行电机星三角降压启动的工业应用场景,如纺织厂、水泥厂等。主要目标是通过模块化编程减少重复劳动,提升系统稳定性和响应速度。 其他说明:文章不仅提供了详细的代码示例,还分享了许多实践经验,帮助读者更好地理解和应用这些技术。

  • 2025中国数字营销趋势报告.pdf

    2025中国数字营销趋势报告.pdf

  • 威纶通MT6071iP一机多屏控制信捷PLC的技术实现与应用

    内容概要:本文详细介绍了如何利用两台威纶通MT6071iP触摸屏控制一台信捷PLC的具体步骤和技术要点。主要内容涵盖硬件连接、触摸屏设置、PLC编程、调试与优化等方面。文中不仅提供了具体的配置方法,如通讯参数设置、画面设计、宏指令处理等,还分享了许多实际操作中的经验和注意事项,如地址分配、数据同步、通讯稳定性提升等。 适合人群:从事工业自动化领域的工程师和技术人员,尤其是那些需要实现多屏协同控制PLC系统的工作者。 使用场景及目标:适用于需要提高生产线上设备操作便捷性和监控灵活性的场合。通过一机多屏设置,可以在不同位置对同一PLC进行控制,方便现场操作和远程管理。 其他说明:文章强调了硬件连接细节、通讯参数一致性、PLC编程逻辑的重要性,并提供了一些实用技巧,如宏指令处理、心跳检测、防呆设计等,帮助读者更好地理解和实施该项目。

  • 2024中国上市公司数字化转型报告.pdf

    2024中国上市公司数字化转型报告.pdf

  • 《2024年中国物联网产业创新白皮书》

    内容概要:《2024年中国物联网产业创新白皮书》由深圳市物联网产业协会与AIoT星图研究院联合编制,汇集了全国30多个省市物联网组织的智慧。白皮书系统梳理了中国物联网产业的发展历程、现状及未来趋势,涵盖了物联网的概念、产业结构、市场规模、投融资情况、面临的问题与机遇。书中详细分析了感知层、传输层、平台层及应用层的关键技术,探讨了智慧城市、智能工业、车联网、智慧医疗等九大产业物联网应用领域,以及消费物联网的发展特征与热门单品。此外,白皮书还关注了物联网数据安全、法规遵从、人才短缺等挑战,并提出了相应的解决方案。 适用人群:物联网从业者、企业决策者、政策制定者及相关研究机构。 使用场景及目标:①帮助从业者深入了解物联网产业的现状和发展趋势;②为企业决策者提供战略规划依据;③为政策制定者提供政策支持和法规制定参考;④为研究机构提供详尽的数据和案例支持。 其他说明:白皮书不仅限于技术科普,更从宏观角度结合市场情况,多维度讨论了物联网产业生态,旨在为物联网企业、从业者找到最适合的技术应用场景,促进产业健康发展。报告还特别鸣谢了参与市场调研的企业,感谢他们提供的宝贵行业信息。由于时间和资源的限制,报告可能存在信息不充分之处,欢迎各界人士提出宝贵意见。

  • 汇川H5U PLC结构体编程优化工业控制系统设计与应用

    内容概要:本文详细介绍了汇川H5U PLC中采用结构体编程的优势及其具体应用场景。作者通过多个实际项目案例展示了结构体编程如何显著提高代码的整洁度、可维护性和扩展性。文中特别强调了结构体在处理大量相似设备(如气缸、阀门、伺服轴)时的作用,以及如何利用结构体简化变量管理、增强在线调试体验并减少内存消耗。此外,还讨论了一些常见的注意事项和技术细节,如结构体初始化、功能块集成、在线修改功能的应用等。 适用人群:从事工业自动化系统开发的技术人员,尤其是对PLC编程有一定经验的工程师。 使用场景及目标:适用于需要高效管理和维护复杂工业控制系统的场合,旨在帮助工程师更好地理解和掌握结构体编程技巧,从而提高工作效率和代码质量。 其他说明:文章提供了丰富的代码片段作为示例,便于读者直观地理解结构体编程的具体实现方法。同时提醒读者注意结构体初始化等问题,确保项目顺利进行。

  • 三相逆变器模型预测控制(MPC)的高效数学建模与快速仿真

    内容概要:本文介绍了如何利用数学建模替代传统的电气元件仿真,实现三相逆变器的模型预测控制(MPC)。主要内容包括三相桥的数学模型建立、代价函数设计、状态方程离散化以及仿真优化技巧。通过将三相桥的输出电压转换为矩阵运算,减少了计算复杂度,提高了仿真速度。代价函数不仅考虑了电流跟踪误差,还加入了开关频率惩罚项,以减少不必要的开关动作。此外,文中提供了详细的代码示例,展示了如何通过数学建模实现高效的MPC控制。 适合人群:从事电力电子控制系统设计的研究人员和技术人员,尤其是对三相逆变器及其控制算法感兴趣的读者。 使用场景及目标:适用于需要快速迭代和验证控制算法的场合,如光伏并网、电机驱动等领域。目标是提高仿真效率,优化控制性能,减少开发时间和成本。 其他说明:文中提到的技术手段能够显著提升仿真速度,但在应用时需要注意数值稳定性和参数辨识的准确性。

  • MATLAB/Simulink中60W Flyback变换器的建模与仿真详解

    内容概要:本文详细介绍了如何使用MATLAB/Simulink构建并仿真一个60W的Flyback变换器模型,输入为390V直流,输出为19V/3A。主要内容涵盖主电路搭建(包括变压器参数设置、MOSFET选择)、吸收电路设计(RCD参数调整)、闭环控制系统(PID参数调节)以及动态性能测试。文中还提供了多个实用技巧,如防止变压器饱和、优化吸收电路参数、提高动态响应速度等,并指出了常见的错误及其解决方案。同时,推荐了几本相关领域的经典书籍供进一步学习。 适合人群:初学者和有一定基础的电源设计师,特别是希望深入了解Flyback变换器工作原理和技术细节的人群。 使用场景及目标:适用于需要进行中小功率电源设计的研究人员和工程师,旨在帮助他们掌握Flyback变换器的设计方法,提升仿真的准确性和可靠性。 其他说明:提供的仿真文件可以在MATLAB 2017b及以上版本运行,建议读者按照文中步骤逐步实践,以便更好地理解和应用所学知识。

  • 2024年中国城市低空经济发展指数报告

    内容概要:《2024年中国城市低空经济发展指数报告》由36氪研究院发布,指出低空经济作为新质生产力的代表,已成为中国经济新的增长点。报告从发展环境、资金投入、创新能力、基础支撑和发展成效五个维度构建了综合指数评价体系,评估了全国重点城市的低空经济发展状况。北京和深圳在总指数中名列前茅,分别以91.26和84.53的得分领先,展现出强大的资金投入、创新能力和基础支撑。低空经济主要涉及无人机、eVTOL(电动垂直起降飞行器)和直升机等产品,广泛应用于农业、物流、交通、应急救援等领域。政策支持、市场需求和技术进步共同推动了低空经济的快速发展,预计到2026年市场规模将突破万亿元。 适用人群:对低空经济发展感兴趣的政策制定者、投资者、企业和研究人员。 使用场景及目标:①了解低空经济的定义、分类和发展驱动力;②掌握低空经济的主要应用场景和市场规模预测;③评估各城市在低空经济发展中的表现和潜力;④为政策制定、投资决策和企业发展提供参考依据。 其他说明:报告强调了政策监管、产业生态建设和区域融合错位的重要性,提出了加强法律法规建设、人才储备和基础设施建设等建议。低空经济正加速向网络化、智能化、规模化和集聚化方向发展,各地应找准自身比较优势,实现差异化发展。

  • 汇川H5U PLC程序框架:基于ETHERCAT总线的高效自动化控制系统

    内容概要:本文深入探讨了汇川H5U PLC程序框架,尤其是其在ETHERCAT总线控制方面的应用。该框架提供了完整的气缸控制、轴控制等功能模块,涵盖从初始化到故障处理的全过程。文中详细介绍了气缸控制的梯形图逻辑、轴控制的具体指令及其状态机设计,并展示了触摸屏与PLC变量的绑定方法。此外,还提到了三套针对不同应用场景的程序样例,包括单机设备、流水线联动和柔性生产版本。整体而言,该框架以其条理分明的代码结构和丰富的功能模块,成为自动化控制领域的有力工具。 适合人群:从事工业自动化控制系统的工程师和技术人员,特别是初学者和希望深入了解汇川H5U PLC及ETHERCAT总线控制的专业人士。 使用场景及目标:适用于需要高效、稳定的多轴运动控制和人机交互的自动化项目。主要目标是帮助用户快速掌握汇川H5U PLC的编程技巧,提高项目的开发效率和可靠性。 其他说明:文章强调了框架的实用性、易用性和详细的文档支持,使得即使是新手也能轻松上手并应用于实际项目中。

  • 目标: 通过统计文本中各个词汇的出现频率,找出文本中的关键词,帮助我们了解文本的核心内容 方案: 统计词频:计算每个词汇在文本中的出现次数 常用方法有TF(词频)和TF-IDF(词频-逆文档频率)

    https://blog.csdn.net/qianqianaao/article/details/147515496?fromshare=blogdetail&sharetype=blogdetail&sharerId=147515496&sharerefer=PC&sharesource=qianqianaao&sharefrom=from_link python小项目

Global site tag (gtag.js) - Google Analytics