继续学习摸索,看到很多博客都在研究Word2Vec,感觉挺有意思,我也来尝试一下。
实验环境:Python3,Java8
Word2Vec的输入是句子序列,而每个句子又是一个单词列表,由于没有这样结构的现成输入,所以决定自己动手对原始语料进行预处理。
NLPIR是一个汉语分词系统,挺感谢张华平博士,便利了我们的文本处理工作。下载地址:http://ictclas.nlpir.org/newsdownloads?DocId=389
这里还有一个自然语言处理与信息检索共享平台(感觉挺好的,有资料,还有演示,个人觉得那个在线演示挺赞的):http://www.nlpir.org/
NLPIR可以应用于C/C++/C#/Java/Python,我尝试了Java和Python两个版本,只是Python版在测试的时候报错:初始化失败!费解了半天也没找出到底是什么原因,因而先转向使用Java版的。
NLPIR-Java使用起来比较简单,首先下载zip文件,我的是【20160405172043_ICTCLAS2016分词系统下载包.zip】
然后解压,调用sample目录下的JnaTest_NLPIR项目即可。有两个地方需要注意:第16行的dll路径,根据自己的路径修改,可以考虑放在项目里;第44行的ICTCLAS路径,即解压文件里的bin下的ICTCLAS2015文件夹的路径,也可以考虑放在项目里。如果这两个文件是放在项目里的,那么解压文件里还有一个Data文件夹需要放在项目里的ICTCLAS2015下。结构如下:
修改好后便可以测试了。
package code;
import java.io.UnsupportedEncodingException;
import utils.SystemParas;
import com.sun.jna.Library;
import com.sun.jna.Native;
public class NlpirTest {
// 定义接口CLibrary,继承自com.sun.jna.Library
public interface CLibrary extends Library {
// 定义并初始化接口的静态变量,该路径根据实际dll路径修改,32位或64位也根据实际情况修改
CLibrary Instance = (CLibrary) Native.loadLibrary(
"D:\\NLPIR\\bin\\ICTCLAS2013\\x64\\NLPIR", CLibrary.class);
public int NLPIR_Init(String sDataPath, int encoding,
String sLicenceCode);
public String NLPIR_ParagraphProcess(String sSrc, int bPOSTagged);
public String NLPIR_GetKeyWords(String sLine, int nMaxKeyLimit,
boolean bWeightOut);
public String NLPIR_GetFileKeyWords(