2017-04-22 82 views
3

我嘗試運行下面的代碼,這大約是從句子哪些主題和寫作對象到Excel文件:寫作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() 

我應該怎麼做才能解決這個問題?

回答

0

你寫了你想寫的主題到Excel文件,但你正在寫滿的令牌。你應該只寫令牌受Excel單元格:

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

str()可能不是必要的,但不能傷害。

你也許也可以做str(tok),特別是如果打印tok讓你受到這個問題。使用print()會自動將tok轉換爲字符串,您必須在使用worksheet.write()時明確地執行此操作。