第一篇
1.虚拟机安装CenOS系统虚拟机如何安装系统
2.Linux系统基本命令学习Linux学习
3.环境准备( 案例来自于:支持中文的deepdive:斯坦福大学的开源知识抽取工具(三元组抽取)
![](https://img.haomeiwen.com/i13973716/4863166b50272d45.png)
问题:
1.在CenOS系统中不能解压CNdeepdive .zip文件:解决方案
![](https://img.haomeiwen.com/i13973716/4c31f279ac901ab6.png)
2.使用pg_ctl管理postgresql数据库报错:解决方案
给当前用户添加数据库管理权限
虚拟机下CenOS系统环境准备后:
![](https://img.haomeiwen.com/i13973716/f891845cde018180.png)
由于未找到股权交易数据,实验没有进行下去。
![](https://img.haomeiwen.com/i13973716/c6a431e906f8b1bb.png)
第二篇
官网实验继续
一、实验准备
![](https://img.haomeiwen.com/i13973716/54253d301c8c0408.png)
实验教程
根据说明,transaction文件中所包含的文件如图所示,其中db.url是执行行命令生成的,而app.ddlog和deepdive.conf是创建文本文档生成的。
![](https://img.haomeiwen.com/i13973716/50abc2087f866bd5.png)
创建了之后,不清楚各个文件的功能,于是查了一下,解释如图所示(参考文章:知识抽取)
![](https://img.haomeiwen.com/i13973716/53e57b9341b287af.png)
参考资料
二、本次实验主要是执行图中的(1)、(2)、(3)步骤。
![](https://img.haomeiwen.com/i13973716/4af1ecee9b037fcd.png)
实验教程
(1)由于在实验步骤中所给网站获取不到数据,于是自己从官网拿了一些其他数据进行实验。
(2)步骤2是将app.ddlog文本打开,将教程里的代码复制进去。
(3)步骤3在执行行命令生成postgresql数据表中,出现以下错误:
![](https://img.haomeiwen.com/i13973716/720f6220f377c5fa.png)
搜索资料,解决办法如图所示(参考文章:CentOS提示 -bash: patch: command not found 解决办法):
![](https://img.haomeiwen.com/i13973716/3c7e2dc3a8c3f1c5.png)
参考资料
解决了上述问题,输入命令deepdive compile && deepdive do transaction_dbdata,出现以下错误:
![](https://img.haomeiwen.com/i13973716/92d2878ba09faa60.png)
查找资料,得知GLIBC版本低,而程序所运行的版本是GLIBC_2.15。解决问题前,先了解以下GLIBC: GLIBC是gnu发布的libc库,即c运行库。GLIBC是Linux系统中最底层的API,几乎其它任何运行库都会依赖于GLIBC。GLIBC除了封装Linux系统所提供的系统服务外,它本身也提供了许多其它一些必要功能服务的实现。
对于CentOS这样的系统,为了追求稳定性往往各种库版本都很低,比如6.5甚至7.0自带的还是glibc2.12, 而ubuntu14.04带glibc2.19。(参考资料:Linux/Centos下/lib64/libc.so.6: version `GLIBC_2.14' not found)
我在虚拟机上使用的是CentOS6.9版本,查找系统所使用的GLIBC最高是glibc2.12,如图所示:
![](https://img.haomeiwen.com/i13973716/0b7dae4e11f88723.png)
CentOS系统上的操作
因此我需要升级CentOS6.9系统中的GLIBC版本,升级到glibc2.15,操作方法如图所示,输入图中的行命令(参考资料:解决/lib64/libc.so.6: version `GLIBC_2.14' not found)
解决以上问题,执行命令 deepdive compile && deepdive do transaction_dbdata 。
![](https://img.haomeiwen.com/i13973716/469e76f6e2c944a2.png)
![](https://img.haomeiwen.com/i13973716/d56d91e7f02cd8c3.png)
CentOS系统上的操作
如下图实验中所写,生成了一个dataflow.svg文件。
![](https://img.haomeiwen.com/i13973716/51a1a22130a9e4fa.png)
实验教程
![](https://img.haomeiwen.com/i13973716/7eba9a55c8797cdd.png)
在run文件夹下生产dataflow.svg文件
本次实验结束后,transaction文件夹下有以下文件。
![](https://img.haomeiwen.com/i13973716/bf706d93aa242c73.png)
第三篇
出现错误如下:
![](https://img.haomeiwen.com/i13973716/eafbf4da29f8e724.png)
错误原因是PostgreSQL数据库没启动,根据资料,将数据库启动,参考资料:参考资料
1.打开PostgreSQL数据库的终端
2. 输入命令:chkconfig --list ,查看所有服务并找到postgre的服务名称
3.若postgre服务是off状态,输入行命令 chkconfig postgresql on ,(默认postgresql不是自启动的,我们需要设置postgresql服务为自启动服务:)
4.输入命令:service postgresql status ,查看服务状态,我出现了错误:postmaster dead but pid file exists,解决方案是删除关于pid的文件,我在postgrex.db文件下找了postmaster.pid文件,删除该文件即可。再次输入命令 service postgresql status,查看有无其他问题
5.输入命令 :service postgresql start ,启动postgresql服务
解决上述问题后,又出现以下问题:
![](https://img.haomeiwen.com/i13973716/00b1b85155f0ed4b.png)
问题待解决。。。
第四篇
对于昨天的【Ident authentication failed for postgres】问题,今天搜索了一天,还没有解决,网上的帖子基本是的解决方案是修改文件pg_hpa.conf里的内容(修改的是红线框里的内容),但都没有成功,如图所示。
![](https://img.haomeiwen.com/i13973716/2445b8930192a8c2.png)
![](https://img.haomeiwen.com/i13973716/a7057dea65f7f70e.png)
今天我还修改了db.url文件内容,参考是官网教程,如图所示:
![](https://img.haomeiwen.com/i13973716/7e4d1ad1ddbf231c.png)
如果只是用postgres用户和密码,登录到PostgreSQL数据库,是可以登录到数据库,可以对数据库进行增删改等操作。
今天也学习了一下PostgreSQL数据库的常用命令
su - postgres //切换用户
service postgresql status //查看服务状态
service postgresql //start启动postgresql-9.4服务
ps -ef | grep postgres //查postgres的进程信息
netstat -tpnl | grep 5432 //查postgres的端口号5432是否已经打开
service postgresql status //查看服务状态
psql -U postgres //postgres用户连接pgsql server
chkconfig postgresql on //设置开机启动postgresql
service postgresql restart //重启数据库
总之,今天主要是练习了操作PostgreSQL数据库,明天继续解决问题
第五篇
根据教程(教程tutorial2.0链接:支持中文的deepdive),执行命令:deepdive do articles时,出现以下错误:could not connect to database postgres :FATAL:Ident authentication failed for user "lala"。在deepdive中连不上PostgreSQL数据库。
![](https://img.haomeiwen.com/i13973716/3016575c888c7a01.png)
deepdive中的db.url文件配置DeepDive application structure如下(url教程:):
![](https://img.haomeiwen.com/i13973716/82ffd7d5106c2506.png)
而直接在PostgreSQL数据库中,用户lala可以登录到postgres数据库,如图所示。
![](https://img.haomeiwen.com/i13973716/526c8c6f647efbe2.png)
PostgreSQL数据库的postgres.db文件夹中,有以下这些文件:
![](https://img.haomeiwen.com/i13973716/7b0ad7c67420a504.png)
其中两个文件(pg_hba.conf和postgresql.conf)的配置信息如下:
![](https://img.haomeiwen.com/i13973716/47d65dc325e84096.png)
![](https://img.haomeiwen.com/i13973716/556fe3d9d0913c16.png)
网上搜索了一下问题(could not connect to database postgres :FATAL:Ident authentication failed for user "lala")的解决方案,跟着上面的教程修改,还是未解决,搜到的一些解决方案链接如下:
1、PostgreSQL pg_ident.conf 文件简析
3、psql: FATAL: Ident authentication failed for user "postgres"
4、psql: FATAL: Ident authentication failed for user "postgres"
5、psql: FATAL: Ident authentication failed for user "postgres"
第六篇
搜索了很多资料都没有解决上一篇文章中的问题,于是我下狠心,卸载数据库,安装了一个更高版本的数据库PostgreSQL9.4(根据这篇安装教程安装的:postgresql 9.4 在linux环境的安装步骤详解),问题得到了解决,真的是舍不了孩子套不着狼啊。
执行命令:deepdive do articles,显示结果如下。
![](https://img.haomeiwen.com/i13973716/7e8eede9a033c44e.png)
![](https://img.haomeiwen.com/i13973716/ea881e09d9b0ac7e.png)
![](https://img.haomeiwen.com/i13973716/0e35c38c36345f99.png)
红色方框是执行命令deepdive do article后,出现的一个小问题。执行黄色方框中的命令:deepdive query '?- articles(id,_).',出现绿色方框里的结果,与教程里的结果一致。
第七篇
搜索了红色方框里的问题,解决方法是修改Python的版本,原因是check_output 从python 2.7 版本开始引入,在低于 2.7版本时,不起作用,而我的CentOS6.9系统自带的是Python2.6.6版本,所以不能用check_output。(参考资料:why? subprocess.check_output() module object has out attribute 'check_output')
![](https://img.haomeiwen.com/i13973716/3b0af2a0bc91a9aa.png)
然而但我升级到Python3.3.0版本时,也会出错,如图所示.
![](https://img.haomeiwen.com/i13973716/830ac60c235d1447.png)
出现上面的问题,是因为Python2和Python3之间语法之间的差别导致的,所以我只能采用2.7到小于3之间的Python版本,于是我安装了,如图所示。
![](https://img.haomeiwen.com/i13973716/461bd63198044f50.png)
执行命令,出现了以下结果,应该还存在着其他问题,还没解决。
![](https://img.haomeiwen.com/i13973716/7cd02b69b34451bc.png)
第八篇
当输入命令:deepdive compile && deepdive do company_mention 时,出现了一下错误:
![](https://img.haomeiwen.com/i13973716/862fb6b6646ce363.png)
![](https://img.haomeiwen.com/i13973716/39fc0f24a2b53e5e.png)
![](https://img.haomeiwen.com/i13973716/14b869a28fed7fa0.png)
![](https://img.haomeiwen.com/i13973716/78c6562c5411e05e.png)
![](https://img.haomeiwen.com/i13973716/e9efeb8725838916.png)
看到这错误时,一头雾水。搜了很多,在莫名地尝试中,问题就解决了。
解决方法启示:如何用Genia语料库训练斯坦福语法分析者?。文章里提到:
![](https://img.haomeiwen.com/i13973716/4b6828de4ebd8f99.png)
看到该用户的回答,我开始检查我的NLP是否安装或是否正确。于是我开始按照这篇教程,安装NLP:Stanford CoreNLP在linux系统中安装与使用。当安装到第三步时,我就不能继续安装。然后我试着重新输入命令时,发现问题得到了解决,非常惊喜。
输入命令:deepdive compile && deepdive do company_mention,出现结果如图所示(直选部分截图),注意两张图的区别:
![](https://img.haomeiwen.com/i13973716/6655b7bc74e6dc81.png)
![](https://img.haomeiwen.com/i13973716/7dfa1ba97cc309d7.png)
输入命令:deepdive compile && deepdive do transaction_candidate,出现结果如图所示(直选部分截图),注意区别:
![](https://img.haomeiwen.com/i13973716/a65c21eb92cac881.png)
![](https://img.haomeiwen.com/i13973716/3e5a0d3aee475807.png)
该命令大概执行了两个小时左右,出现了一下错误:
![](https://img.haomeiwen.com/i13973716/74a25957334f8691.png)
![](https://img.haomeiwen.com/i13973716/44970aec505c5d0f.png)
问题2在教程里有提到,于是我先解决这个问题,解决方案如图所示:
![](https://img.haomeiwen.com/i13973716/546b955107ca071a.png)
将transform.py中company_full_short.csv的相对路路径改为绝对路路径,修改后的结果如图所示:
![](https://img.haomeiwen.com/i13973716/d1aeefe7a483fcb0.png)
于是,问题就得到了解决。
输入命令:deepdive compile && deepdive do transaction_feature,生成特征数据库。再输入命令:deepdive query '| 20 ?- transaction_feature(_, _, feature).' ,查看⽣生成结果。
![](https://img.haomeiwen.com/i13973716/a4ed298e309ac9e2.png)
![](https://img.haomeiwen.com/i13973716/25b4026f0164c209.png)
![](https://img.haomeiwen.com/i13973716/f68db769f0816a34.png)
![](https://img.haomeiwen.com/i13973716/b7f6c126a1a1305e.png)
此时,数据库中所存在的表有7张,都是自动创建的,但数据库db_articles要事先创建好:
![](https://img.haomeiwen.com/i13973716/f1bfdb71e799c0ef.png)
而且,就连之前未执行成功的一条命令,也执行成功了。
![](https://img.haomeiwen.com/i13973716/b24ec6c2506ef70c.png)
实验未完待续。。。
第九篇
实验继续,当执行到命令:deepdive compile && deepdive do probabilities ,出现了以下错误:
![](https://img.haomeiwen.com/i13973716/7940e673502e5e62.png)
上图告诉我们libbz2.so.1.0文件不存在,而且错误中也没告诉我们该文件存储在什么地方,于是我开始在网上搜索资料。
从资料error while loading shared libraries: xxx.so.x" 错误的原因和解决办法中,可以知道错误的原因有两个,没有该文件或者是路径不对。如下图所示:
![](https://img.haomeiwen.com/i13973716/6800ec7ed0ef630e.png)
我从很多资料上看到,libbz2.so.1.0文件进是在/usr/lib 或 /usr/lib64上。
于是,我先开始按照资料pbzip2: error while loading shared libraries: libbz2.so.1.0: cannot open shared object file解决问题,如下图所示:
![](https://img.haomeiwen.com/i13973716/11daf2393b76641d.png)
当我在运行命令:yum install bzip2-libs时,出现了以下问题:
![](https://img.haomeiwen.com/i13973716/8863e0d42f197bd7.png)
根据资料centos---运行yum报错:No module named yum,因为yum基于python写的,是该问题是yum的python版本对应不上目前python环境的版本导致的。 而在之前,应该是我升级过python的版本,所以才会导致以上问题。
根据资料的解决方法,我顺利的解决了问题(当然在这之前,我也尝试了其他的方法),如下图所示:
![](https://img.haomeiwen.com/i13973716/4a73fc704759857b.png)
在我的系统里的修改后的结果如图所示,将第一行#! /usr/bin/python 改为 python2.6(版本好要看自己的系统安装了什么版本,我的系统有python2.6和2.7.7版本)
![](https://img.haomeiwen.com/i13973716/91f55eb59954d228.png)
解决完关于yum的问题,继续解决关于libbz2.so.1.0的问题。
根据资料,我在路径/usr/lib64上继续执行命令yum install bzip2-libs,发现该文件已经存在,于是我开始尝试其他的解决方案。
看来很多资料,很多资料上面是通过建立软连接的方法,来解决问题。
比如,该方法是做一个软链接libbz2.so.1.0,指向已经有的libbz2.so.1.0.6。
![](https://img.haomeiwen.com/i13973716/29c1a116459f2ddb.png)
如资料解决:error while loading shared libraries: libcrypto.so.1.1: cannot open shared object file: No,也是通过建立软连接的方法解决问题的,如下图所示:
![](https://img.haomeiwen.com/i13973716/cdb08f53f9d7414e.png)
在偶然的翻找中,我发现在路径/lib64下,有libbz2.so.1.0.4文件存在,如图所示:
![](https://img.haomeiwen.com/i13973716/40c347eea4b94b37.png)
在/usr/lib64下是这样的:
![](https://img.haomeiwen.com/i13973716/b79b166aaac440e5.png)
于是,我尝试做一个软连接,源文件/lib64里的libbz2.so.1.0.4文件,目标文件是/usr/lib64里的libbz2.so.1.0文件,该做法相当于,若想使用/usr/lib64里的libbz2.so.1.0文件,通过软连接,将指向/lib64里的libbz2.so.1.0.4文件,而实际中真正使用/lib64里的libbz2.so.1.0.4文件,这有点类似于指针的用法,不管在哪里建立目标文件,通过软连接,使用的都是源文件。我的做法在路径/usr/lib64下,输入命令:ln -s /lib64/libbz2.1.0.4 /usr/lib64/llibbz2.1.0 ,输入命令:ls -alhtr | grep libbz2.so.1 ,查看已有的软连接,其中红色方框里,是新建立的软连接。如下图所示:
![](https://img.haomeiwen.com/i13973716/c278f9a514185a8f.png)
路径/usr/lib64下新建的软连接(蓝色方框里的)如图下图所示,如果软连接没有建立成功,则连接右上方不是箭头,是叉的标志。
![](https://img.haomeiwen.com/i13973716/46e213556d683e81.png)
解决完以上问题,再输命令:deepdive compile && deepdive do probabilities,出现以下错误:
![](https://img.haomeiwen.com/i13973716/021f3fc8aac146e3.png)
输入命令:strings /usr/lib/libstdc++.so.6 | grep GLIBCXX ,查看有无GLIBCXX_3.4.15版本,结果如下图所示:
![](https://img.haomeiwen.com/i13973716/99ae8c82a69b3c0c.png)
从图片可知,最高的版本是3.4.13,所以出错了。搜索资料,根据这两篇文章可知,下载更高版本的 libstdc++.so,建立软连接,即可解决问题,于是我下载了64位系统的libstdc++.so.6.0.13版本的文件,将它放在桌面上。在建立软连接之前,先查看有没有已存在软连接与即将要建立的软连接重复,于是输入命令:ls -alhtr | grep libstdc.so.6 ,发现libstdc.so.6已经做了软连接,因此,我们应该把这个软连接先删除,再重新建立软连接,如下图所示。
1.输入:rm -rf ./libstdc.so.6 ,删除原有的连接,
2.输入:ln -s /home/lala/Desktop/soft/libstdc.so.6.0.17 /usr/lib64/libstdc.so.6 ,建立新的软连接。
3.输入:ls -alhtr | grep libstdc.so.6,看看软连接是否建立成功。
4.输入:strings /usr/lib/libstdc++.so.6 | grep GLIBCXX,查看有无GLIBCXX_3.4.15版本。
![](https://img.haomeiwen.com/i13973716/ac480e954d12a3e4.png)
![](https://img.haomeiwen.com/i13973716/32730081e7de1c0b.png)
解决以上问题,再输入命令:deepdive compile && deepdive do probabilities ,出现以下错误:
![](https://img.haomeiwen.com/i13973716/8ae4c6e5ebf6203f.png)
根据出错的文件路径,我查找该文件,应该是该文件损坏了。找了很久,终于在
factors文件里的另一个文件中(factors里就两个文件),找到了fctors.part-1.bin.bz2压缩包,替换了损坏的文件,从而问题得到了解决。
于是,我继续输入命令:deepdive compile && deepdive do probabilities,结果还是有错了,如下图所示:
![](https://img.haomeiwen.com/i13973716/74bb30b38f9699da.png)
这个问题也没有任何资料可以参考,打开run.sh文件,也看不出错误。于是我抱着试试的态度,从【1..4.. 实体抽取及候选实体对⽣生成】的命令:deepdive compile && deepdive do company_mention 开始,把每个命令都重新执行了一遍,结果。。。。。成功了,实验结果如下图所示:
![](https://img.haomeiwen.com/i13973716/65343133617f6c96.png)
所以,实验需要不断的尝试,才会不断地成功。
网友评论