将spacy(python)标记写入excel文件

时间:2017-04-22 10:51:25

标签: python spacy

我尝试运行以下代码,即从句子中识别主题并将主题写入Excel文件:

from nltk.tokenize import sent_tokenize
import spacy
import xlsxwriter
workbook = xlsxwriter.Workbook('Sub.xlsx')
worksheet = workbook.add_worksheet()
row=0
col=0
nlp = en_core_web_sm.load()
f=open("cdata.txt").read()
s=sent_tokenize(f)

for sent in sent_tokenize(f):
    worksheet.write(row, col, sent)
    doc=nlp(unicode(sent))
    print type(doc)
    for tok in doc:
        if tok.dep_=='nsubj':
             print type(tok)
             worksheet.write(row,col+1,tok)

但是我在最后一行得到了同样的错误:

 TypeError: Unsupported type <type 'spacy.tokens.token.Token'> in write()

我该怎么做才能解决这个问题?

1 个答案:

答案 0 :(得分:0)

您写道要将主题写入Excel文件,但您正在编写完整令牌。您应该只根据Excel单元格编写令牌:

            worksheet.write(row,col+1,str(tok._orth_))

str()可能没有必要,但它不会受到伤害。

您可能也可以str(tok),尤其是在打印tok使您成为主题时。使用print()自动将tok转换为字符串,您必须在使用worksheet.write()时明确地执行此操作。