北京知识图谱学习小组学习参考,第一期第一周:知识提取

Github版在这里

知识提取是要解决结构化数据生成的问题。但是广义上讲,知识提取是数据质量提升中的一环,各种提升数据质量的方法,都可以视为某种知识提取。学术上一般是用自然语言处理的方法,但在实践中通常是利用规则。

我们要熟悉的概念和工具有 (假设大家已经熟悉了Python)

正则表达式

正则表达式(Regular Expression, regex)是字符串处理的基本功。数据爬取、数据清洗、实体提取、关系提取,都离不开regex。

教程:

应该掌握的知识点

  • 基本regex语法
  • 用match匹配模式
  • 使用group和提取匹配数据

Regex工具

进阶阅读

中文分词和词性标注

分词也是后续处理的基础。分词做得好,核心秘密在词库,算法的影响反而不太大。分词是会出错的。不过有些场合(比如检索排序),只要错误是一贯的,影响也不是太大。分词后面可以用规则来弥补。工程上很丑陋,上不了台面,但对早期的小项目可能够用了。

词性(Part of Speech, POS)就是中学大家学过的动词、名词、形容词等等的词的分类。一般的分词工具都会有词性标注的选项。

教程:

应该掌握的知识点

  • 用jieba分词和提取词性
  • 使用自定义词典
  • 熟悉中文词性标记是什么(如n nr v)

扩展阅读:

命名实体识别

用nltk调用Stanford NLP包

  • 下载Stanford NLP包:

http://stanfordnlp.github.io/CoreNLP/index.html#download (CORE, 基本上包含所有的tool,里面有MODELS下载地址)

http://nlp.stanford.edu/software/tagger.html (POS tagger)

http://nlp.stanford.edu/software/CRF-NER.html (NER)

  • 下载Stanford NLP pre-trained models:

Stanford 中文NER Model: http://nlp.stanford.edu/software/stanford-chinese-corenlp-2015-12-08-models.jar

Other NER Models: http://nlp.stanford.edu/software/CRF-NER.html

POS Models: http://nlp.stanford.edu/software/stanford-postagger-full-2015-12-09.zip (包含中文)

  • 代码示例:
import os
from from nltk.tag import StanfordNERTagger

def main():
    st = StanfordNERTagger('english.all.3class.distsim.crf.ser.gz') 
    print st.tag('George Washington is the president of the United States.'.split())

if __name__ == "__main__":
    os.environ["CLASSPATH"] = "~/Library/stanford-ner-2015-12-09"
    os.environ["STANFORD_MODELS"] = "~/Library/stanford-ner-2015-12-09/models"
    main()

可以更改tagger和models 比如NER,中文models

记得设置CLASSPATH和STANFORD_MODELS

  • Other Tutorials and references:

RPI季恒教授关于name tagger: http://nlp.cs.rpi.edu/course/spring14/lecture6.pdf

NLTK-Stanford taggers: http://www.nltk.org/api/nltk.tag.html#module-nltk.tag.stanford

Stanford NER PPT: http://nlp.stanford.edu/software/jenny-ner-2007.ppt

作业

综合分词工具和正则表达式提取邮件签名档

下面有几个来自真实邮件的签名档,请尽可能提取下面的关键字段

  • 姓名
  • 单位
  • 电话号码
  • 电子邮件

如何提交作业:fork kg-beijing 仓库,在class1/week1/homework目录下建一个自己id的子目录,把自己的代码、运行结果放在里面,提交pull request


刘三 Liu, San
+86 15912348765
sfghsdfg@abc.org.cn
--------------------------
李四
北清大数据产业联合会
电话:010-34355675
邮箱:lisi@beiqingdata.com
地址:北京市海淀区北清大学东楼201室
--------------------------
John Smith
Data and Web Science Group
University of Mannheim, Germany

http://dws.informatik.uni-mannheim.de/~johnsmith
Tel: +49 621 123 4567
--------------------------
王五
CSDN-全球最大中文IT技术社区(www.csdn.net)
电话:010-51661202-257
手机:13934567890
E-mail:gdagsdfs@csdn.net
QQ、微信:34534563
地址:北京市朝阳区广顺北大街33号院一号楼福码大厦B座12层
--------------------------
张三
北京市张三律师事务所|Beijing Zhangsan Law Firm
北京市海淀区中关村有条街1号,邮编:100080
No. 1 Youtiao Street , ZhongGuanCun West, Haidian District, Beijing 100080
Mobile: 15023345465|Email: dfgasedt@126.com

(一个更大的不公开的测试集将通过邮件分享给大家)

KG第一次线下聚会

  • 特邀讲者:丁海星,介绍正则表达式的高级玩法 正则表达式 PPT
  • 小组成员:胡杨,命名实体识别学习心得分享 NER PPT

评论

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注