stanford-segmenter一个简单例子

来源:互联网 发布:排序算法复杂度比较 编辑:程序博客网 时间:2024/06/05 19:33

1.简介

stanford分词目前支持 Arabic 和 Chinese。它的原理是基于CRFs, CRFs分词的原理不难懂,就是把分词当作另一种形式的命名实体识别,利用特征建立概率图模型后,用Veterbi算法求最短路径。stanford nlp提供了源码demo,目前的版本是3.5.2。

下载地址:http://nlp.stanford.edu/software/segmenter.shtml

2.例子

step1: 新建project,将下载的stanford-segmenter-2015-04-20.zip解压,把解压后的arabic,data文件夹以及3个jar包和test.simp.utf8都复制到新建的project的根目录下,把SegDemo.java放到src源代码目录下。(注意:JDK需要1.8)如下图所示:




step2: 打开页面SegDemo,看一下源代码,如下图所示:



在当前页面Run As -> Run Configurations,在VM arguments中写入参数,由于Stanford-Sementer占用的内存比较大,所以需要设置VM arguments,不然就会超内存。如下图所示:


然后可以运行了,运行的结果如下图所示:



说明:这个运行结果对应的源语料是直接在源程序中写的一句话,当然我们也可以把需要分词的源语料作为参数文件传入,即project中在step1中添加的test.simp.utf8文件,使用test.simp.utf8文件的过程如下图所示:


重新运行结果如下:



注:我使用的是myecliple,当时在控制台输出中文时显示乱码,因此需要改一下编码方式,如下图所示:


0 0
原创粉丝点击