[解決済み] scikit-learn の TfidfVectorizer 。ValueError: np.nan は無効なドキュメントである。
2022-02-14 19:57:11
質問
scikit-learnのTfidfVectorizerを使って、テキストデータから特徴抽出を行っています。スコア(+1または-1)とレビュー(テキスト)を含むCSVファイルがあります。このデータをDataFrameに取り込んで、Vectorizerを実行できるようにしました。
これが私のコードです。
import pandas as pd
import numpy as np
from sklearn.feature_extraction.text import TfidfVectorizer
df = pd.read_csv("train_new.csv",
names = ['Score', 'Review'], sep=',')
# x = df['Review'] == np.nan
#
# print x.to_csv(path='FindNaN.csv', sep=',', na_rep = 'string', index=True)
#
# print df.isnull().values.any()
v = TfidfVectorizer(decode_error='replace', encoding='utf-8')
x = v.fit_transform(df['Review'])
これは、私が受け取ったエラーのトレースバックです。
Traceback (most recent call last):
File "/home/PycharmProjects/Review/src/feature_extraction.py", line 16, in <module>
x = v.fit_transform(df['Review'])
File "/home/b/hw1/local/lib/python2.7/site- packages/sklearn/feature_extraction/text.py", line 1305, in fit_transform
X = super(TfidfVectorizer, self).fit_transform(raw_documents)
File "/home/b/work/local/lib/python2.7/site-packages/sklearn/feature_extraction/text.py", line 817, in fit_transform
self.fixed_vocabulary_)
File "/home/b/work/local/lib/python2.7/site- packages/sklearn/feature_extraction/text.py", line 752, in _count_vocab
for feature in analyze(doc):
File "/home/b/work/local/lib/python2.7/site-packages/sklearn/feature_extraction/text.py", line 238, in <lambda>
tokenize(preprocess(self.decode(doc))), stop_words)
File "/home/b/work/local/lib/python2.7/site-packages/sklearn/feature_extraction/text.py", line 118, in decode
raise ValueError("np.nan is an invalid document, expected byte or "
ValueError: np.nan is an invalid document, expected byte or unicode string.
CSVファイルとDataFrameをチェックして、NaNとして読み込まれているものがないか確認しましたが、何も見つかりませんでした。18000行あり、そのどれもが
isnan
をTrueにしてください。
これは
df['Review'].head()
のように見える。
0 This book is such a life saver. It has been s...
1 I bought this a few times for my older son and...
2 This is great for basics, but I wish the space...
3 This book is perfect! I'm a first time new mo...
4 During your postpartum stay at the hospital th...
Name: Review, dtype: object
解決方法は?
を変換する必要があります。
object
を
unicode
の文字列が、トレースバックに明記されています。
x = v.fit_transform(df['Review'].values.astype('U')) ## Even astype(str) would work
TFIDF VectorizerのDocページより。
fit_transform(raw_documents, y=None)
パラメータ: raw_documents : iterable
のいずれかを返すイテラブルです。 str , ユニコード または ファイルオブジェクト
関連
-
PythonによるLeNetネットワークモデルの学習と予測
-
ピロウズ画像色処理の具体的な活用方法
-
PythonによるExcelファイルの一括操作の説明
-
Python 入出力と高次代入の基礎知識
-
[解決済み】お使いのCPUは、このTensorFlowバイナリが使用するようにコンパイルされていない命令をサポートしています。AVX AVX2
-
[解決済み】ImportError: sklearn.cross_validation という名前のモジュールがない。
-
[解決済み】TypeErrorの修正方法。Unicodeオブジェクトは、ハッシュ化する前にエンコードする必要がある?
-
[解決済み】TypeErrorを取得しました。エントリを持つ子テーブルの後に親テーブルを追加しようとすると、 __init__() missing 1 required positional argument: 'on_delete'
-
[解決済み】syntaxError: 'continue' がループ内で適切に使用されていない
-
[解決済み】Python elifの構文が無効です【終了しました
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
Python関数の高度な応用を解説
-
Python機械学習Githubが8.9Kstarsに達したモデルインタープリタLIME
-
PyQt5はユーザーログインGUIインターフェースとログイン後のジャンプを実装しています。
-
Python入門 openを使ったファイルの読み書きの方法
-
FacebookオープンソースワンストップサービスpythonのタイミングツールKats詳細
-
[解決済み】終了コード -1073741515 (0xC0000135)でプロセス終了)
-
[解決済み】インポートエラー。モジュール名 urllib2 がない
-
[解決済み] TypeError: 'DataFrame' オブジェクトは呼び出し可能ではない
-
[解決済み】「OverflowError: Python int too large to convert to C long" on windows but not mac
-
[解決済み】 TypeError: += でサポートされていないオペランド型: 'int' および 'list' です。