我正在列表上运行一个包含字典查找的函数,因此我需要删除所有非字典性单词,因为如果不这样做,则会遇到关键错误。我不能只使用“ continue”,因为我没有循环执行此操作。我认为我没有太多,所以如果需要的话,我可以一一做到(尽管我不想这么做)。列表中的对象都是unicode,这使得删除它们变得更加困难。
我的清单如下所示:
my_list:
[[u'stuff',
u'going',
u'moment',
u'mj',
u've',
u'started',
u'listening',
u'music'
等等...
或者,如果我这样称呼它,我将得到一个括号:
my_list[0]:
[u'stuff',
u'going',
u'moment',
u'mj',
u've',
u'started',
u'listening',
u'music',
等等...
我已经尝试过类似的事情:
my_list.remove("mj")
和
my_list.remove("u'mj'")
和
my_list.remove[0,3]
有任何想法吗?谢谢
编辑:回应凯文:这是我如何以这种方式获取数据
my_list = []
for review in train["review"]:
my_list.append(review_to_wordlist(review, remove_stopwords=True))
函数在这里:
def review_to_wordlist(review, remove_stopwords=False):
#remove html
review_text = BeautifulSoup(review).get_text()
#remove non-letters
#possibly update this later to include numbers?
review_text = re.sub("[^a-zA-Z]"," ", review_text)
#convert words to lower case and split
words = review_text.lower().split()
if remove_stopwords:
stops = set(stopwords.words("english"))
words = [w for w in words if not w in stops]
return(words)
你近了。问题不在于unicode,而是您remove
在外部列表上进行调用。由于您的文本列表是列表内的列表,因此需要从中删除。
改为执行以下操作:
my_list[0].remove('mj')
您还可以将其前缀为unicode字符串(在这种情况下,结果相同):
my_list[0].remove(u'mj')
例子:
my_list = [[u'stuff',
u'going',
u'moment',
u'mj',
u've',
u'started',
u'listening',
u'music'
]]
my_list[0].remove('mj')
print my_list
输出:
[[u'stuff', u'going', u'moment', u've', u'started', u'listening', u'music']]
请注意,该字符串mj
已删除。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句