文章目录[隐藏]
介绍
我是毕业设计需准备要搞这个东西,发现讨论的人挺少的,也没找到足够的文档,许多步骤并不是一蹴而就的,有着各种各样的坑存在!我这里就说说我整个流程以及碰到的一些步骤!仅供参考,鬼知道你那碰到了什么问题!还有到目前为止我都不清楚这玩意具体咋配置和使用的,目前给我的感觉就是语义分析(能运行的例子如此),能想到和自己应用数据结合的点就在网站关键字的提取这一点!至于具体呢!我还得多玩玩才清楚,这目前配置就只是能简单运行,连中文都还没搞定!
安装
基于CENTOS7
环境配置
- 清华源 | 参考
- 请配置代理,否则可能无法安装(githubcontent啥之类的无法访问,我当时白天可以访问,晚上就不行了,搞得我以为是Host配置问题,还修改重启了好几次),我自己用的虚拟机,所以在Win环境下找到VMnet8的IP地址,然后再虚拟机的网络设置里面把代理设置好即可! 实体机请参考:Linux下的代理工具:Qv2ray | Linux下的V2rayGUI客户端:V2rayL
- git安装
yum install git
安装
deepdive
- 安装(选1)
bash <(curl -fsSL git.io/getdeepdive)
- 添加配置环境变量
vi ~/.bash_profile
内容如下
export PATH=~/local/bin:"$PATH"
- 更新环境变量
source ~/.bash_profile
postgres
- 官方教程
不建议使用,我自己配置发现无法启动!而且不清楚密码账户之类的,更不用说运行了!
bash <(curl -fsSL git.io/getdeepdive) postgres
- 自己安装
参考教程 |https://info.crunchydata.com/blog/how-to-get-started-with-pgbackrest-and-postgresql-12
sudo yum -y install https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm
sudo yum -y install postgresql12-server postgresql12-contrib pgbackrest
sudo /usr/pgsql-12/bin/postgresql-12-setup initdb
sudo systemctl enable postgresql-12.service
sudo systemctl start postgresql-12.service
#切换到数据库用户
sudo -iu postgres
#sudo -iu postgres psql -U postgres -c 'SHOW config_file'
psql
# 创建用户
ALTER USER emperinter WITH PASSWORD 'emperinter'
# 创建数据库
CREATE DATABASE deepdive_spouse_emperinter OWNER emperinter;
# 赋予用户数据库创建权限,后续do aritlces报错时发现的
alter user emperinter createdb;
- 测试是否创建可以连接成功
psql -U emperinter -d deepdive_spouse_emperinter -h 127.0.0.1 -p 5432
使用
仅仅是能跑动,具体咋用的不清楚。还有一些按各种教程也得不到数据!emmm...其实也挺想使用Mysql的,看官网支持,但找到的教程都是postgresql
下载spouse_example例子
bash <(curl -fsSL git.io/getdeepdive) spouse_example
最终会得到如下的文件目录:
配置好postgresql
注意db.url在spouse_exam....文件夹下面
注意配置postgresql的url地址:
echo "postgresql://emperinter@localhost:5432/deepdive_spouse_emperinter" > db.url
数据加载
数据也在spouse......下面
ln -s articles-1000.tsv.bz2 input/articles.tsv.bz2
deepdive处理中文
这一步骤仅作参考,拿中文试了一下,和参考的教程不一样,应该是配置失败了,具体就不去清楚了!还得多玩玩!我参考了两个教程:https://zhuanlan.zhihu.com/p/43143014、https://codingcat.cn/pages/d1b01f/#%E9%85%8D%E7%BD%AE%E4%B8%AD%E6%96%87
由于deepdive默认是处理英文,因此需要做一些变动。 具体的做法:
- 去https://nlp.stanford.edu/software/corenlp-backup-download.html 注意到最新的模型为stanford-chinese-corenlp-2018-02-27-models.jar,当前的version为3.9.1,注意高版本的后面编译加载之后会报错,还是建议选择低版本的模型stanford-chinese-corenlp-2016-01-19-models.jar。
-
下载完成之后放入 /home/emperinter/spouse_example-0.8-STABLE/udf/bazaar/parser/lib
- 执行如下命令对整个工程进行编译
cd .. # 到paraser目录下
sbt/sbt stage
- 执行如下通过postman进行测试
./run.sh -p 8080
以post方式请求数据,得到的结果如下:
wget --post-data="hello world " http://127.0.0.1:8080
head index.html
看结果应该是失败了!
[emperinter@192 bazaar]$ sudo wget --post-data="执行上面的处理命令 ,对articles中的全部内容进行处理的话需要较长时间(我跑了约40分钟),也挺占内存,可以在导入articles数据的时候进行一些限制,比如修改tsv只取前面几 条,或者导入postgresql之后另建一张表只取前面几条" http://127.0.0.1:8080
--2021-01-16 18:42:08-- http://127.0.0.1:8080/
Connecting to 127.0.0.1:8080... connected.
HTTP request sent, awaiting response... 200 OK
Length: 1327 (1.3K) [text/plain]
Saving to: ‘index.html.1’
100%[=========================================================================================================================================================================>] 1,327 --.-K/s in 0s
2021-01-16 18:42:08 (16.8 MB/s) - ‘index.html.1’ saved [1327/1327]
[emperinter@192 bazaar]$ head index.html.1
1 执行上面的处理命令 ,对articles中的全部内容进行处理的话需要较长时间(我跑了约40分钟),也挺占内存,可以在导入articles数据的时候进行一些限制,比如修改tsv只取前面几条,或者导入postgresql之后另建一张表只取前面几条 {"执行上面的处理命令",",","对articles中的全部内容进行处理的话需要较长时间","(","我跑了约40分钟",")",",","也挺占内存",",","可以在导入articles数据的时候进行一些限制",",","比如修改tsv只取前面几条",",","或者导入postgresql之后另建一张表只取前面几条"} {"执行上面的处理命令",",","对articles中的全部内容进行处理的话需要较长时间","(","我跑了约40分钟",")",",","也挺占内存",",","可以在导入articles数据的时候进行一些限制",",","比如修改tsv只取前面几条",",","或者导入postgresql之后另建一张表只取前面几条"} {"CD","CD","NN","CD","CD","NN","CD","CD","CD","NN","CD","NN","CD","NN"} {"NUMBER","NUMBER","O","NUMBER","NUMBER","O","NUMBER","NUMBER","NUMBER","O","NUMBER","O","NUMBER","O"} {0,10,11,38,39,47,48,49,54,55,79,80,93,94} {"number","num","","num","num","nn","num","num","num","nn","num","nn","num","dep"}{2,3,0,14,14,14,14,14,14,14,14,14,14,3}
[emperinter@192 bazaar]$
运行
deepdive compile
deepdive compile
deepdive do articles
如果提示:无法创建数据库,则请赋予empeinter数据库创建权限,详情请看下面的步骤!
deepdive do articles
会在vi模式显示一些配置,:wq 保持退出即可运行!会用到git同时会下载许多文件,注意联网配置及其是否需要代理!还有这东西运行花费的时间挺长的,有时候因为网络的问题还得多次运行!
当前步骤是将tsv中的文件导入到postgre中,为nlp做预备工作。
deepdive do sentences
步骤基本和上面的一样
deepdive do sentences
碰到的问题
psql: FATAL: Ident authentication failed for user “postgres”
- 解决方法,把配置里面的intent或peer换成trust或md5,详情请参考https://stackoverflow.com/questions/2942485/psql-fatal-ident-authentication-failed-for-user-postgres
find / -name pg_hba.conf
vi /home/emperinter/postgres.db/pg_hba.conf #两个都可以尝试一下,我这里时改这个
service postgresql-12 restart #重启服务
psql -U emperinter -d deepdive_spouse_emperinter -h 127.0.0.1 -p 5432#测试连接
play-json not found
- 错误如下
....
2021-01-16 16:56:37.575683 [error] (*:update) sbt.ResolveException: unresolved dependency: com.typesafe.play#play-json_2.10;2.2.1: not found
2021-01-16 16:56:37.610570 [error] Total time: 18 s, completed Jan 16, 2021 4:56:37 PM
‘run/ABORTED’ -> ‘20210116/165556.512647289’
- 修改build.sbt配置
看日志发现是配置在build.sbt文件中的,就各种测试,emm,最后没想到就是少打了一个s导致的,源文件中typesafe的网站是http协议,改成https协议就行了!你说惊喜不?