Skip to content

Latest commit

 

History

History
49 lines (32 loc) · 4.67 KB

CONTRIBUTING.md

File metadata and controls

49 lines (32 loc) · 4.67 KB

改进HanLP

👍🎉 首先,感谢花时间改进HanLP 🎉👍

HanLP

项目初衷

自然语言处理本来是一个小众的圈子,综合了多个交叉学科的领域知识。不但需要较深的数学基础,还需要实现复杂算法的工程能力,并且语言学知识也不可或缺。 HanLP作为一个开源自由的项目,初衷是降低上述理论门槛,普及统计自然语言处理到生产环境中去。即使只是一个抛砖引玉的项目,也有其坚持的东西。

为什么走统计自然语言处理的方向?因为“人工规则”“评分公式”过于主观而死板,无法处理灵活的语言现象。汉语言优美而含蓄的语义蕴含在海量的语料中,需要通过灵活的模型与高效的算法去捕捉,而不是僵硬的规则去生搬硬套。而且任何语言都是随着时间不断发展的生命体,融合了所有使用者的集体智慧,没有万能公式,只能以数据驱动的方式建模分析。很高兴最初的想法得到了越来越多的赞同,有越来越多的公司和个人开始关注语料库建设,开始转型到统计模型。

HanLP核心代码几乎全部配有注释和附属说明文档。衷心希望第一次接触自然语言处理的工程师,也能看懂代码的关键,并最终参与开源,一起完善这个不完美的小项目。

HanLP所有代码和文章都注明了大量的论文引用,一些第三方代码也保留了全部署名。希望大家尊重提出了该算法的学者老师、实现了该算法的开源作者。HanLP能在这些研究成果上改进算法,大家能在HanLP上做商业应用,归根结底全是他们的功劳。也希望借此激发大家对底层算法的兴趣,了解原理才能评估一项技术的优缺点、选择最适合的技术。

开源项目定义

世界上有很多开源项目,但按照目的而言只有两种:

1. 有商业目的的开源项目

  • 背后主要由商业公司支撑,雇佣全职员工参与开发,目的(就算不是主要目的,至少也有部分意愿)是推广行业标准(TensorFlow)、测试公司产品(Fedora)、汲取社区智慧改进产品(OpenJDK)、低价倾销后续收费(一些国产“开源”软件如Discuz)……
  • 这类开源产品大部分影响深远,具有改变行业的力量。既达成了企业的商业目的,又造福了所有用户。

2. 以兴趣主导的开源项目

  • 无商业公司支撑,没有任何商业目的。多源于某个黑客的一时兴起,“在座的工具都不好用,为什么不自己造一个呢”。或者源于史蒂夫·沃兹尼克“做出好东西就应该让更多的人使用”那种朴素的利他主义。再者就是实验学习性质的作品,在维护作品的同时得到成长。
  • 这类开源项目虽然缺少资金人力,但不乏闪光之作,伟大如Linux自不必说,小领域的如鸣谢中列举的那些接地气的项目同样精彩。

毫无疑问,HanLP是属于后者的,完全基于兴趣,无商业支持,专注一个小众领域,希望做到极致。即使现在做的还不好,也在往好的方向前进。

目前问题

目前开源项目缺乏高质量的语料支撑,HanLP主要使用的2014人民日报语料也不例外,其中含有不少错误。这些错误不可能靠一个人的力量排除,只能靠众人合力校对。这是当时决定开源的一个重要原因,希望看到这条信息的人都能参与进来。不要仅仅伸手下载打包好的data.zip,而应该fork一份并git clone https://github.com/YourName/HanLP.git。遇到分词不准的时候,随时调整模型,随时把补丁push到开源版本库,随时从开源版本库pull他人的补丁。这才是开源项目应有的运作方式,也是HanLP与其他项目最大的不同。

其他贡献方式

  • 回答issue区的问题,参与讨论,提出批评与建议
  • 参与《开发计划》中的短期project
  • 为HanLP添加注释
  • 为HanLP编写测试用例
  • 为HanLP编写拓展插件
  • 开发高级功能,给大家露一手
  • 写文章分享你使用HanLP的经验,做了什么样的应用
  • 向其他朋友推荐统计自然语言处理与HanLP
  • 校对词库,调整模型
  • 捐献语料(分词标注语料、领域词库等)

再次对你的贡献表示感谢,开源事业因你的参与而更加美好!