Python进行文本处理
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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进行文本处理的主要内容,如果未能解决你的问题,请参考以下文章