月落青山外 2022-03-23 09:24 采纳率: 50%
浏览 223

python如何处理含有多种语言的文本,使其只保留英文文本?

问题遇到的现象和发生背景

我从网站上下载的用户评论,里面有中文、英文、韩语、西班牙语等,我使用了正则表达式,但并没有完全处理干净。

问题相关代码,请勿粘贴截图
# 训练文件
file = pd.read_csv(filepath_p)#读取data.csv文件


txts = []#设置空列表

for string in file[message]:
    string = ''.join(x for x in str(string) if ord(x) < 256)
    string = re.sub('<br/>', '', string)
    string = re.sub('[\s+\.\!\/_,$%^*(+\"\')]+|[+——()?【】“”!,。?、~@#¥%……&*()]+', " ", string)
    string = re.sub(r"\s+", " ", string)            
    txts.append(string)
    
file[message] = txts #将file文件里的comments替换为处理后的评论

# 选取字符长度>15的评论
file = file[file[message].str.len() >= 15]
file.reset_index(drop=True, inplace=True)#重置索引,在原数据上进行修改

print(file.shape)#打印file数据表的维度
file.head()#打印file前5行

运行结果及报错内容

运行后发现comments文本中依然含有其它语言的评论

我的解答思路和尝试过的方法

尝试过其他正则表达式,但是效果不理想

我想要达到的结果

去除英文外的所有文本,只保留英文文本

  • 写回答

1条回答 默认 最新

  • 於黾 2022-03-23 09:39
    关注

    你应该按段来处理,而不是按文字
    同一段里只要出现了非英文字符,那么整段肯定都是非英文编写的
    你不能只摘掉所有的非英文字符而把英文字符堆积在一起
    比如法文里的字符就有跟英文字符一模一样的字符
    打汉字的时候也难免偶尔会用个拼音什么的

    评论

报告相同问题?

问题事件

  • 创建了问题 3月23日

悬赏问题

  • ¥15 带序列特征的多输出预测模型
  • ¥15 Python 如何安装 distutils模块
  • ¥15 关于#网络#的问题:网络是从楼上引一根网线下来,接了2台傻瓜交换机,也更换了ip还是不行
  • ¥15 资源泄露软件闪退怎么解决?
  • ¥15 CCF-CSP 2023 第三题 解压缩(50%)
  • ¥30 comfyui openpose报错
  • ¥20 Wpf Datarid单元格闪烁效果的实现
  • ¥15 图像分割、图像边缘提取
  • ¥15 sqlserver执行存储过程报错
  • ¥100 nuxt、uniapp、ruoyi-vue 相关发布问题