前言

本文以介绍 nlp 常见分词方法为目的,具体效果请大家自行辨别

中文分词

jieba

  • 代码

    jieba.enable_paddle()  # 启动paddle模式。 0.40版之后开始支持,早期版本不支持seg_list = jieba.cut(data, use_paddle=True)  # 使用paddle模式print("Paddle Mode: " + '/'.join(list(seg_list)))seg_list = jieba.cut(data, cut_all=True)print("Full Mode: " + "/ ".join(seg_list))  # 全模式seg_list = jieba.cut(data, cut_all=False)print("Default Mode: " + "/ ".join(seg_list))  # 精确模式seg_list = jieba.cut_for_search(data)  # 搜索引擎模式print("Search Mode: " + "/ ".join(seg_list))
    

自定义词典

央视
神丹牌
莲田牌
土鸡蛋
新京报
湖北神丹健康食品有限公司
龙头企业
315晚会
  • 新增代码

    jieba.load_userdict("../exp2/Userdict.txt")
    

详情见github

SnowNLP

  • 代码

    def snow_nlp(data):s = SnowNLP(data)print(s.words)print(s.pinyin)
    

详情见github

THULAC

  • 代码

    def thulac_nlp(data):thu1 = thulac.thulac()  # 默认模式text = thu1.cut(data, text=True)  # 进行一句话分词print(text)
    

详情见github

NLPIR

  • 代码

    def pynlpir_nlp(data):pynlpir.open()ans = pynlpir.segment(data)print(ans)
    

详情见github,CSDN

StanfordCoreNLP

  • 代码

    def stanford_nlp(data):# _*_coding:utf-8_*_with StanfordCoreNLP(r'D:\stanford-corenlp-full-2018-02-27', lang='zh') as nlp:print(nlp.word_tokenize(data))
    

详情见github

英文分词

NLTK

  • 代码

    def nltk_nlp(data):ans = nltk.word_tokenize(data)print(ans)
    

详情见nltk.org,github,简书

Spacy

  • 代码

    def spacy_nlp(data):nlp = spacy.load("en_core_web_sm")doc = nlp(data)ans = [token.text for token in doc]print(ans)
    

详情见csdn,spacy.io

StanfordCoreNLP

  • 代码

    def stanford_nlp(data):# _*_coding:utf-8_*_with StanfordCoreNLP(r'D:\stanford-corenlp-full-2018-02-27') as nlp:print(nlp.word_tokenize(data))
    

详情见github

常见问题

问题一

  • 问题:在尝试使用StanfordCoreNLP进行中文分词时,发生了报错现象。报错信息为编码不正确,使用的为4.4.0版本。

  • 解决:怀疑是Python版本与StanfordCoreNLP版本不匹配引发的错误。github仓库中提供的版本对应表Python版本最低到3.7,而我使用的是3.6版本。之后尝试StanfordCoreNLP-3.7.0版本,但分词结果全为空。最后更改到StanfordCoreNLP-3.9.1版本(尝试了github仓库中提供样例使用的版本),得到正确的结果

    Py Version CoreNLP Version
    v3.7.0.1 v3.7.0.2 CoreNLP 3.7.0
    v3.8.0.1 CoreNLP 3.8.0
    v3.9.1.1 CoreNLP 3.9.1

问题二

  • 问题:在尝试使用Spacy进行英文分词时,加载模型使用spacy.load("en"),被告知,该方法已经被抛弃,建议使用spacy.load("en_core_web_sm")。之后,使用spacy.load("en_core_web_sm"),被告知找不到模型en_core_web_sm
  • 解决:python -m spacy download en_core_web_sm大概率是不会成功的,我也确实没有通过这种方式成功安装。直接从github上下载,然后使用命令pip install en_core_web_sm-2.3.0.tar.gz进行安装,即可成功安装
  • 详见Spacy问题的解决

