如何从变量或列表中删除某些单词 python
How to delete certain words from a variable or a list python
common_words = set(['je', 'tek', 'u', 'još', 'a', 'i', 'bi',
's', 'sa', 'za', 'o', 'kojeg', 'koju', 'kojom', 'kojoj',
'kojega', 'kojemu', 'će', 'što', 'li', 'da', 'od', 'do',
'su', 'ali', 'nego', 'već', 'no', 'pri', 'se', 'li',
'ili', 'ako', 'iako', 'bismo', 'koji', 'što', 'da', 'nije',
'te', 'ovo', 'samo', 'ga', 'kako', 'će', 'dobro',
'to', 'sam', 'sve', 'smo', 'kao'])
all = []
for (item_content, item_title, item_url, fetch_date) in cursor:
#text = "{}".format(item_content)
text= item_content
text= re.sub('[,.?";:\-!@#$%^&*()]', '', text)
text = text.lower()
#text = [w for w in text if not w in common_words]
all.append(text)
我想从变量 "test" 或稍后从列表 "all" 中删除某些 words/stopword 我将迭代中的所有 "text" 变量放入。
我这样试过,但这不仅会删除单词,还会删除那些字母(如果它们存在于其他单词中)并且每个单词的输出都像 'd'、'f',并且我希望格式保持不变,我只需要从变量(或列表)中删除 common_words 列表中的那些单词。我将如何实现?
作为从测试中删除标点符号的 pythonic 方法,您可以使用 str.translate
方法:
>>> "this is224$# a ths".translate(None,punctuation)
'this is224 a ths'
并使用 re.sub
替换单词,首先创建正则表达式并将 pip (|
) 附加到单词 :
reg='|'.join(common_words)
new_text=re.sub(reg,'',text)
示例:
>>> s="this is224$# a ths"
>>> import re
>>> w=['this','a']
>>> boundary_words=['\b{}\b'.format(i) for i in w]
>>> reg='|'.join(oundary_words)
>>> new_text=re.sub(reg,'',s).translate(None,punctuation)
>>> new_text
' is224 ths'
common_words = set(['je', 'tek', 'u', 'još', 'a', 'i', 'bi',
's', 'sa', 'za', 'o', 'kojeg', 'koju', 'kojom', 'kojoj',
'kojega', 'kojemu', 'će', 'što', 'li', 'da', 'od', 'do',
'su', 'ali', 'nego', 'već', 'no', 'pri', 'se', 'li',
'ili', 'ako', 'iako', 'bismo', 'koji', 'što', 'da', 'nije',
'te', 'ovo', 'samo', 'ga', 'kako', 'će', 'dobro',
'to', 'sam', 'sve', 'smo', 'kao'])
all = []
for (item_content, item_title, item_url, fetch_date) in cursor:
#text = "{}".format(item_content)
text= item_content
text= re.sub('[,.?";:\-!@#$%^&*()]', '', text)
text = text.lower()
#text = [w for w in text if not w in common_words]
all.append(text)
我想从变量 "test" 或稍后从列表 "all" 中删除某些 words/stopword 我将迭代中的所有 "text" 变量放入。
我这样试过,但这不仅会删除单词,还会删除那些字母(如果它们存在于其他单词中)并且每个单词的输出都像 'd'、'f',并且我希望格式保持不变,我只需要从变量(或列表)中删除 common_words 列表中的那些单词。我将如何实现?
作为从测试中删除标点符号的 pythonic 方法,您可以使用 str.translate
方法:
>>> "this is224$# a ths".translate(None,punctuation)
'this is224 a ths'
并使用 re.sub
替换单词,首先创建正则表达式并将 pip (|
) 附加到单词 :
reg='|'.join(common_words)
new_text=re.sub(reg,'',text)
示例:
>>> s="this is224$# a ths"
>>> import re
>>> w=['this','a']
>>> boundary_words=['\b{}\b'.format(i) for i in w]
>>> reg='|'.join(oundary_words)
>>> new_text=re.sub(reg,'',s).translate(None,punctuation)
>>> new_text
' is224 ths'