关于HanLP 2.0的几个问题

何博士,你好:

  1. 请问设为词性标签这种方式有没有一个简单的格式例子,有点疑惑,范例中这种 {‘自定义’: ‘NZ’} 是不是也可以算作为 词性标签模型中与自定义词典相同的词语 有没有 匹配优先级 这样的说法呢 ?
  2. 另外我在使用中发现hanlp2.0中分词的时候,有一段代码中是去判断Char 是否属于 B or S 并截断词语,这里面出现一个问题:前置标注的Tags中,有时会把 如 H= 中 = 标识为 非B/S 的 E 情况,不知道这是不是一个Bug.
    截图如下:
    image
    在该词前面5个数组下标中 = 属于正常的S tag,但在此处属于E tag,所以返回的word 有点不正确,请问这种情况应该怎么去修复
    3.还想请问一下,hanlp2.0是否有出深度学习相关的书,想购买 您书写的 自然语言处理 那本书,又有些不明白里面是不是只有针对于1.0的版本的内容,2.0的内容是否会重新出一本书

这段代码其实很直白,最长匹配trie树词典中的词语,以此切断文本为片段,片段交给统计模型。那么,词典自然优先级最高。

BMES是常用的分词标签,代码没有问题。

《自然语言处理入门》的出版早于2.0的发布,但这本书并不是针对1.0写的,也不是针对HanLP写的。像你提到的自定义词典匹配优先级、BMES标签之类,都是中文自然语言处理通用的基本技术,并不限于HanLP一家。你可以在很多NLP书籍、论文和开源项目中找到相同的概念,《自然语言处理入门》只不过将这些零散的知识点组织成一本书,而HanLP恰好是这些概念的正确实现。有人借此指责《自然语言处理入门》的通用性局限于HanLP,未免夏虫不可语冰,眼界太狭窄了。

关于深度学习,它是机器学习的子集,而且是一个理论比较简陋、实践比较繁杂的子集。初学者花大量时间在复杂的实践(GPU、TF/PyTorch、调参)上,最终却只学会了一点皮毛的非凸优化理论,沦为一个调包调参侠,最终随着深度学习的泡沫而烟消云散,可以说是入门下策中的下策。

深度学习的确是短期的未来方向,但长期来看深度学习会越来越中心化,集中越来越多的算力和数据,脱离业余爱好者和中小企业的能力范畴。关于深度学习的写作,的确可以有,但各方面的时机都还不成熟:

2 Likes

博士的书写的很好,很认真,这样写书真是一种公益活动。
有没有关于2.1和之前版本的功能差异的说明。看了书之后,很多功能不知道在2.1中有没有实现。没有的话,是否应该之前版本和2.1一起用?
另外2.1的帮助文件看起来不够清晰明了。

谢谢读者赞同。

这周末可以写一个,放到一个显眼的位置。简单来说,一些功能(简繁拼音之类)不需要机器模型,用1.x的Java实现又快又省还可以高并发,就不必在2.x里用缓慢的Python重写一遍了。

的确收到过这样的反馈,你有什么好的建议吗?GitHub首页是不是用1.x的组织方式比较好?