nlp--常用分词方法相关推荐

  1. NLP 《分词方法》

    在NLP中,最基础的处理的就是分词,不论是一个网页还是一片文章,还是一段话,都是需要先分词的才能去搞清楚这段话的意思的,这里介绍两个最经典的方法,都是基本的算法. 一:前向最大匹配(forward-m ...

  2. NLP(2) | 中文分词分词的概念分词方法分类CRFHMM分词

    NLP(1) | 词向量one hot编码词向量编码思想 分词的概念 简单来说就是把词进行分开,分词的难点: 1.如何避免歧义,如:"白开水不如果汁甜".如何让机器避免将" ...

  3. NLP入门(1)-词典分词方法及实战

    分词是自然语言处理中最基本的任务之一,而词典分词是最简单.最常见的分词算法,仅需一部词典和一套查词典的规则即可. 利用词典分词,最主要的是定制合适的切分规则.规则主要有正向最长匹配.逆向最长匹配和双向 ...

  4. 中文分词方法汇总笔记

    中文分词方法汇总笔记 分词难点 分词方法 传统基于字典(规则分词) 基于机器学习的分词方法 统计分词 语言模型 隐马尔可夫 HMM 模型 其他 分词工具和云服务 其他 感谢知乎 @华天清 的总结 分词 ...

  5. 【数据挖掘】NLP中文分词概述

    在大数据时代,信息量越来越大,给你一篇百万文字的文章,你保证你有耐心慢慢看完吗?如果是热点新闻,我们当然会希望通过一段简洁明了的文字来概述整个文章,这时候就需要提取文章的关键字:每当我们遇到不会的问题 ...

  6. 详细介绍NLP中文分词原理及分词工具

    基于词表的分词方法 正向最大匹配算法FMM 从左到右扫描文本,得到词的最大匹配. 案例分析: 用正向最大匹配法对"秦皇岛今天晴空万里"进行中文分词,见下表. 词典 :"秦 ...

  7. NLP——常用工具汇总

    NLP--常用工具汇总 目录 1. 中文分词工具LAC:https://github.com/baidu/lac 2. 新闻网页正文通用抽取器GNE:https://github.com/kingna ...

  8. 中文NLP的分词真有必要吗?李纪为团队四项任务评测一探究竟 | ACL 2019

    作者| Yuxian Meng.Xiaoya Li.Xiaofei Sun.Qinghong Han.Arianna Yuan. Jiwei Li 译者 | Rachel 责编 | Jane 出品 | ...

  9. NLP数据增强方法总结:EDA、BT、MixMatch、UDA

    1. 数据增强的背景和应用场景 随着AI技术的逐步发展,更好的神经网络模型对数据规模的要求也逐步提升.而在分类任务中,若不同类别数据量相差很大,模型则会出现过拟合现象,严重影响预测的正确性. 从广义上 ...

最新文章

  1. JavaScript:Class.method与Class.prototype.method
  2. Kafka常用命令大全
  3. .NET创建WebService服务简单的例子
  4. dubbo源码分析(3)
  5. React面试题总结,含爱奇艺,小米,腾讯,阿里
  6. 二十六、PHP框架Laravel学习笔记——模型的一对多关联
  7. 服务器系统怎么用备份启动,如何用veeam给windows服务器做备份?
  8. 谷歌开源 TensorFlow 的简化库 JAX
  9. 五种方法实现Linux批量重命名文件
  10. abb变频器acs880说明书_ABB变频器ACS880-104/ACS880-204/ACS880-304产品参数及功能介绍
  11. python中filter是什么意思_求能人解答python filter()和filter_by()区别是什么
  12. 怎么批量修改html文件后缀,如何批量修改文件后缀名
  13. 图像工作回顾之七:人脸姿态估计
  14. MIT6.828学习之Lab1
  15. [-Flutter趣玩篇-] 出神入化的Align+动画
  16. OC5038内置 MOS 开关降压型 LED 恒流驱动器
  17. 前端如何优雅的实现跨终端开发(PC端+移动端)
  18. 互联网常用词汇索引表
  19. 扫描某网段存活主机(如何判定是否存活,去发送arp报文,如果有回应,表示存活)
  20. unity用全景视频制作天空盒——欺骗眼睛让手游有3A等级画面

热门文章

  1. 微信支付、微信公众号接口认证方案
  2. 浅谈c++中upper_bound与lower_bound的用法
  3. 《那些年啊,那些事——一个程序员的奋斗史》——36
  4. SD-Branch多分支组网解决方案
  5. oracle数据库所在主机内存耗尽
  6. su和su-以及sudo的理解
  7. DxO PhotoLab for Mac(照片编辑软件)
  8. iconfont.cn 选择图标生成 scriptUrl 链接
  9. vue 中 highcharts 的简单使用
  10. 【Unity3D实战项目:疯狂杀戮】角色模型的行走控制(一)