赞
踩
1.掌握中文分词工具包的使用。
2.掌握基于LTP的词性标注的使用。
3.掌握基于LTP的命名实体识别的使用。
1. PC机或笔记本电脑若干;
2. Window 7及以上版本操作系统;
3. Python 运行环境;
4.安装和配置Anaconda。
文章素材:庐山,位于江西省九江市南,雄峙于长江之滨、鄱阳湖畔,东距鄱阳湖长岭-屏峰卡口7千米,是一座变质岩断石山,其拔地而起,主峰大汉阳峰高程1474米。庐山不仅风景秀丽,而且文化内涵深厚,更集教育名山、文化名山、宗教名山、政治名山于一身。从司马迁“南登庐山”,到陶渊明、李白、白居易、苏轼、王安石、黄庭坚、陆游、朱熹、康有为、胡适、郭沫若等文坛巨匠或陈运和等诗文名家1500余位登临庐山,留下4000余首诗词歌赋。1996年,庐山被联合国教科文组织确定为世界文化遗产,列入《世界遗产名录》。
1.对给定的上述文章素材进行分词。
2.基于文章素材得到的分词结果,进行词性标注,查看标注结果。
3.基于文章素材得到的分词结果,进行命名实体识别,查看识别结果。
4.根据得到的识别结果,提取识别结果中的人名,地名,组织机构名。
1.对给定的上述文章素材进行分词。
注意文件的位置记得换(否则编译会出错)
- from pyltp import Segmentor,SentenceSplitter,Postagger,NamedEntityRecognizer
- #中文分词
- #加载分词模型
- seg= Segmentor("D:\\python_data\\ltp_data_v3.4.0\\ltp_data_v3.4.0\\cws.model")
- #加载词性模型
- pos=Postagger("D:\\python_data\\ltp_data_v3.4.0\\ltp_data_v3.4.0\\pos.model")
- #加载命名实体识别模型
- ner=NamedEntityRecognizer("D:\\python_data\\ltp_data_v3.4.0\\ltp_data_v3.4.0\\ner.model")
- text='庐山,位于江西省九江市南,雄峙于长江之滨、鄱阳湖畔,东距鄱阳湖长岭-屏峰卡口7千米,是一座变质岩断石山,其拔地而起,主峰大汉阳峰高程1474米。庐山不仅风景秀丽,而且文化内涵深厚,更集教育名山、文化名山、宗教名山、政治名山于一身。从司马迁“南登庐山”,到陶渊明、李白、白居易、苏轼、王安石、黄庭坚、陆游、朱熹、康有为、胡适、郭沫若等文坛巨匠或陈运和等诗文名家1500余位登临庐山,留下4000余首诗词歌赋。1996年,庐山被联合国教科文组织确定为世界文化遗产,列入《世界遗产名录》。'
-
- words = seg.segment(text) #分词
- for word in words:
- print(word,end='\\')
2.基于文章素材得到的分词结果,进行词性标注,查看标注结果。
- postags=pos.postag(words)
- for word,postag in zip(words,postags):
- print(word,postag,end='\\')
3.基于文章素材得到的分词结果,进行命名实体识别,查看识别结果。
- netags=ner.recognize(words,postags)
- for word2,netag in zip(words,netags):
- print(word2,netag,end='\\')
4.根据得到的识别结果,提取识别结果中的人名,地名,组织机构名。
- names=set()
- i=0
- for tag,word in zip(netags,words):
- j=i
- if "Nh" in tag:
- if tag.startswith("S"):
- names.add(word)
- elif tag.startswith("B"):
- name=word
- while netags[j]!='E-Nh':
- j+=1
- name+=words[j]
- names.add(name)
- i+=1
- print(names)
- #提取识别到的地名
- places=set()
- i=0
- for tag,word in zip(netags,words):
- j=i
- if "Ns" in tag:
- if tag.startswith("S"):
- places.add(word)
- elif tag.startswith("B"):
- place=word
- while netags[j]!='E-Ns':
- j+=1
- place+=words[j]
- places.add(place)
- i+=1
- print(places)
- #提取识别到的组织机构名
- organizations=set()
- i=0
- for tag,word in zip(netags,words):
- j=i
- if "Ni" in tag:
- if tag.startswith("S"):
- organizations.add(word)
- elif tag.startswith("B"):
- organization=word
- while netags[j]!='E-Ni':
- j+=1
- organization+=words[j]
- organizations.add(organization)
- i+=1
- print(organizations)
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。