我使用sklearn和Python向量化這段文字下面的代碼工作:如何在磁盤中寫入名爲vectorizer.get_feature_names()的方法的輸出?
https://gist.github.com/adolfo255/be2bc75327e288d4d090659e231fa487
我的代碼是這樣的:
#!/usr/bin/env python
# -*- coding: utf-8
from sklearn.feature_extraction.text import TfidfVectorizer
import pandas as pd
f = open('text.txt')
corpus= []
for line in f:
corpus.append(line),
print(corpus)
vectorizer = TfidfVectorizer(min_df=1,ngram_range=(1, 5),analyzer='char')
X = vectorizer.fit_transform(corpus)
idf = vectorizer.idf_
#print dict(zip(vectorizer.get_feature_names(), idf))
print (vectorizer.get_feature_names())
output= vectorizer.get_feature_names()
target = open("output.txt", 'w')
for line in output:
target.write(line),
target.close()
print(target)
一切順利,直到一部分,當我嘗試寫輸出,我想在磁盤上寫最後打印的輸出,我的意思是這樣的:
print (vectorizer.get_feature_names())
餘噸ried以下內容:
output= vectorizer.get_feature_names()
target = open("output.txt", 'w')
for line in output:
target.write(line),
target.close()
print(target)
但這種方法並沒有工作。 我:
'ascii' codec can't encode character u'\xfa' in position 4: ordinal not in range(128)
UnicodeEncodeError Traceback (most recent call last)
main.py in <module>()
16 target = open("output.txt", 'w')
17 for line in output:
---> 18 target.write(line),
19 target.close()
20 print(target)
UnicodeEncodeError: 'ascii' codec can't encode character u'\xfa' in position 4: ordinal not in range(128)
File written
output.txt
我希望如何實現這個任何建議,因爲我要分析的輸出後,問題與編碼有關,但我不知道如何解決它,我將不勝感激任何建議。
你好,關於版本對不起,我我工作在python 2.7.10,當我把這行:f = open('text.txt',encoding ='utf-8'),我得到以下錯誤:'encoding'是這個函數的一個無效的關鍵字參數,我不知道這是否與我正在編寫此版本的事實有關。 – neo33
是的,在Python 2.7.10中,'open'不需要'encoding'參數;這就是爲什麼HOWTO建議您使用'codecs.open'來代替,正如我所提到的。 –