我在一个文本文件中列出了10k个单词,如下所示:
十五国集团 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'
任何关于我做错了什么以及如何改正的建议,我将不胜感激!!!谢谢您!!
你做错的是,为一个列表(在你的例子中是数据)调用一个字符串方法(
lower()
)在将行作为列表项获取后,应该做的是
这会给你列表。每个列表包含组成行的小写单词。
当然你可以变平或者保持原样。
你需要
这段代码为
data
([... for line in data]
)中的每个line
生成一个小写单词列表([word.lower() for word in line.split()]
)。每个strline
将包含一个空格分隔的单词序列。line.split()
将此序列转换为列表。并且word.lower()
将每个单词转换为小写。尝试:
您试图将.lower()应用于数据,这是一个列表。
.lower()只能应用于字符串。
相关问题 更多 >
编程相关推荐