使用Language Technology Platform,LTP有感

  最近因为实验室的项目需要处理自然语言,导师推荐使用ltp。来来回回编译绕了好几十个弯,而且仍然不知道现在是否走在正道上。anyway,忙了几天,暂且认为是正确的。轻松一下,写写这几天的感受:

  看到使用手册,ltp支持win和linux平台,提供c++和python接口。很好,c++比较熟,python最近也在学,正好打算用ltp来练练手吧。看到使用手册上说在linux运行效率更高,所以就先在ubuntu上编译试试吧。自己本上跑的是最新的ubuntu(12.04),一看gcc版本,4.6。晕,编译ltp的推荐版本是gcc4.1,相差很大。不管了,先用4.6试试吧,说不定能成。configure,make。。。No,果然报错了。唉先不折腾吧。转到win下看看。

  一看说是最好使用2008,唉。本本上装的是2010,改去实验室的台式上编译吧。于是乎在台式上安装vs2008。ok,一切顺利。需要boost,下载之,编译之(起初还以为编译这个很麻烦,没想到很容易,只要在网上搜一个bat,非常顺利,只是花的时间很长,大概两个小时吧,还好自个还有个笔记本)。好,接着编译ltp。

  编译ltp的时候,遇到三个问题:一个是找不到boost/XX.hpp文件,一个是找不到lib文件,再一个是什么忘记了(反正是选择生成文件上的选项)。解决这三个问题可以说是这几天使用vs的最大收获。几番波折,终于把各种dll,lib文件编译好了。按照说明文档提供,copy几行代码测试一下下吧,好激动。copy完,编译...oh NO!!!出问题,link error 2019。百度之,解决不了,google之,还是不行,各种纠结。犹豫着要放弃,转到python接口去。可是python还不熟,更别说调用dll了。不管,还是要试试,一回生,二回熟。。

  转到python接口。先按部就班的弄一下,ok失败again。disappointed!!!几句话,其实已经过了半天。

  好吧,转到ubuntu下,就不信,我用不上ltp。首先当然是安装gcc4.1。这个gcc4.1说来也蛋疼。base、cpp什么安装好了,但是系统保护库,死活不让我装上gcc4.1。气人!!转到较近的4.2吧。有没有搞错,ubunutu的pool里面居然不提供gcc4.2,难道要我自己编译,算罢了。点可能。不想折腾了。后来不知怎的,在台湾某大学的网站上居然找到了4.2,太感谢了,tw。好了,装吧。你说装好就给我用了嘛,可是为什么你还出现各种问题,难道真的要彻底放弃在ubuntu编译。啊啊啊。。。我会被折腾死的。本来以为在ubuntu下能看的更清楚些,看来是不行了。

  再转回win吧。搬到新的实验室网络很差,根本远程不了中心的电脑,只能在本本上编译之,生出了dll。还是不行,本本上装的是64位系统,用python load dll时会报不是有效win32的错。只能祈祷网络快点恢复了。

  又过了一天,白天纠结了很多问题,快到晚上,网络终于通畅了。重来吧。码农就是要经得起折腾。重新编译ltp,boost。ok,都很顺利,果然没错,一回生二回熟。整个过程没有任何问题。到了main阶段的test。好吧,还是有link error 2019,到底是要怎样。谷歌百度上的办法都试过了,可是为什么还是不行。幼稚到重复的随意乱改,被逼到绝路了。唉。。。

  仔细看看错误吧,貌似main中使用了很多的api函数,但是报错的只有几个。难道是这些接口函数的问题。百度谷歌上也有说可能只提供接口,但是实际上并没有实现,或者实现的其实是有错。带着这个疑问,开始探究浏览ltp提供的src。一步步的深入。。。。果然啊,这个函数被注释起来了,天啊,这东西也太不完整了吧。注释起来就别提供api啊,提供api是搞什么,不是害人吗?还好你开源了,不然死也找不到是哪里出了问题啊。然后还有两个其他问题,不管了,现在main中去掉吧,看看其他的能不能正常通过。ok,大功告成!终于没错了。运行之,少了dll,把dll copy到那个目录,还少?我再copy,成了。运行成功。虽然还不知道是不是真的成功,但是至少能运行了。到此,貌似比较了解dll和lib的关系了。

  好吧,累了几天,暂且认为这些天的工作没有白费,也学到了很多东西。但是不能否认,这几天为了编译ltp这个东西,差不多有点废寝忘食。过程中,很多东西都是匆匆浏览,没有深入去了解,这些东西其实也是很有用的,以后有时间再好好看看吧。

  好吧,继续做个有梦想的程序员。

posted @ 2012-07-19 21:57  Lizhi勋  阅读(682)  评论(0编辑  收藏  举报