语言模型之英文数据预处理

在做语言模型的时候需要对文本做一些预处理,将文本分成一行一句的形式,并标上开始符和结束符。
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. 1中有一个问题,就是会把引号里面的文本句子给切分。
    可以在进行第一步之前,先把引号中的内容替换掉,切分完之后再替换回来。这个就有点麻烦,因为还可能出现引号套引号的状况。

  2. 标点去不去掉对语言模型有什么影响呢?不清楚,可以试一下。我做的拼写纠错的任务里面,标点不去,效果会好些。

原来nltk已经实现了分句,分词,参见http://blog.csdn.net/baidu_27438681/article/details/60468848
nltk 也没有解决 引号 之内的句号如何处理的问题。
是否并不重要?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

旺旺棒棒冰

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值