Skip to content

HIT-SCIR/scir-training-day

Folders and files

NameName
Last commit message
Last commit date

Latest commit

0d6b09f · Mar 17, 2019

History

87 Commits
Apr 3, 2013
May 16, 2014
Sep 15, 2016
Oct 10, 2016
Sep 25, 2017
Apr 4, 2013
Mar 17, 2019
Sep 24, 2017
Mar 29, 2013
Mar 28, 2013
Sep 25, 2017
Apr 4, 2013

Repository files navigation

训练日

简介

我们想通过这样一个项目,给新进实验室的同学提供一些简单的和自然语言处理相关的Linux命令,脚本的训练。 希望做题的同时,能够掌握一些基础的shell和脚本,同时又能对数据有一定的认识,同时能够接触一些nlp的基础问题。

现在,我们的大部分题目集中在shell和python的使用,未来可能会加入一些其他语言的练习。 当然,未来,我们也希望程序用程序自动完成判题。

内容

参考资源

  • 自然语言处理相关参考书和在线课程

shell练习

  1. shell基础练习
  2. grep练习
  3. awk练习
  4. sed练习
  5. sort练习

python练习

  1. BI标注词序列转换
  2. NGram统计
  3. 正向最大匹配分词
  4. HMM词性标注
  5. NumPy向量处理与SciPy稀疏矩阵(sparse matrix)操作

用法

使用Git

首先需要将训练题下载下来,这个过程中,可能需要一些git的知识。 具体来讲,你需要做如下几件事:

  1. 下载一个和自己的操作系统相符的git
  2. 注册一个github账号
  3. 将这个项目fork到自己的账户下
  4. 将项目clone到本地

然后开始做题吧!



例题

举shell练习中的第一题为例,来说明应该如何做题。

首先,题目写在对应文件夹的README.md中。这道题要写

编写一个shell脚本1.sh,这个脚本接受一个命令行参数,并把这个参数打印两次到标准输出。 如果输入没有参数输入或者有多于一个参数输入,输出"error"。

我们可以编写一个脚本1.sh

if [ $# != 1 ] ; then 
  echo "error"
else
	echo $1$1
fi

然后,为了验证程序的正确性,可以运行自动测试脚本run.py进行测试。由于脚本调用1.sh文件,所以为了使用自动评测文件名一定要正确命名。

看到运行结果

Test  0
=======
+ RUNNING
 -- sh 1.sh yes
+ RESULT
 -- Passed!

Test  1
=======
+ RUNNING
 -- sh 1.sh
+ RESULT
 -- Passed!

2 Runs, 2 Pass

表明进行了两个测试,并且都通过了。

保持更新

由于题目、数据都会不断更新,所以使用者应该注意与原项目保持更新。

具体做法可以参考有如下两种。

被动更新

在题目、数据获得更新之后,我们会主动向使用者发起pull request。使用者可以通过merge主干来保持更新。 所以需要注意一点,尽量不要在自己的项目中修改题目,以免更新题目时产生不必要的冲突。

主动更新

除了接受Pull Request,Fork这一项目的用户还可以通过fetch的方式主动与原项目保持一致。 具体做法可以参考以下链接。

自动评测(开发者)

现在已经实现了一些自动评测的功能,其中包括

  • stdout与制定字符串对比
  • stdout与文件对比

计划是可以做成像这个这样,这部分还在完善。

About

a small training program for new crews of HIT-SCIR

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published