1. ホーム
  2. python

[解決済み】AttributeError: 'list' オブジェクトに 'lower' 属性がない gensim

2022-01-31 12:04:53

質問

10k語のリストをテキストファイルでこんな風に持っています。

G15 KDN C30A アクションスタンダード エアブラシ エア希釈

このコードで小文字のトークンに変換して、GenSimで処理しようとしているのです。

data = [line.strip() for line in open("C:\corpus\TermList.txt", 'r')]
texts = [[word for word in data.lower().split()] for word in data]

を実行すると、以下のようなコールバックが得られます。

AttributeErrorTraceback (most recent call last)
<ipython-input-84-33bbe380449e> in <module>()
      1 data = [line.strip() for line in open("C:\corpus\TermList.txt", 'r')]
----> 2 texts = [[word for word in data.lower().split()] for word in data]
      3 
AttributeError: 'list' object has no attribute 'lower'

何が間違っているのか、どう修正すればいいのか、何かご指摘があれば、大変ありがたいです!!!! ありがとうございます!!!

解決方法は?

を試してみてください。

data = [line.strip() for line in open("C:\corpus\TermList.txt", 'r')]
texts = [[word.lower() for word in text.split()] for text in data]

は、リストである data に .lower() を適用しようとしていたのですね。
.lower()は文字列にのみ適用可能です。