中英文分词简介

中英文分词是进行机器学习文本处理方面必须进行的一步,就类似于机器学习中图像处理的降噪,英文分词主要是将标点符号与英文单词进行分隔,中文分词就是讲每个词组进行分隔,ex:‘我是一只程序猿’------>‘我’、‘是’、‘一只’、‘程序猿’,分词是文本处理中数据预处理的必做工作。

英文分词

英文分词我们使用nltk中提供的WordPunctTokenizer来进行分词,nltk库还是很好用的,详细的代码请看中文分词~
额,重新说明一下,使用WordPunctTokenizer来进行分词的话它是按照标点符号进行分词的,也就是说如果有数据: 22.13% 他会给你分成  22  .  13  %,这样的效果,我们要的效果应该是 22.13  %。
nltk还提供一个分词函数:
import nltk
sentences='hello world , what is your name? the number of  the money is 22.13 % '
words=nltk.word_tokenize(sentences)
print(words)

中文分词

中文分词我们要感谢哈工大自然语言处理平台ltp,提供了pyltp模块来进行分词以及分句的处理,话不多说,这是使用说明以及下载说明
直接上中英文分词的详细代码:

#!/usr/bin/env python
# -*- coding:utf-8 -*-import osfrom nltk.tokenize import WordPunctTokenizer as WPT
from pyltp import SegmentorLTP_DATA_DIR = 'ltp-models/ltp_data'      #ltp模型路径
cws_model_path = os.path.join(LTP_DATA_DIR,'cws.model')  #分词模型路径def fenci():with open('分句/all_en.en','r',encoding='utf-8') as f:sentence_en=f.readlines()count=0for i in range(len(sentence_en)):words_en=WPT().tokenize(sentence_en[i])fen_en_sentence=' '.join(words_en)save_data(fen_en_sentence,count)with open('分句/all.zh','r',encoding='utf-8') as f:sentence_zh=f.readlines()#print(type(sentence))segmentor=Segmentor()segmentor.load(cws_model_path)count=1for j in range (len(sentence_zh)):words_zh=segmentor.segment(sentence_zh[j])fen_zh_sentence=' '.join(words_zh)save_data(fen_zh_sentence,count)segmentor.release()def save_data(data,count):if count==0:#print(data)try:with open('分句/fen_all.en','a',encoding='utf-8') as f:f.write(data+'\n')except:with open('分句/fen_all.en','w',encoding='utf-8') as f:f.write('')elif count==1:#     print(data)try:with open('分句/fen_all.zh', 'a') as f:f.writelines(data+'\n')except:with open('分句/fen_all.zh', 'w', encoding='utf-8')as f:f.write('')if __name__=='__main__':fenci()

中英文分句

不赘述,直接上代码,有啥问题是留言or加个粉?????嘿嘿嘿,英文分句使用的是nltk模块,中文分句时使用的哈工大的pyltp模块

#!/usr/bin/env python
# -*- coding:utf-8 -*-
import nltk
import nltk.data
import os
from os import path
from pyltp import SentenceSplitter as SS
import time
def get_data():for mainfile,subfile,filename in os.walk('abstract'):  #mainfile是详细的文件夹路径,subfile显示了有哪几个文件夹,filename是文件夹中文件名称#for i in range(len(filename)):for i in range(len(filename)):if path.splitext(mainfile+filename[i])[1]=='.zh':count=1with open(mainfile+'/'+filename[i],'r',encoding='utf-8')as f_zh:file_en_name=mainfile+'/'+filename[i]print(file_en_name)content_zh=f_zh.read()zh_sen=[]sentences_zh= SS.split(content_zh)for i in range(len(sentences_zh)):try:zh_sen.append(sentences_zh[i])except:pass#print(sentences_zh.)save_sentence_zh = '\n'.join(zh_sen)# print('{0}/{1}'.format(mainfile, filename[i]))# print('1')save_data(save_sentence_zh,count)# print(save_sentence_zh)count=0#file_en_name = path.splitext((mainfile +'/'+ filename[i]))file_en_name = list(file_en_name)#print(file_en_name)file_en_name[-1] = 'n'file_en_name[-2] = 'e'file_en_name = ''.join(file_en_name)print(file_en_name)with open(file_en_name, 'r', encoding='utf-8')as f_en:#print(file_en_name)content_en = f_en.read()tokenizer = nltk.data.load('tokenizers/punkt/english.pickle')sentences_en = tokenizer.tokenize(content_en)# print(type(sentences_en))save_data(sentences_en, count)# print(sentences_en)#time.sleep(60)def save_data(data,count):if count==0:#print(data)try:for line in data:with open('分句/all.en','a',encoding='utf-8') as f:f.write(line + '\n')except:with open('分句/all.en','w',encoding='utf-8') as f:f.write('')elif count==1:#     print(data)try:with open('分句/all.zh', 'a') as f:f.writelines(data)except:with open('分句/all.zh', 'w', encoding='utf-8')as f:f.write('')if __name__ == '__main__':get_data()print('都存完了')

