最新公告
  • 欢迎您光临欧资源网,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入我们
  • 分词基本方法包括基于词典的分词方法(机械分词)

    定义

    我们来看看维基百科上对分词的定义:分词是将一串书面语言分成其组成词的问题。

    中文分词是指将一系列汉字分割成单个单词。分词是将连续的词序列按照一定的规范重新组合成词序列的过程。

    简而言之,中文分词就是让计算机系统自动在中文文本中的单词之间添加空格或其他边界标记。

    中文分词难点

    中文分词是自然语言处理中一项重要的基础研究任务,其主要难点包括分词规范、歧义分词和未注册词识别。

    分词规范:词的概念一直是汉语语言学中一个纠结且挥之不去的问题,即词的抽象定义(什么是词)和词的具体定义(词是什么)有到目前为止还没有给出。公认的权威词汇。

    歧义切分:歧义的切分是中文分词研究中的一个大问题,因为在大量的中文文本中都存在歧义字段。处理此类问题可能需要复杂的上下文语义分析,甚至韵律分析(音调、重音、停顿等)。

    未注册词识别:未注册词也称为生词。一般有两种解释:第一种是指现有词汇中不包含的词;二是指现有的训练语料。单词。在第二种解释下,它也被称为词汇外(OOV)。

    分词的基本方法

    分词的基本方法包括基于字典的方法、基于理解的分词方法、基于统计的分词方法和基于深度学习的分词方法。

    基于字典的分词方法(机械分词)

    该方法本质上是一种字符串匹配方法,将文本字符串中的文本片段与现有字典进行匹配。如果匹配词法分析器的输出是,则将文本片段用作分词结果。然而,基于字典的机械分词会遇到各种各样的问题,其中最常见的包括歧义分词和未注册词。

    常用的字符串匹配方法有:前向最大匹配法(方向从左到右);反向最大匹配法(方向从右到左);最小分割(每个句子中切出的最小单词数)双向最大匹配(从左到右和从右到左进行两次扫描)。

    这种算法的优点是速度快,时间复杂度可以保持在O(n)。

    统计分词方法

    基于统计的分词方法是在大量已分词的文本的前提下,利用统计机器学习模型学习分词的规则(称为训练),从而实现对未知文本的分词. 例如最大概率分词法和最大熵分词法。随着大规模语料库的建立和统计机器学习方法的研究与发展,基于统计的中文分词方法逐渐成为主流方法。

    主要的统计模型有:N-gram(N-gram)、隐马尔可夫模型(HMM)、最大熵模型(ME)、条件随机场(CRF)等。

    基于统计的分词方法包括:N-最短路径法、基于词的n-gram语法模型的分词方法、基于构词的中文分词方法、基于词感知器算法的中文分词方法、基于词的分词方法生成模型和中文分词方法结合判别模型。

    基于深度学习的分词方法

    近年来,深度学习方法为分词技术带来了新的思路,直接使用最基本的向量化原子特征作为输入,通过多层非线性变换,输出层可以很好地预测当前词标记或下一个词。一种行为。在深度学习的框架下,仍然可以使用基于子序列标注的方法词法分析器的输出是,或者基于迁移的方法,半马尔可夫条件随机场。

    这类方法首先嵌入语料库的词,得到词嵌入后,将词嵌入特征输入到双向LSTM,输出层输出深度学习学习到的特征,输入到CRF层获得最终模型。现有方法包括:LSTM+CRF、BiLSTM+CRF等。

    基于理解的分词

    基于理解的分词方法是通过让计算机模拟人类对句子的理解来达到分词的效果。其基本思想是在分词的同时进行句法和语义分析,利用句法和语义信息来处理歧义。

    它通常包括三个部分:分词子系统、句法语义子系统和总控制部分。在总控部分的协调下,分词子系统可以获取单词、句子等的句法和语义信息来判断分词的歧义,即模拟人类理解句子的过程。

    这种分词方法需要使用大量的语言知识和信息。由于汉语知识的普遍性和复杂性,很难将各种语言信息组织成机器可以直接阅读的形式,因此基于理解的分词系统还处于试验阶段。

    分词工具推荐

    解霸

    《Jaba》中文分词:做最好的Python中文分词组件。

    Github地址:

    # 安装:pip install jieba
    # 国内源安装更快:pip install jieba -i https://pypi.tuna.tsinghua.edu.cn/simple
    import jieba
    # 全模式分词
    wordseg_all = jieba.cut("我爱自然语言处理技术!", cut_all=True)
    print("全模式: " + " ".join(wordseg_all))
    # 输出:全模式: 我 爱 自然 自然语言 语言 处理 技术 
    # 精确模式分词
    wordseg = jieba.cut("我爱自然语言处理技术!", cut_all=False)
    print("精确模式: " + " ".join(wordseg))
    # 输出:精确模式: 我 爱 自然语言 处理 技术 !
    # 搜索引擎模式
    wordseg_search = jieba.cut_for_search("我爱自然语言处理技术!") 
    print("搜索引擎模式:" + " ".join(wordseg_search))
    # 输出:搜索引擎模式:我 爱 自然 语言 自然语言 处理 技术 !
    

    SnowNLP

    SnowNLP是一个用python编写的类库,可以轻松处理中文文本内容。

    Github地址:

    # 安装:pip install snownlp
    # 国内源安装:pip install snownlp -i https://pypi.tuna.tsinghua.edu.cn/simple
    from snownlp import SnowNLP
    model = SnowNLP(u'我爱自然语言处理技术!')
    print(model.words)
    # 输出:['我', '爱', '自然', '语言', '处理', '技术', '!']
    

    图拉克

    THULAC(THU Lexical Analyzer for Chinese)是清华大学自然语言处理与社会人文计算实验室开发的一套中文词法分析工具包。它具有中文分词和词性标注功能。

    Github地址:

    # 安装:pip install thulac
    # 国内源安装:pip install thulac -i https://pypi.tuna.tsinghua.edu.cn/simple
    import thulac
    # 默认模式:分词的同时进行词性标注
    thulac_model = thulac.thulac()
    wordseg = thulac_model.cut("我爱自然语言处理技术!")
    print(wordseg)
    # 输出:[['我', 'r'], ['爱', 'v'], ['自然', 'n'], ['语言', 'n'], ['处理', 'v'], ['技术', 'n'], ['!', 'w']]
    # 只进行分词
    seg_only_model = thulac.thulac(seg_only=True)
    wordseg_only = seg_only_model.cut("我爱自然语言处理技术!")
    print(wordseg_only)
    # 输出:[['我', ''], ['爱', ''], ['自然', ''], ['语言', ''], ['处理', ''], ['技术', ''], ['!', '']]
    

    NLPIR

    NLPIR-ICTCLAS中文分词系统。

    Github地址:

    # 安装:pip install pynlpir
    # 国内源安装:pip install pynlpir -i https://pypi.tuna.tsinghua.edu.cn/simple
    # 导入pynlpir包
    # 如果发现加载报错,则需要更换license:https://github.com/NLPIR-team/NLPIR/tree/master/License/
    import pynlpir
    # 打开分词器
    pynlpir.open()
    # 分词:这个工具会同时进行词性标注
    s = "我爱自然语言处理技术!"
    word_seg = pynlpir.segment(s)
    print(word_seg)
    # 输出:[('我', 'pronoun'), ('爱', 'verb'), ('自然', 'adjective'), ('语言', 'noun'), ('处理', 'verb'), ('技术', 'noun'), ('!', 'punctuation mark')]
    

    斯坦福CoreNLP

    斯坦福NLP组开源,支持python接口。

    Github地址:

    # 安装:pip install stanfordcorenlp
    # 国内源安装:pip install stanfordcorenlp -i https://pypi.tuna.tsinghua.edu.cn/simple
    from stanfordcorenlp import StanfordCoreNLP
    # 先下载模型,然后导入,下载地址:https://nlp.stanford.edu/software/
    nlp_model = StanfordCoreNLP(r'stanford-corenlp-full-2018-02-27', lang='zh')
    # 分词
    s = '我爱自然语言处理技术!'
    word_seg = nlp_model.word_tokenize(s)
    print(word_seg)
    # 输出:['我爱', '自然', '语言', '处理', '技术', '!']
    

    汉LP

    HanLP是由一系列模型和算法组成的NLP工具包。它以大快搜索为主,完全开源。目标是普及自然语言处理在生产环境中的应用。

    Github地址:

    # 安装:pip install pyhanlp
    # 国内源安装:pip install pyhanlp -i https://pypi.tuna.tsinghua.edu.cn/simple
    from pyhanlp import *
    s = '我爱自然语言处理技术!'
    word_seg = HanLP.segment(s)
    for term in word_seg:
     print(term.word)
    

    代码已上传:

    参考:

    1.统计自然语言处理

    2.中文信息处理报告-2016

    站内大部分资源收集于网络,若侵犯了您的合法权益,请联系我们删除!
    欧资源网 » 分词基本方法包括基于词典的分词方法(机械分词)

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    欧资源网
    一个高级程序员模板开发平台

    发表评论