一、信息抽取主要包括三个子任务
1.实体抽取与链指:也就是命名实体识别,NER(Name Entity Recognition)
2.关系抽取:通常我们说的三元组(triple)抽取,主要用于抽取实体间的关系。关系抽取,RE(Relation Extraction)
(1)
关系抽取通常在NER之后。在识别出实体后,还需要抽取两个实体或多个实体之间的语义关系。语义关系通常用于连接两个实体,并与实体一起表达文本的主要含义。
常见的关系抽取结果可以用SPO结构的三元组来表示,即 (主Subject, 谓Predication, 宾Object),eg:中国的首都是北京 ==> (中国, 首都, 北京)
(2)关系抽取的分类
①是否有确定的关系集合:
限定关系抽取:事先确定好所有需要抽取的关系集合,则可讲关系抽取看作是一中关系判断问题,或者说是分类问题
开放式关系抽取:需要抽取的关系集合是不确定的,另一方面抽取预料的所属领域也可能是不确定的
②关系抽取可以用有监督、半监督甚至是无监督的方法来做。
有监督学习:监督学习的关系集合通常是确定的,我们仅需要将其当作一个简单的分类问题来处理即可。高质量监督数据下的监督学习模型的准确率会很高,但缺点就是需要大量的人力成本和时间成本来对文本数据进行标注,且其难以扩展新的关系类别,模型较为脆弱,泛化能力有限
半监督学习利用少量的标注信息作为种子模版,从非结构化数据中抽取大量的新的实例来构成新的训练数据。主要方法包括 Bootstraping 以及远程监督学习的方法
无监督学习一般利用语料中存在的大量冗余信息做聚类,在聚类结果的基础上给定关系,但由于聚类方法本身就存在难以描述关系和低频实例召回率低的问题,因此无监督学习一般难以得很好的抽取效果。
③对于有监督的关系抽取任务,通常也将其分为两大类
Pipline:将实体抽取与关系抽取分为两个独立的过程,关系抽取依赖实体抽取的结果,容易造成误差累积
Joint Model:实体抽取与关系抽取同时进行,通常用模型参数共享的方法来实现
3.事件抽取:相当于一种多元关系的抽取
参考:https://www.cnblogs.com/sandwichnlp/p/12020066.html
二、信息抽取步骤
1.原始文本(Raw Text)
数据层:DB(MySQL、Mongo DB、HBase),Neo4j,Solr,ElasticSearch
2.句子分割(Sentence Segmentation)
3.分词(Segmentation)
中文分词(Tokenization词语切分)
Hanlp、Jieba、ICTCLAS、NLPIR、Stanford CoreNLP
4.词性标注(Postag,POS)
词性,Part of speech
Hanlp、Jieba、ICTCLAS、NLPIR、Stanford CoreNLP
词性标注2标准:
美国,滨州标准:https://blog.csdn.net/qq_32023541/article/details/84632829
中国,北大标准:https://blog.csdn.net/xiaokang06/article/details/17420729
Hanlp词性表:https://blog.csdn.net/u014258362/article/details/81044286
5.命名实体识别(NER)
Hanlp、Stanford CoreNLP
6.关系发现(Relation Detection)
7.实体关系抽取
三、NLU技术
1-5
同义词
文本特征化(TF-IDF、Text Rank、Word2Vector)
文本分类(Fast Text、SVM、朴素贝叶斯)
文本聚类(K-Means、DBSCAN)
四、对话系统分层架构
数据层:DB(MySQL、Mongo DB、HBase),Neo4j,Solr,ElasticSearch
算法层:NLU自然语言理解,NLG自然语言/对话生成
服务层:MVC架构--RPC架构--SOA架构--微服务架构
应用层:对话管理、Task Engine、词典管理、权限管理
作者:西伯尔
出处:http://www.cnblogs.com/sybil-hxl/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。