中文分词算法及python代码实现(持续更新中)
文章目录
- 1. 机械分词算法
- 1.1. 正向最大匹配算法
- 1.2. 逆向最大匹配算法
参考链接:
https://blog.csdn.net/lcwdzl/article/details/78493637
https://blog.csdn.net/liu_zhlai/article/details/52125174?spm=1001.2014.3001.5501
代码源码地址:
https://github.com/lankuohsing/Study_NLP
1. 机械分词算法
1.1. 正向最大匹配算法
custom_dict={"南京","南京市","市长","长江","大桥","江大桥",}
input_sentence="南京市长江大桥"
max_word_len=0
for word in custom_dict:if len(word)>max_word_len:max_word_len=len(word)if len(input_sentence)<max_word_len:max_word_len=len(input_sentence)start=0
seg_results=[]
while start<len(input_sentence):temp_len=max_word_lenif len(input_sentence)-start<max_word_len:temp_len=len(input_sentence)-startwhile temp_len>0:sub_sentence=input_sentence[start:start+temp_len]if sub_sentence in custom_dict:seg_results.append(sub_sentence)start+=temp_lenbreakelse:temp_len-=1# 没有子串匹配,则单独成词if temp_len==0:seg_results.append(input_sentence[start:start+1])start+=1
print(seg_results)
1.2. 逆向最大匹配算法
custom_dict={"南京","南京市","市长","长江","大桥","江大桥"}
input_sentence="南京市长江大桥"
max_word_len=0
for word in custom_dict:if len(word)>max_word_len:max_word_len=len(word)if len(input_sentence)<max_word_len:max_word_len=len(input_sentence)end=len(input_sentence)
seg_results=[]
while end>0:temp_len=max_word_lenif end<max_word_len:temp_len=endwhile temp_len>0:sub_sentence=input_sentence[end-temp_len:end]if sub_sentence in custom_dict:seg_results.append(sub_sentence)end-=temp_lenbreakelse:temp_len-=1# 没有子串匹配,则单独成词if temp_len==0:sub_sentence=input_sentence[end-1:end]seg_results.append(sub_sentence)end-=1
print(seg_results)
中文分词算法及python代码实现(持续更新中)相关推荐
- 入门科普:一文看懂NLP和中文分词算法(附代码举例)
导读:在人类社会中,语言扮演着重要的角色,语言是人类区别于其他动物的根本标志,没有语言,人类的思维无从谈起,沟通交流更是无源之水. 所谓"自然"乃是寓意自然进化形成,是为了区分一些 ...
- 简易中文分词算法(python)_自然语言处理(NLP)中的的中文分词算法及 Python 实现...
本 Chat 首先简单介绍了自然语言处理中中文分词的概念和应用场景.然后通过两个简单的小例子展示了算法的步骤.接着编写了 Python 代码,并在<红楼梦>上做了测试.最后,总结了我在写代 ...
- 商业数据分析模型及其核心Python代码_持续更新
商业数据分析模型_持续更新 一.AARRR模型 二.PEST模型 理论 医美行业应用案例 三.RFM模型 理论 Python实战_核心指标计算 四.SWOT模型 五.5W1H模型 六.流程拆解法 七. ...
- 破解md5的python代码,持续更新
这个是穷举法: # -*- coding: utf-8 -*- import string import hashlib file=open("hello.txt","a ...
- iOS/iPhone学习系列、代码教程----~~~持续更新中~~~
http://www.devdiv.com/forum.php?mod=viewthread&tid=48165 part 1--入门: 1. xcode 版本下载 以及 iphone s ...
- [源码、文档、分享] iOS/iPhone学习系列、代码教程----~~~持续更新中~~~
转自:http://www.devdiv.com/iOS_iPhone-iOS_iPhone%E5%AD%A6%E4%B9%A0%E7%B3%BB%E5%88%97%E3%80%81%E4%BB%A3 ...
- AcWing算法基础课 第一讲小结(持续更新中)
目录 前言 一.快速排序法及其扩展 快速排序法 介绍 思路 + 步骤 模拟代入 模板 练习 扩展(求第k个数) 思路 代码 二.归并排序法 归并排序 思路 思路 + 步骤 模拟代入 模板 练习 应用( ...
- Linux部署Python项目(持续更新中)
项目部署 项目部署对恩操作通常是由运维人员来进行统一管理装配的,但是对于一个开发人员来讲,基础的项目部署还是要会的. 这里我主要讲解python的项目是如何部署的,至于项目哪里来的,这就要看观 ...
- 【机器学习】算法面试知识点整理(持续更新中~)
1.监督学习(SupervisedLearning):有类别标签的学习,基于训练样本的输入.输出训练得到最优模型,再使用该模型预测新输入的输出: 代表算法:决策树.朴素贝叶斯.逻辑回归.KNN.SVM ...
最新文章
- spring 注解上传文件 @RequestParam,FormData上传文件
- Jupyter notebook快捷操作
- 处理浏览器兼容你最喜欢用哪种方式
- 为什么我们总是「习惯性辩解」?
- chartjs和echartsjs库简介
- html css网页布局实例简单,Div+CSS网页布局项目实战一(含设计图、HTML和CSS源文件)...
- dpkg:处理软件包 xxx (--configure)时出错
- AMD Catalyst 14.4 Linux带来完整的 OpenGL 4.4 支持
- python pip工具安装教程
- Linux转发性能评估与优化 转发瓶颈分析与解决方案
- uni-app:自定义vue模板
- 慕课秒杀项目seckill
- The application bundle does not contain a valid identifier
- PPT模板制作图片折叠效果怎么做?
- simulink 脱离 matlab,Simulink软件不能脱离MATLAB环境而运行
- 伦敦经济学院开设加密货币相关课程
- Tita OKR:掌握大局的仪表盘
- 驳少壮不努力,老大搞IT
- 新版骆驼lPTV小肥米lptv管理系统+全开源源码/可对接EZtv电视直播管理系统
- 什么是api应用程序接口?
热门文章
- 代码本色0章——Perlin噪声生成起伏地形
- 在外包做了3年,离职后成功入职字节跳动....
- uniapp的uni_modules目录需要提交到Git吗?为什么有了node_modules,还需要再发明一个uni_modules的轮子?node_modules和uni_modules的区别
- Android:调用其他程序中的activity和Permission Denial: starting Intent 错误解决办法
- linux---软件包管理rpm
- 免费一键生成原创文章-原创文章批量生成
- 递归算法实例:十进制转换N进制(vb.net代码)
- MODBUS-TCP协议简介与编程流程图
- 在苹果Mac上如何设置固件密码?
- 不需要苹果官方支持,可重置MAC系统固件密码