有啥问题请不吝赐教,留言就行啦

如何进行中英文分句以及对中英文进行分词相关推荐

  1. matlab中英文对照表,Matlab工具箱中英文对照

    Matlab工具箱中英文对照 Matlab2010工具箱中英文对照 matlab distributed computing server 分布式计算服务器 simulink 仿真 aerospace ...

  2. html中英文混排,EndNote中英文混排时et al和等的3种解决方法 | 科研动力

    EndNote对于英文文献的处理很出色,但是对于中文文献的处理就有点别扭,尤其是中英文文献混排时更是不爽.木有关系,EndNote的强大这处之一就是可以驯服和调教.下面介绍3种如何处理中英文混排时et ...

  3. linux专业术语中英文,Linux专业术语中英文对照.doc

    Linux专业术语中英文对照.doc Linux专业术语中英文对照 (A) 帐户名称(Account Name)- 等同于登录标识.用户标识或用户名.是指派给 UNIX/Linux 系统上用户的名称. ...

  4. php 中英文截取 php,PHP 中英文截取无乱码

    在学习MySql 字符集时,解决了PHP中英文截取无乱码的问题.这个方法的核心在于判断取多少个字节上. //PHP中英文截取无乱码 header('Content_type=text/php;char ...

  5. 计算机桌面无法中英文切换,Win10输入法中英文切换不了怎么办?

    我们在使用电脑的过程中,打字是必须要进行的工作,但是有Win10用户碰到输入法中英文切换不了的情况,这就很尴尬了,打不了字,想工作玩耍都不行啊!那么该如何解决Win10中英文输入法无法切换的问题呢?下 ...

  6. 免费的中英文翻译软件-自动批量中英文翻译软件推荐大全

    免费的中英文翻译软件,免费的中英文翻译软件哪个好?什么样的翻译软件称为好呢,首先第一点翻译质量高,第二点可以批量翻译,第三点保留翻译前的格式.第四点支持采集翻译.今天我给大家分享一款免费的中英文翻译软 ...

  7. 参考文献中英文人名_参考文献中英文人名的缩写规则精要.doc

    参考文献中英文人名的缩写规则 参考文献是科技论文的重要组成部分,也是编辑加工和重要内容.温哥华格式要求,著录文后参考文献时,英文刊名和人名一律用缩写.这一规则也是众多检索系统在人名著录时的首选规则.下 ...

  8. 参考文献中英文人名_参考文献中英文人名的缩写规则 (2)

    . . 参考文献中英文人名的缩写规则 参考文献是科技论文的重要组成部分, 也是编辑加工和重要内容. 温哥华格式要求, 著 录文后参考文献时, 英文刊名和人名一律用缩写. 这一规则也是众多检索系统在人名 ...

  9. maya中英文对照_maya菜单中英文对照(1)_maya教程

    Maya菜单中英文对照 Standard标准菜单 File文件 NewScene建立新场景 OpenScene打开场景 SaveScene存盘场景 SaveSceneAs改名存盘 Import导入 E ...

最新文章

  1. windows上不同版本的CUDA、cudnn是否能够共用?
  2. NLB网路负载均衡管理器详解
  3. vue使用element ui实现下拉列表分页的功能!!!
  4. 视差滚动(Parallax Scrolling)效果的原理和实现
  5. Integer类的装箱和拆箱到底是怎样实现的?
  6. 【华为云技术分享】听说,AI界奔涌的后浪都相聚在这里
  7. 华为双 11 发 20 亿奖金!?
  8. 浅析JBPM工作流引擎
  9. Altium Designer 17 安装方法及步骤
  10. jQuery图片LightBox插件 点击图片放大 支持移动手机
  11. ping-pong机制
  12. 数据清洗之 数据整理
  13. 从一个帝国的消逝,看商业组织的进化
  14. 蚂蚁集团副总裁,任复旦大学人工智能学院院长!
  15. 优盘复制进来为空_为什么复制后文件夹u磁盘为空
  16. MapBoxMap 之 定位
  17. 百度对site语法的几种情况
  18. 无功补偿的原理和形式
  19. win10 itunes更新ios系统异常 提示“未能恢复iPhone 发生未知错误(14)”
  20. 动态规划8FatMouse's Speed

热门文章

  1. c语言arctan函数输出角度,请问反正切函数arctanx用c语言怎么表示?
  2. opencv null pointer (null name string) in cvNamedWindow
  3. 渐变的知识和动画总结
  4. implicitly
  5. socket与tcp/ip编程
  6. 【正点原子STM32连载】 第六十二章 UCOSII实验2-信号量和邮箱 摘自【正点原子】MiniPro STM32H750 开发指南_V1.1
  7. EasyTouch5插件
  8. 多元统计分析——聚类分析——层次聚类
  9. 中国信通院:大数据白皮书2020 摘要
  10. 孙俪邓超不婚缘于单亲阴影?