gpt4 book ai didi

python 3 : Remove Arabic Punctuation

转载 作者:太空宇宙 更新时间:2023-11-03 15:48:25 25 4
gpt4 key购买 nike

我正在使用阿拉伯语文本,我想删除阿拉伯语标点符号示例:

s="أهلاً بالعالم في هذه التجربة ! علامات ،الترقيم ؟ ,? لا .اتذكرها"

我希望输出删除 "؟ ، " 也是因为当我使用时:

import string
tr= str.maketrans("","", string.punctuation)

输出是 'أهلاً بالعالم وي هذه التوربة علامات 负责لا اتذكرها'

最佳答案

string.punctuation 常量仅包含 ASCII 中定义的标点字符,它甚至不包括拉丁脚本中使用的所有符号(例如,“花哨的引号”如 «» 丢失)。

如果您不想自己创建所有标点字符的列表(我不会),您可以使用 Unicode character property决定一个字符是否是标点符号。内置的 unicodedata 模块让您可以访问这些信息:

>>> import unicodedata as ud
>>> for c in 'abc: قيم ؟':
... print((c, ud.category(c))
a Ll
b Ll
c Ll
: Po
Zs
ق Lo
ي Lo
م Lo
Zs
؟ Po

所有类别都是双字母代码,例如“Ll”代表“字母,小写”或“Po”代表“标点符号,其他”。所有标点字符都有一个以“P”开头的类别。

您可以使用此信息过滤掉标点符号(例如,使用生成器表达式):

>>> s = "أهلاً بالعالم في هذه التجربة ! علامات ،الترقيم ؟ ,? لا .اتذكرها"
>>> ''.join(c for c in s if not ud.category(c).startswith('P'))
'أهلاً بالعالم في هذه التجربة علامات الترقيم لا اتذكرها'

关于 python 3 : Remove Arabic Punctuation,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48496869/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com