Python在Excel文件中的NLTK使用

1 投票
1 回答
4926 浏览
提问于 2025-04-17 05:16

我想分析一个Excel文件里的文本数据。我知道怎么用Python读取Excel文件,但每个数据都会变成列表中的一个值。不过,我想分析每个单元格里的文本。

这是我Excel文件的例子:

NAME    INDUSTRY        INFO    
A       FINANCIAL       THIS COMPANY IS BLA BLA BLA 
B       MANUFACTURE     IT IS LALALALALALALALALA    
C       FINANCIAL       THAT IS SOSOSOSOSOSOSOSO    
D       AGRICULTURE     WHYWHYWHYWHYWHY 

我想用NLTK分析一下,比如金融行业公司的信息,看看“IT”这个词出现的频率。

这是我目前的尝试(是的,这个代码不管用!):

import xlrd
aa='c:/book3.xls'
wb = xlrd.open_workbook(aa)
wb.sheet_names()
sh = wb.sheet_by_index(0)

for rownum in range(sh.nrows):
     print nltk.word_tokenize(sh.row_values(rownum))

1 个回答

1

你把每一行的所有值都传给了word_tokenize,但其实你只关心第三列的内容。而且你还在处理表头这一行。试试这样做:

import xlrd
book = xlrd.open_workbook("your_input_file.xls")
sheet = book.sheet_by_index(0)
for row_index in xrange(1, sheet.nrows): # skip heading row
    name, industry, info = sheet.row_values(row_index, end_colx=3)
    print "Row %d: name=%r industry=%r info=%r" %
        (row_index + 1, name, industry, info)
    print nltk.word_tokenize(info) # or whatever else you want to do

撰写回答