class BaseNode(object,metaclass=ABCMeta): Status = Enum([ # 未指定,用于删除词条 'UNDEFINED_0', # 不是词语的结尾 'NOT_WORD_1', # 是个词语的结尾,并且还可以继续 'WORD_MIDDLE_2', # 是个词语的结尾,并且没有继续 'WORD_END_3' ]) def __init__(self): self.child = [] self.c ='' self.value = None # 这个类是一个抽象的类 @abstractmethod def getChild(self,c): pass def getValue(self): return self.value def transition(self,path,begin): cur = self for i in range(begin,len(path)): cur = cur.getChild(path[i]) if cur is None or cur.status == BaseNode.Status.UNDEFINED_0: return None return cur
class BaseNode(object): __metaclass__ = ABCMeta # 节点状态 Status = Enum([ # 未指定,用于删除词条 'UNDEFINED_0', # 不是词语的结尾 'NOT_WORD_1', # 是个词语的结尾,并且还可以继续 'WORD_MIDDLE_2', # 是个词语的结尾,并且没有继续 'WORD_END_3' ]) def __init__(self): # 子节点,BaseNode数组 self.child = [] # 节点代表的字符 protected char c self.c = '' # 节点代表的值 protected V value self.value = None @abstractmethod def getChild(self, c): """ 获取子节点 :param c:子节点的char :return: 子节点 """ pass def getValue(self): """ 获取节点对应的值 :return:值 """ return self.value def transition(self, path, begin): cur = self for i in range(begin, len(path)): cur = cur.getChild(path[i]) if cur is None or cur.status == BaseNode.Status.UNDEFINED_0: return None return cur
NR = Enum([ # Pf 姓氏 【张】华平先生 'B', # Pm 双名的首字 张【华】平先生 'C', # Pt 双名的末字 张华【平】先生 'D', # Ps 单名 张【浩】说:“我是一个好人” 'E', # Ppf 前缀 【老】刘、【小】李 'F', # Plf 后缀 王【总】、刘【老】、肖【氏】、吴【妈】、叶【帅】 'G', # Pp 人名的上文 又【来到】于洪洋的家。 'K', # Pn 人名的下文 新华社记者黄文【摄】 'L', # Ppn 两个中国人名之间的成分 编剧邵钧林【和】稽道青说 'M', # Ppf 人名的上文和姓成词 这里【有关】天培的壮烈 'U', # Pnw 三字人名的末字和下文成词 龚学平等领导, 邓颖【超生】前 'V', # Pfm 姓与双名的首字成词 【王国】维、 'X', # Pfs 姓与单名成词 【高峰】、【汪洋】 'Y', # Pmt 双名本身成词 张【朝阳】 'Z', # Po 以上之外其他的角色 'A', # 句子的开头 'S' ])
def __init__(self): Enum.__init__(self) self.initdict = {} self.labelMap = TreeMap({}) # Treemap()对象
#-*-coding:utf-8-*- # @File:NS.py # @Author: Michael.liu # @Date:2019/2/12 # @Desc: NLP Segmentation ToolKit - Hanlp Python Version from collection.enum.Enum import Enum NS = Enum([ # 地名的上文 我【来到】中关园 'A', # 地名的下文刘家村/和/下岸村/相邻 'B', # 中国地名的第一个字 'C', # 中国地名的第二个字 'D', # 中国地名的第三个字 'E', # 其他整个的地名 'G', # 中国地名的后缀海/淀区 'H', # 连接词刘家村/和/下岸村/相邻 'X', # 其它非地名成分 'Z', # 句子的开头 'S' ])
NT = Enum([ # 上文 [参与]亚太经合组织的活动 'A', # 下文 中央电视台[报道] 'B', # 连接词 北京电视台[和]天津电视台 'X', # 特征词的一般性前缀 北京[电影]学院 'C', # 特征词的译名性前缀 美国[摩托罗拉]公司 'F', # 特征词的地名性前缀 交通银行[北京]分行 'G', # 特征词的机构名前缀 [中共中央]顾问委员会 'H', # 特征词的特殊性前缀 [华谊]医院 'I', # 特征词的简称性前缀 [巴]政府 'J', # 整个机构 [麦当劳] 'K', # 方位词 'L', # 数词 公交集团[五]分公司 'M', # 单字碎片 'P', # 符号 'W', # 机构名的特征词 国务院侨务[办公室] 'D', # 非机构名成分 'Z', # 句子的开头 'S' ])
# !/usr/bin/env python # coding=utf-8 # by lsd 2017-06-01 """ 人名识别模式串 @author lishida """ from collection.enum.Enum import Enum NRPattern = Enum([ 'BBCD', 'BBE', 'BBZ', 'BCD', 'BEE', 'BE', 'BC', 'BEC', 'BG', 'DG', 'EG', 'BXD', 'BZ', 'EE', 'FE', 'FC', 'FB', 'FG', 'Y', 'XD', ])
Nature = Enum([ # 区别语素 'bg', # 数语素 'mg', # 名词性惯用语 'nl', # 字母专名 'nx', # 量词语素 'qg', # 助词 'ud', # 助词 'uj', # 着 'uz', # 过 'ug', # 连词 'ul', # 连词 'uv', # 语气语素 'yg', # 状态词 'zg', # 以上标签来自ICT,以下标签来自北大 # 名词 'n', # 人名 'nr', # 日语人名 'nrj', # 音译人名 'nrf', # 复姓 'nr1', # 蒙古姓名 'nr2', # 地名 'ns', # 音译地名 'nsf', # 机构团体名 'nt', # 公司名 'ntc', # 工厂 'ntcf', # 银行 'ntcb', # 酒店宾馆 'ntch', # 政府机构 'nto', # 大学 'ntu', # 中小学 'nts', # 医院 'nth', # 医药疾病等健康相关名词 'nh', # 药品 'nhm', # 疾病 'nhd', # 工作相关名词 'nn', # 职务职称 'nnt', # 职业 'nnd', # 名词性语素 'ng', # 食品,比如‘薯片’ 'nf', # 机构相关(不是独立机构名) 'ni', # 教育相关机构 'nit', # 下属机构 'nic', # 机构后缀 'nis', # 物品名 'nm', # 化学品名 'nmc', # 生物名 'nb', # 动物名 'nba', # 动物纲目 'nbc', # 植物名 'nbp', # 其他专名 'nz', # 学术词汇 'g', # 数学相关词汇 'gm', # 物理相关词汇 'gp', # 化学相关词汇 'gc', # 生物相关词汇 'gb', # 生物类别 'gbc', # 地理地质相关词汇 'gg', # 计算机相关词汇 'gi', # 简称略语 'j', # 成语 'i', # 习用语 'l', # 时间词 't', # 时间词语素 'tg', # 处所词 's', # 方位词 'f', # 动词 'v', # 副动词 'vd', # 名动词 'vn', # 动词“是” 'vshi', # 动词“有” 'vyou', # 趋向动词 'vf', # 形式动词 'vx', # 不及物动词(内动词) 'vi', # 动词性惯用语 'vl', # 动词性语素 'vg', # 形容词 'a', # 副形词 'ad', # 名形词 'an', # 形容词性语素 'ag', # 形容词性惯用语 'al', # 区别词 'b', # 区别词性惯用语 'bl', # 状态词 'z', # 代词 'r', # 人称代词 'rr', # 指示代词 'rz', # 时间指示代词 'rzt', # 处所指示代词 'rzs', # 谓词性指示代词 'rzv', # 疑问代词 'ry', # 时间疑问代词 'ryt', # 处所疑问代词 'rys', # 谓词性疑问代词 'ryv', # 代词性语素 'rg', # 古汉语代词性语素 'Rg', # 数词 'm', # 数量词 'mq', # 甲乙丙丁之类的数词 'Mg', # 量词 'q', # 动量词 'qv', # 时量词 'qt', # 副词 'd', # 辄,俱,复之类的副词 'dg', # 连语 'dl', # 介词 'p', # 介词'把' 'pba', # 介词'被' 'pbei', # 连词 'c', # 并列连词 'cc', # 助词 'u', # 着 'uzhe', # 了喽 'ule', # 过 'uguo', # 的底 'ude1', # 地 'ude2', # 得 'ude3', # 所 'usuo', # 等 等等 云云 'udeng', # 一样 一般 似的般 'uyy', # 的话 'udh', # 来讲 来说 而言 说来 'uls', # 之 'uzhi', # 连(“连小学生都会”) 'ulian', # 叹词 'e', # 语气词(delete yg) 'y', # 拟声词 'o', # 前缀 'h', # 后缀 'k', # 字符串 'x', # 非语素字 'xx', # 网址URL 'xu', # 标点符号 'w', # 左括号,全角:( 〔 [ { 《 【 〖 〈 半角:( [ { < 'wkz', # 右括号,全角:) 〕 ] } 》 】 〗 〉 半角: ) ] { > 'wky', # 左引号,全角:“ ‘ 『 'wyz', # 右引号,全角:” ’ 』 'wyy', # 句号,全角:。 'wj', # 问号,全角:? 半角:? 'ww', # 叹号,全角:! 半角:! 'wt', # 逗号,全角:, 半角:, 'wd', # 分号,全角:; 半角: ; 'wf', # 顿号,全角:、 'wn', # 冒号,全角:: 半角: : 'wm', # 省略号,全角:…… … 'ws', # 破折号,全角:—— -- ——- 半角:--- ---- 'wp', # 百分号千分号,全角:% ‰ 半角:% 'wb', # 单位符号,全角:¥ $ £ ° ℃ 半角:$ 'wh', # 仅用于终##终,不会出现在分词结果中 'end', # 仅用于始##始,不会出现在分词结果中 'begin' ])