nltk英文词性分析

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 sys
import json
import re
import string

import nltk

reload(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
        print

if __name__ =='__main__':
    main()

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值