信息抽取的内容在《Natural Language Processing》第7章,对于文本的信息抽取,命名实体及其关系的识别是至关重要要的,信息抽取分为以下几个步骤:
1. 文本切分,将string类型的文本划分为list类型的句子
2. 句子切分,将每个list类型的句子划分成由单词或chunk组成的list
3. 词性标注,生成由一个list,其组成内容是多个形如(word,lable)的tuple
4. 命名实体识别,生成各个tree组成一个list
5. 关系识别,生成一个list,其内容是多个形如(entity,relation,entity)的tuple
在tree的构成中,分块是个重要的过程,如NP(DT,JJ,JJ,NN)可构成一个NP短语。nltk中有重要的类是RegexpParser,分析预先定义的分块语法grammar,得到多个语法规则,然后利用parser函数对句子分析,得到语法树。下面就介绍一个RegexpParser分析grammar的过程和parser函数的解析过程。
- RegexpParser类
调用:cp=nltk.RegexpParser(grammar)
输入:分块语法grammar,有一个或多个识别块信息的正则表达式,如:
grammar = r"""
NP: {<.*>*} # start by chunking everything
}<[\.VI].*>+{ # chink any verbs, prepositions or periods
<.*>}{<DT>