删除python中的括号及其内容

2024-09-27 00:21:38 发布

您现在位置:Python中文网/ 问答频道 /正文

我使用lstm方法实现了一个情绪分析分类。我已经训练了我的模型并保存了它。我已经加载了列车模型,我正在做分类部分,在那里我将它保存在一个数据帧中。我需要删除括号及其内容,我将在下面向您展示

这是我的密码:

 hotelname = []
sentimentanalysis = []

for item in selection1:
    name = item['name']
    hotelname.append(name)
    print (name)

结果如下:

Mystik Lifestyle (Save 34%)
Chalets Chamarel (Adults Only)
Andrea Lodge (Save 18%)
Hibiscus Beach Resort & Spa (Save 18%)
Lagoon Attitude (Adults Only)
Ocean V Hotel (Adults Only)

但我希望我的输出是这样的::

Mystik Lifestyle 
Chalets Chamarel 
Andrea Lodge 
Hibiscus Beach Resort & Spa 
Lagoon Attitude 
Ocean V Hotel 

有人能告诉我需要在代码中添加什么吗


Tags: name模型onlysave分类itemlifestyleandrea
3条回答

您可以尝试以下代码:

hotelname = []
sentimentanalysis = []

for item in selection1:
    name = item['name'].split('(')[0].strip()
    hotelname.append(name)
    print (name)
import re
def remove_bracket(text):
    x = re.sub("[\(\[].*?[\)\]]", "", text)[:-1]
    return x

cleaned_text = remove_bracket(name)
hotelname.append(cleaned_text)

编辑:

li = ['Mystik Lifestyle (Save 34%)',
'Chalets Chamarel (Adults Only)',
'Andrea Lodge (Save 18%)',
'Hibiscus Beach Resort & Spa (Save 18%)',
'Lagoon Attitude (Adults Only)',
'Ocean V Hotel (Adults Only)']

for i in li:
    cleaned_text = remove_bracket(i)
    print(cleaned_text)

输出:

Mystik Lifestyle
Chalets Chamarel
Andrea Lodge
Hibiscus Beach Resort & Spa
Lagoon Attitude
Ocean V Hotel

您可以通过以下方式使用re模块:

import re
def clean(n):
    return re.sub(r'\s\(.*\)','',n)

然后:

name = clean(item['name'])

而不是

name = item['name']

请注意,我使用了所谓的原始字符串作为re.sub的第一个参数,并删除了括号及其内容之前的空白(\s)。注意()需要转义,因为它们在模式中具有特殊意义(因此导致反斜杠)

相关问题 更多 >

    热门问题