예제 #1
0
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
예제 #2
0
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
예제 #3
0
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'
])
예제 #4
0
 def __init__(self):
     Enum.__init__(self)
     self.initdict = {}
     self.labelMap = TreeMap({})  # Treemap()对象
예제 #5
0
파일: NS.py 프로젝트: michaelliu03/py-seg
#-*-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'
])
예제 #6
0
NT = Enum([
    # 上文	[参与]亚太经合组织的活动
    'A',
    # 下文	中央电视台[报道]
    'B',
    # 连接词	北京电视台[和]天津电视台
    'X',
    # 特征词的一般性前缀	 北京[电影]学院
    'C',
    # 特征词的译名性前缀 	美国[摩托罗拉]公司
    'F',
    # 特征词的地名性前缀 	交通银行[北京]分行
    'G',
    # 特征词的机构名前缀	  [中共中央]顾问委员会
    'H',
    # 特征词的特殊性前缀	 [华谊]医院
    'I',
    # 特征词的简称性前缀 	[巴]政府
    'J',
    # 整个机构 [麦当劳]
    'K',
    # 方位词
    'L',
    # 数词 公交集团[五]分公司
    'M',
    # 单字碎片
    'P',
    # 符号
    'W',
    # 机构名的特征词	国务院侨务[办公室]
    'D',
    # 非机构名成分
    'Z',
    # 句子的开头
    'S'
])
예제 #7
0
# !/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',
])
예제 #8
0
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'
])