语言模型之英文数据预处理
来源:互联网 发布:ftp 带端口 编辑:程序博客网 时间:2024/06/13 07:04
在做语言模型的时候需要对文本做一些预处理,将文本分成一行一句的形式,并标上开始符和结束符。
1.句子切分
可以按照句号,问号,感叹号,进行切分。
然后从未到头扫描一遍,将不是以大写字母开头的拼接到上一句上(对于类似于S. R这类的人名无法处理)
text=re.sub('\. ',' SSS ',text) text=re.sub('! ',' SSS ',text) text=re.sub('\? ',' SSS ',text) sentencelist=text.split('SSS') sentencelist=[sentence.strip() for sentence in sentencelist] numofsentence=len(sentencelist) for num in range(1,numofsentence-1): if (sentencelist[-num]!='' and sentencelist[-num][0]>='A' and sentencelist[-num][0]<='Z'): continue else: sentencelist[-num-1]= sentencelist[-num-1]+sentencelist[-num] sentencelist[-num]=''
2.把所有的数字替换成一个特殊的字符,例如 N 。
1中有一个问题,就是会把引号里面的文本句子给切分。
可以在进行第一步之前,先把引号中的内容替换掉,切分完之后再替换回来。这个就有点麻烦,因为还可能出现引号套引号的状况。标点去不去掉对语言模型有什么影响呢?不清楚,可以试一下。我做的拼写纠错的任务里面,标点不去,效果会好些。
原来nltk已经实现了分句,分词,参见http://blog.csdn.net/baidu_27438681/article/details/60468848
nltk 也没有解决 引号 之内的句号如何处理的问题。
是否并不重要?
阅读全文
0 0
- 语言模型之英文数据预处理
- R语言之数据预处理笔记
- R语言之数据预处理(下)
- R语言数据预处理
- R语言|数据预处理
- R语言-数据预处理
- 小白自总结【数据预处理】英文数据预处理
- 数据预处理之缺失值插补 — 基于R语言
- c语言之预处理
- C语言之预处理
- C语言之预处理
- C语言之预处理
- C语言之预处理
- C语言之预处理
- C语言之预处理
- C语言之预处理
- 数据预处理之归一化
- 数据预处理之归一化
- java定义数组的三种类型
- 关于AIOps智能运维,Gartner认为必须具备这11项关键能力
- C语言基础代码
- android getWindow().setFlags的使用
- 1.策略模式
- 语言模型之英文数据预处理
- jQuery判断是否为数字
- 接口测试理论
- mybatis中"#"和"$"的区别(二)
- 常用数据结构
- cv::addWeighted 进行图片融合
- 为蹭AWS热点,朋友圈八卦鸡汤数量惊人,但终究敌不过AWS寥寥数百字
- 网易2017春招编程题:工作安排 [python]
- 猫狗算法(每日一道算法题)