nltk英文词性分析

来源:互联网 发布:java web小项目 编辑:程序博客网 时间:2024/06/11 06:27

Python 的nltk完成英文词性分析


首先需要安装nltk,大致的安装过程是:

sudo apt-get install python-nltk

需要依赖的包可以自行查阅

安装完后比较重要的一步是下载数据

>>import nltk

>>nltk.download()

如果出现 Connection reset error ,则是因为网络问题,换一下网就可以了。


本文主要对歌曲的评论列表分完词之后的数据进行词性分析。数据输入格式为 :

id \t word \t word ......


下面是词性分析的过程:

#!/usr/bin/env python# -*- coding: utf-8 -*-import sysimport jsonimport reimport stringimport nltkreload(sys)sys.setdefaultencoding("utf8")pos= ['NN','NNS','JJ']#只选择名词和形容词def main():    if len(sys.argv) < 1:        sys.stderr.write("err\n")        return -1    while True:        ln = sys.stdin.readline()        if not ln:            break        ln = ln.strip()        ln_u = ln.decode("utf8")        items = ln_u.split("\t")        #print len(items)        # if comment is empty, strip the row        songid = items[0]        commentList = items[1:]          pos_result = nltk.pos_tag(commentList) # the output form is tuple                print (songid +'\t').encode('utf8'),              for tuple in pos_result:            word = tuple[0]            pos_word = tuple[1]                        #if pos_word in pos:              #   print (str(word)+'\t'+str(pos_word)).encode('utf8'),            print (word+' '+pos_word+'\t'),             #output overall word and its pos_word        printif __name__ =='__main__':    main()

运行 python pos.py < inputfile >outfile 即可得到词性分析的结果。可以根据不同项目的需要,选择保留的词性。

0 0