首页 > 代码库 > Python进行文本处理

Python进行文本处理

对于一个文本字符串,可以使用Python的string.split()方法将其切割。下面看看实际运行效果。

mySent = This book is the best book on python!
print mySent.split()

输出:

[This, book, is, the, best, book, on, python!]

可以看到,切分的效果不错,但是标点符号也被当成了词,可以使用正则表达式来处理,其中分隔符是除单词、数字外的任意字符串。

import re
reg = re.compile(\\W*)
mySent = This book is the best book on python!
listof = reg.split(mySent)
print listof

输出为:

[This, book, is, the, best, book, on, python, ‘‘]

现在得到了一系列词组成的词表,但是里面的空字符串需要去掉。

可以计算每个字符串的长度,只返回大于0的字符串。

import re
reg = re.compile(\\W*)
mySent = This book is the best book on python!
listof = reg.split(mySent)
new_list = [tok for tok in listof if len(tok)>0]
print new_list

输出为:

[This, book, is, the, best, book, on, python]

最后,发现句子中的第一个字母是大写的。我们需要同一形式,把大写转化为小写。Python内嵌的方法,可以将字符串全部转化为小写(.lower())或大写(.upper())

import re
reg = re.compile(\\W*)
mySent = This book is the best book on python!
listof = reg.split(mySent)
new_list = [tok.lower() for tok in listof if len(tok)>0]
print new_list

输出为:

[this, book, is, the, best, book, on, python]

 

下面来看一封完整的电子邮件:

内容

Hi Peter,

With Jose out of town, do you want to
meet once in a while to keep things
going and do some interesting stuff?

Let me know
Eugene

import re
reg = re.compile(\\W*)
email = open(email.txt).read()
list = reg.split(email)
new_txt = [tok.lower() for tok in list if len(tok)>0]
print new_txt

输出:

[hi, peter, with, jose, out, of, town, do, you, want, to, meet, once, in, a, while, to, keep, things, going, and, do, some, interesting, stuff, let, me, know, eugene]

 

Python进行文本处理