上一篇博文我们已经对文本做了分词处理,这篇我们开始做取名词,去停用词的处理。
首先是取名词,我们要把名词取出来,是因为一篇文档,名词最能够代表这一篇文档属于哪一类的,其他的形容词,副词之类的词语并不能很好的代表某一类文档。所以要取名词,这个当然是用正则表达式了。
我们看一下分词结果:
名词词性的词分词工具会用n表示,那么我们就用正则表达式去匹配n就好了。
根据廖老师的Python教程,.n能匹配任意字符,*表示有任意个,那我我们把正则表达式写成:.*n。这个意思就是不管这一行前边有任意个任何字符,只要后边有一个n,就表示匹配成功,我们就可以做其他操作,比如把这一行保存。
然后就是去停用词,就是一些完全没用的废话,助词或者语气词之类的,停用词表是老师提供的。
我们先把停用词文档做分词处理,然后把停用词里的名词取出来,这样我们对一篇文档做完取名词操作之后就可以直接去掉名词性质的停用词了。
下面是示例代码,当然不一定对,而且我发现停用词去的并不干净,仅供参考哈。
# -*- coding: UTF-8 -*- import re f = open('/Users/yangshaoby/Desktop/10.txt', 'rb') for x in range(1,1000): p = f.readline() print p if re.match(r'.*n', p): print 'ok' st = open('/Users/yangshaoby/Desktop/stopwords.txt', 'rb') st1 = st.read() if p not in stl: b = open('/Users/yangshaoby/Desktop/100.txt', 'a') b.write (p) b.close() print 'stop'
我的停用词文档分词取名词后的结果命名为stopwords.txt保存在桌面上。
这个是单篇文档取名词去停用词的代码,要做批处理参考上一篇文档哈。