在安装好deepdive后:
文件夹:
因子图的推理在app.ddlog里;
主程序文件(原始数据表,中间存储表,从输入到输出的调用的脚本):
数据表定义;
调图用户脚本(udf)—(文本预处理和特征抽取);
因子图定义;
数据库文件:定义数据表的存储位置;
db.url:定义后台所用数据库以及访问的url会基于deepdive支持的数据库加载它本身的JDBC的驱动;
工程配置文件:定义采样及训练方法;learningrate跟学习与采样相关的高参的定义;
输入文件夹(input):存储训练数据及文本;
udf:用户自定义python脚本;
DDlog是一种语法为datalog式,用来编写DeepDive应用的语言。一个ddlog程序会被编译成deepdive格式下的配置文件,我们通常用这个文件来运行我们的应用。
relation_name(
column1_name column1_type,
column2_name column2_type,
…).
对应表示为:数据库名(列变量名称和列变量的类型,…);
一个在关系名后的问号指出了这是一个包含了随机变量(random variable)的变量关系(variable relation),这些随机变量被包含在因子图(factor graph)中。例如,
has_spouse?(relation_id text).
1
定义了一个变量关系has_spouse,并且每个不同的 relation_id 代表了一个不同的变量;
1.1:echo “postgresql://lumy@localhost:5432/transaction” > db.url
1.2: cd /home/lumy/桌面
1.3: cd CNdeepdive
1.4: cd transaction
(cd /home/lumy/桌面/CNdeepdive/transaction)
1.5: deepdive compile
1.6: deepdive do transaction_dbdata
按wq保存并退出;
2、进入nlp模块进行文本处理;
进入到nlp_markup.sh所在的文件夹下对这个模块进行重新编译:
2.1:cd /home/lumy/桌面/CNdeepdive/transaction/udf/bazaar/parser
2.2: sbt/sbt stage
2.3: 调用nlp_markup函数,从articles表中读取数据输入,输出内容存放在sentences表中。
添加自然语言标记
deepdive默认用standford nlp进行文本处理,可以返回句子的分词、lemma、pos、NER
自然语言处理 Natural Language Processing
分词:首先是中文分词,在一句话中,我们要把词分出来,而不是光看单独的子。比如 我 今天 很 高兴 选择合适的字组成合适的词来构成句子
lemma:词元,这个是指这个词实质上的含义,比如cat,cats他们有相同词元。
pos:词性标注,最基本的是动词、名词等等
NER:Named Entity Recognition,可以识别出地名、人名、组织等等;
2.3.1:deepdive compile
2.3.2:deepdive do sentences
调用sentences += 利用nlp_markup(doc_id,content)处理:-抽取出来articles(doc_id,content);
+=:表示累加
2.3.3:在弹出来的窗口里输入:
:wq保存并退出;耐心等待保存,等保存成功后会自动退出;请耐心等待吧;哈哈哈😄!!!
补充:
在 Linux 中使用 vim 时,输入 vim xxx.file 输入好文件内容之后,怎么保存呢?
按 ESC,左下角就可以进行输入
:w 保存但不退出
:wq 保存并退出
:q 退出
:q! 强制退出,不保存
:e! 放弃所有修改,从上次保存文件开始再编辑命令历史
2.3.4:执行以下命令来查询生成结果:
:deepdive query ‘doc_id, index,tokens,ner_tags | 5?- sentences(doc_id,index,text,tokens,lemmas,pos_tags,ner_tags,,,).’
哇哦:报错啦!!!
/home/lumy/local/util/compute-driver/local/compute-execute: 第 140 行: kill: (14471) - 没有那个进程
因子图:
权重有很多都为正的话,说明有很多证据希望表明这对关系实例最终是成立的。
本身不同的var不同的要抽取出来的关系实例它是通过factor(因子)进行共享的,如果说我发现两个变量之间共享因子非常多的话,说明label接近于相同,也就是它们行为非常同步。那么因子共享为两个variable之间的contract。
F2:对称(因为交易是对称的)通过对称去判断;
例如: