Skip to content

第一期w1:知识提取

mug2mag edited this page Aug 16, 2016 · 29 revisions

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

我们要熟悉的概念和工具有 (假设大家已经熟悉了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

#KG小组北京一期成员github账号:

 姓名       账号 
  1. 胡杨 superhy
  2. 徐卓夫 ipush
  3. 侯月源 moonscar
  4. 田昌海 Jamestch
  5. 高晓燕 elisagao
  6. 侯立莎 yimiwawa
  7. 耿新鹏 xpgeng
  8. 梁方舟 pklfz
  9. 郑胤 Lan09 (TBD)
  10. 王鸿霄 wang101
  11. 李靖 L0113408
  12. 方东昊 Spirit-Dongdong
  13. 丁海星 godlikedog
  14. 付 鹏 pengfoo
  15. 张梦迪 mandyzore
  16. 佟海奇 tongtongqi
  17. 郭兴雨 buptguo
  18. 张志瑛 minenki
  19. 曹志远 smartczy
  20. 周祥 ucaszx
  21. 杨凯文 gentlekevin
  22. 王震 newle
  23. 鲍捷 baojie
Clone this wiki locally