雷: @wei 下一步要说明的是deep parsing的结果比传统的IE(information extraction)的好在哪里,要有一个solid的证明。
wei: 这个问题以前已经答过了,可能没特别阐明。我在博文中说,简单的factoid问题,那些可以用 entity 来回答的问题,when where who 之类,deep parsing 就可以支持很好的问答系统了。而复杂的问题(譬如,how 和 why)或者专门领域的问题,还是先做 IE 把可能的答案存在库里,然后支持问答系统为好。
从原理上看,parsing 的结果是独立于领域的句法树,好处是可不变应万变,坏处是不容易整合。
IE 不同,IE 是预先定义的语用层面的template(实质就是语用树),它比句法树要深入。
在句法树到语用树的mapping过程中,已经创造了更好的针对语用的整合条件。
一般而言,两者应该是互补的,IE 支持问答或搜索是最精准的,但不能应对事先没有抽取的信息;deep parsing 是无需事先预定的,可以作为 IE 的backoff
说到底就是从句法树到语用树,是 offline indexing 时候做,还是 on the fly retrieval 时候做。前者就是借力 IE,后者就是直接依仗 SVO。做前者需要语言学家和领域数据专家,他们可以预见同一个抽取目标的各种表达形式。做后者是直接面对(power)users
无需专家。
换一个角度就是,如果一类问题的表达形式很多,而且冗余度不够,那么须上 IE 才好。如果冗余度大,基本表达形式(SVO等,譬如问产品发布的信息,从关键动词 release 和 launch 驱动一个 SVO:Company “launch/release” Product)很容易就搞定, 那么 deep parsing 就足足有余了。IR 角度可以这样看 backoff model:
Input:query(or question)
Output:
1. if IE store has answer, then return answer with confidence
2. else if SVO can be matched (by power user) to retrieva answers, then return answer with confidence
3. else provide keyword search results
雷: @wei 是。这个是factbase的东西。比如,在做文章分类方面,比传统的方法要高明多少?
传统的文章分类是取实词,做一个巨大的矩阵,余弦处理
Wei:雷,你说的那是分类,不是 parsing,分类是粗线条的活计,应用很广,但回答不了啥问题。parsing 是条分缕析,能精准回答问题。
雷: @wei 是的。我想说怎么利用parsing的结果做分类。第一,是不是可以把分类做的更好;第二,怎么做会更好更有用
雷: 比如,通过parsing,是不是可以获得主要的实词(文章主要的一些词)?
wei: parsing 做文章分类,一方面有点牛刀宰鸡,另一方面最后还是需要借力统计 (见:手工规则系统的软肋在文章分类),因为 parsing 的结果是树,不是林。如果要看到整个林子,起码要对树木做一个统计,最简单的统计是 majority vote。
雷: 如果parsing文章后(深度的那种),获取主要的实词,其他的词就可以抛弃了。那样的话,分类的可以更加精准,而且还可以做分类的分类,多级的分类
wei: 单是为了获取实词,不必做 parsing,stop words 过滤掉就大体齐了。parsing 的好处是出了句法关系,但在文章分类中把句法关系使用得法并不容易。文章分类的本性是ngram密度(density)问题。
ngram 这名字谁起的?里面不就有 gram 嘛。当年没起名叫 nword,ntoken or nterm,而是 ngram,可以认为是因为当n个词(一般也就两三个词,n=2 or n=3,再多就是 sparse data 了,没啥统计价值)成为一个有次序的串,而不是一个bag(set),就意味着把语法中最重要的一个因素词序隐含地带入了,实际是对文法的粗线条模拟。ngram 是直接从语料来的,这就保证了它包含了一些 open-eneded strings,而不是仅仅局限于词典。这样看来 ngram 实际上是语法的碎片化、最小化,然后加上条件概率,再把碎片化的ngrams重新串起来。先打碎,再整合,来模拟parsing的效果。
统计NLP的几乎所有的成果都是基于这个模拟文法的原理。
雷: 传统的分类中,bag of words还是主流吧
wei: bag of words 中的 words 不仅仅是词,而是包含了 ngram 自由组合,因此也还是模型了parsing
白: IE和deep parsing其实是有联系的。利用统计上显著的几跳,就可以把parse tree 拼接成IE tree。只要允许ngram隔空打炮,可以间接模拟parsing。按成份的“能量”,决定它能打进多远的滑动窗口里。
雷: parsing的power应该是读出了文章的主要概念和这些概念之间的关系。在好像是提交文章时要提交一些关键词。但是作者提交的关键词有限。
wei: 说清了 ngram 的原理,回头再看 deep parsing 对于分类的功用。deep parsing 不借助统计,实际上是不适合做文章分类的。因为 parsing 是见木不见林,而分类要求的是林的视点。
然而,可以想见,deep parsing 以后,利用其结果再做统计,理论上可以做到更好的分类。譬如, SVO解析以后,至少可以把他看成是一个更高级的 ngram, SV 是 bigram, VO 是 bigram, SVO 是trigram.
雷: @wei 是的。在做好deep parsing后,统计其实词和关系, 那种统计就是纯粹的描述统计了. 统计时,比如,有多少S是相同的,多少O是相同的,还有这些S和O在概念上的发布的计算. 这些都是假设“deep parsing”有了好的解析结果后。抓住主要的东西,割舍次要的,会有更好的分类?
wei: 但这个 ngram 已经不是简单序列的基础上,而是可以涵盖long distance了, 因此理论上应该更反映文章的语义类别,利用这样的ngram,然后再用统计的方法,理论上可以做更好的分类。但是实际上,也有弄巧成拙的时候。因为,parsing 总是没有 keywords 鲁棒,如果也同时用keywords垫底,系统增加了复杂度,怎样做smoothing才好,并不是一件容易的事儿。
白: 如果反过来,deep parsing还指望知识层面消歧,那就“活锁”了。如何不陷入livelock,考验智慧。
wei: 白老师,"deep parsing还指望知识层面消歧" 是天经地义的。天经地义是因为句法不能预测千变万化的语用场景。句法如果能预测语用,那就失去了 generalization 的一面了,反而不妙。
语言学之所以有威力,正是基于句法结构(句型) 是有限的,而且很大程度上是 universal 的,对各个语言都通用。
全世界语言的 argument structure,都是 SVOC (主谓宾补) 及其变体。
而语用的树是因领域、因产品、甚至因用户而有所不同的,根本不能归一。
语言的归语言,语用的归语用。这种分工才最经济科学.
总结一下:deep parsing 最擅长支持信息抽取,因为抽取要求看清每一颗树。但parsing做分类就很 tricky,因为分类要求的是看林子。看林子还是统计拿手,ngram/keywords 常常就搞定,而且 robust。当然,理论上 parsing 可以使得分类更上一个台阶,实际上很难说,仍然是一个研究性课题,而不是成熟实用的技术。
【相关博文】
手工规则系统的软肋在文章分类
【立委科普:基于关键词的舆情分类系统面临挑战】
【置顶:立委科学网博客NLP博文一览(定期更新版)】
https://blog.sciencenet.cn/blog-362400-903389.html
上一篇:
Linguist is born, not acquired下一篇:
从农民工干活儿的模式看教育和训练的重要性